The phaseWatchdog at 10s fired "STUCK phase=session.prompt" on every healthy LLM call longer than 10 seconds. Verified via strace on the running dogfood sf: bytes were actively flowing on the TLS socket (fd 29) to the LLM provider while STUCK was being logged — the session.prompt was never actually stuck, the watchdog was just diagnostic-only and oblivious to stream activity. The noOutputTimeoutMs watchdog (set to 60s for triage in commitd80060fec) is the actual kill mechanism. It is already event-aware: every meaningful subagent event resets the timer via armNoOutputTimer + isMeaningfulSubagentOutputEvent. The 10s STUCK warning was added in commit67e5ac9dbas investigation infrastructure for the sf-mp8e02m1-zpk903 family of bugs, but now it is just noise that makes legitimate 30-200s LLM responses look broken. Keeps the 10s STUCK watchdog for the three setup phases (resourceLoader.reload, createAgentSession, bindExtensions) where 10s of silence is a real hang signal — those phases normally run in sub-second. Also includes: - biome.json: bump $schema URL from 2.4.14 to 2.4.15 to match the current biome CLI (clears the deserialize warning) - scripts/check-test-imports.{,test.}mjs: format + drop a useless regex escape that biome flagged in landed code Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
83 lines
1.7 KiB
JSON
83 lines
1.7 KiB
JSON
{
|
|
"$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
|
|
"vcs": {
|
|
"enabled": true,
|
|
"clientKind": "git",
|
|
"useIgnoreFile": true
|
|
},
|
|
"files": {
|
|
"includes": [
|
|
"**/*.{js,cjs,mjs,ts,tsx,json,jsonc,css,html}",
|
|
"!!.vtcode",
|
|
"!!.sf",
|
|
"!!.omg",
|
|
"!!**/dist",
|
|
"!!**/dist-test",
|
|
"!!**/rust-engine/npm",
|
|
"!!**/*.min.js",
|
|
"!!packages/coding-agent/src/core/export-html/template.css",
|
|
"!!src/resources/skills/create-sf-extension/templates"
|
|
]
|
|
},
|
|
"formatter": {
|
|
"enabled": true,
|
|
"indentStyle": "tab"
|
|
},
|
|
"linter": {
|
|
"enabled": true,
|
|
"rules": {
|
|
"recommended": true,
|
|
"correctness": {
|
|
"noUnreachable": "off",
|
|
"useExhaustiveDependencies": "off",
|
|
"noUnusedImports": "off",
|
|
"noUnusedVariables": "off",
|
|
"noUnusedFunctionParameters": "off"
|
|
},
|
|
"a11y": {
|
|
"noLabelWithoutControl": "off",
|
|
"noStaticElementInteractions": "off",
|
|
"noSvgWithoutTitle": "off",
|
|
"useAriaPropsSupportedByRole": "off",
|
|
"useKeyWithClickEvents": "off",
|
|
"useSemanticElements": "off"
|
|
},
|
|
"style": {
|
|
"noNonNullAssertion": "off",
|
|
"useTemplate": "off"
|
|
},
|
|
"suspicious": {
|
|
"noAssignInExpressions": "off",
|
|
"noArrayIndexKey": "off",
|
|
"noControlCharactersInRegex": "off",
|
|
"noDocumentCookie": "off",
|
|
"noDuplicateTestHooks": "off",
|
|
"noExplicitAny": "off",
|
|
"noImplicitAnyLet": "off",
|
|
"useIterableCallbackReturn": "off"
|
|
},
|
|
"complexity": {
|
|
"useLiteralKeys": "off",
|
|
"useOptionalChain": "off"
|
|
}
|
|
}
|
|
},
|
|
"javascript": {
|
|
"formatter": {
|
|
"quoteStyle": "double"
|
|
}
|
|
},
|
|
"css": {
|
|
"parser": {
|
|
"tailwindDirectives": true
|
|
}
|
|
},
|
|
"assist": {
|
|
"enabled": true,
|
|
"actions": {
|
|
"source": {
|
|
"organizeImports": "off"
|
|
}
|
|
}
|
|
}
|
|
}
|