fix: widen web-probe jsonl tail window (#694)
Co-authored-by: Codex <codex@noreply.local>
This commit is contained in:
@@ -9235,7 +9235,7 @@ console.log(JSON.stringify({ok:true,command:'web-probe-observe status',stateDir:
|
|||||||
function nodeWebObserveCollectNodeScript(maxFiles: number, collectFile: string | null): string {
|
function nodeWebObserveCollectNodeScript(maxFiles: number, collectFile: string | null): string {
|
||||||
return `node -e ${shellQuote(`
|
return `node -e ${shellQuote(`
|
||||||
const fs=require('fs'),path=require('path'),crypto=require('crypto');
|
const fs=require('fs'),path=require('path'),crypto=require('crypto');
|
||||||
const dir=process.argv[1]; const selected=process.argv[2]||''; const maxFiles=${maxFiles}; const maxReadBytes=64*1024;
|
const dir=process.argv[1]; const selected=process.argv[2]||''; const maxFiles=${maxFiles}; const maxReadBytes=64*1024; const maxJsonlTailBytes=1024*1024;
|
||||||
const shaFile=(file)=>'sha256:'+crypto.createHash('sha256').update(fs.readFileSync(file)).digest('hex');
|
const shaFile=(file)=>'sha256:'+crypto.createHash('sha256').update(fs.readFileSync(file)).digest('hex');
|
||||||
const safeRel=(value)=>Boolean(value)&&!path.isAbsolute(value)&&!value.includes('..')&&!value.includes('\\\\')&&value.split('/').every((part)=>part&&part!=='.'&&part!=='..');
|
const safeRel=(value)=>Boolean(value)&&!path.isAbsolute(value)&&!value.includes('..')&&!value.includes('\\\\')&&value.split('/').every((part)=>part&&part!=='.'&&part!=='..');
|
||||||
const short=(value,max=180)=>value===undefined||value===null?undefined:String(value).replace(/\\s+/g,' ').slice(0,max);
|
const short=(value,max=180)=>value===undefined||value===null?undefined:String(value).replace(/\\s+/g,' ').slice(0,max);
|
||||||
@@ -9286,7 +9286,8 @@ if(selected){
|
|||||||
if(relative.startsWith('..')||path.isAbsolute(relative)){console.log(JSON.stringify({ok:false,command:'web-probe-observe collect',stateDir:dir,mode:'file',reason:'file-outside-state-dir',file:selected,valuesRedacted:true},null,2)); process.exit(2);}
|
if(relative.startsWith('..')||path.isAbsolute(relative)){console.log(JSON.stringify({ok:false,command:'web-probe-observe collect',stateDir:dir,mode:'file',reason:'file-outside-state-dir',file:selected,valuesRedacted:true},null,2)); process.exit(2);}
|
||||||
if(!fs.existsSync(file)||!fs.statSync(file).isFile()){console.log(JSON.stringify({ok:false,command:'web-probe-observe collect',stateDir:dir,mode:'file',reason:'file-not-found',file:selected,valuesRedacted:true},null,2)); process.exit(1);}
|
if(!fs.existsSync(file)||!fs.statSync(file).isFile()){console.log(JSON.stringify({ok:false,command:'web-probe-observe collect',stateDir:dir,mode:'file',reason:'file-not-found',file:selected,valuesRedacted:true},null,2)); process.exit(1);}
|
||||||
const st=fs.statSync(file); const raw=fs.readFileSync(file); const truncated=raw.length>maxReadBytes; const isJsonl=selected.endsWith('.jsonl'); const isJson=selected.endsWith('.json');
|
const st=fs.statSync(file); const raw=fs.readFileSync(file); const truncated=raw.length>maxReadBytes; const isJsonl=selected.endsWith('.jsonl'); const isJson=selected.endsWith('.json');
|
||||||
const text=(isJsonl?raw.slice(Math.max(0,raw.length-maxReadBytes)):raw.slice(0,Math.min(raw.length,maxReadBytes))).toString('utf8');
|
const tailReadBytes=isJsonl?maxJsonlTailBytes:maxReadBytes;
|
||||||
|
const text=(isJsonl?raw.slice(Math.max(0,raw.length-tailReadBytes)):raw.slice(0,Math.min(raw.length,maxReadBytes))).toString('utf8');
|
||||||
const lines=text.split(/\\r?\\n/).filter(Boolean);
|
const lines=text.split(/\\r?\\n/).filter(Boolean);
|
||||||
if(isJsonl&&truncated&&lines.length>0) lines.shift();
|
if(isJsonl&&truncated&&lines.length>0) lines.shift();
|
||||||
let jsonSummary=null;
|
let jsonSummary=null;
|
||||||
|
|||||||
Reference in New Issue
Block a user