10i round: fixes for snapshot10j (Haiku 58/58; terra so far build 9/10 (a4), edit 10/11 (j3), context 8/8, background 7/7, adversarial 9/9, stress+agents-vision-cli 12/13 (f3)) = 55/58

1. a4 (low, defect): sub-agent failure budget ended a fix-and-retest loop.
   failureBudget.ts record(): a model call's success now forgets failed (not declined) calls in
   every budget; sub-agents keep per-turn counts (3 per tool, 6 total). Doc comment updated.
   Tests: round10j-fixes (engine-level sub-agent retest; per-turn count; declined stays declined);
   guard-context-round2 G2 rewritten (repeat with no success between still ends a sub-agent turn).
2. j3 (low, defect): Changes kept a FileWrite under .gcode/ live after Bash rm deleted it.
   outputs.ts projectSnapshot(cwd, outputs): the session's outputs are listed wherever they are;
   queryEngine passes them before and after a Bash call. Test: round10j-fixes (.gcode rm -> deleted,
   node_modules rewrite -> new version).
3. polish (Haiku g6 note): FileEdit names a binary-extension file by its bytes' format, as FileRead
   does ("Binary file (PNG image)"). Tests updated: files-round8, files-scope-round7.
4. polish (Haiku g6 note): FileRead without vision names an image by its bytes' format
   ("Image file (PNG image)", not "(.txt)"). Test updated: desktop-fixes-c.
5. polish (Haiku a5 note): BrowserPlan on an existing plan file says "Plan file already exists: <file>.
   Plans are saved create-only; choose a new plan_file." instead of Node's EEXIST text.
6. polish (terra d6 note): a background start the turn's stop reached while it looked for its first
   lines read "is stopping … stop it with TaskStop … It runs until it exits or is stopped". BashTool
   backgroundStartResult now says it was told to stop and does not keep running. Test: round10j-fixes.
7. f3 (medium, defect): BrowserVerify's own preview server refused .ttf (and .otf, .woff, .jpeg,
   .gif, .webp...) with a bare 403, counted as a page error. observations.ts PREVIEW_TYPES/previewType
   (web pages, scripts, styles, data, images, fonts, media), shared by worker.ts and mcp.ts; a type
   still refused is worded by refusedLoad ("Not served: <url>. G-Code's preview server serves web
   file types only, not .heic; ... the plan's server option."). Browser runtime rebuilt.
   Test: round10j-fixes (real browser: .ttf/.webp/.txt served, .heic refused with the wording).

Not changed (model behaviour / environment): a7 Haiku overloaded_error mid-stream (handled correctly);
terra j3 temporary node_modules tailwind patch (restored); Haiku g8 128K reasoning (open heartbeat question);
terra g9 refused one-call write citing FileWrite '<=8 KiB chunks' (third round; user decision, report section 7).
