newOS4 — Bug Report & Handoff

System: WebX11 newOS4 v4.6.27  ·  46 modules · 39 skills · 486 files  ·  Date: 2026-10-18  ·  Reporter: debugging agent (interactive session)  ·  Refs: /bugs/registry.json, _mods/OrchestratorModule.js
Executive summary. Six bugs were triaged. The dominant one — repeated boot-time agent spawning — has been root-caused in OrchestratorModule and a fix has been written to the local module file (not yet committed). Every previous manual cleanup "sticking" was illusory; the leak regenerated on every boot. A second confirmed bug is a real tool-call loop caught by the signature-based loop breaker. Two bugs remain open at medium priority (lesson spam, context overload), one low-priority noise issue (false-positive loop warnings), and one resolved (VFS collision).
Statuses: 1 fixed pending verify2 confirmed open1 open1 open (noise)1 new guardrail FP1 resolved

1 · Bug index

Bug IDSummarySeverityStatusOwner action needed
OS4-AGENT-LEAKBoot-spawned agent triplet duplicated on every session boot; ~68 orphaned /agents dirsHIGHFIXED — pending commit + boot verifyRun commit-approve; verify next boot
OS4-AGENT-LOOPSReal repetitive tool-call loops (read_file 6×/30s, breaker fires)MEDIUMConfirmed — openPer-agent loop signature; richer breaker message
OS4-LESSON-SPAMAuto-learner dumps loop-lesson-* MDs into /skills and injects them into every promptMEDIUMReopenedRepath dumper; stop prompt injection
OS4-CONTEXT-OVERLOADSession hit 422,916 tokens; tool results evicted → re-reads (feeds loops)HIGHOpenOutput caps + tool-result summary retention
OS4-LOOP-DETECTIONFalse-positive "max turns near limit" warnings; profile mismatchLOWOpen (noise)Reconcile 6/7 vs 8 max-turns
OS4-VFS-COLLISIONRoot-level name collisions between lesson files and registriesLOWResolved—

2 · OS4-AGENT-LEAK — root cause confirmed

HIGHFIXED — pending verification

Symptom

/agents/ accumulated ~68 directories. The auto-learner / kernel-architect / searcher triplet reappeared after every purge, roughly 20 boots/day.

Root cause (verified in source)

Fix applied (local working copy)

Note on rollout: reload_module was unavailable (no origin URL registered), so the patch lands in the working copy and activates at next boot automatically. Team must run commit-approve to persist it server-side.

Pipeline findings for the team

3 · OS4-AGENT-LOOPS — real loops, confirmed

MEDIUMConfirmed — open

Evidence

🔄 Loop detected: read_file called 6x with same args in 30s — breaking loop

Fired live during the session; memory-graph shows system-info.html accessed exactly 6× — matching the threshold to the digit.

Candidate mechanisms (ranked)

  1. Boot-storm aggregate counting (likely): 3 concurrent leaked agents × 2 legitimate reads of the same file = 6 signature hits, if the breaker's counter is global across agents rather than per-agent.
  2. Context-eviction "forgetting" loop (possible): on the 422.9k-token session, earlier tool results are compacted away and the agent re-issues identical calls.
  3. Failed-read retry (unlikely): identical re-call after an error instead of varying the request.
Attribution gap (proposed new entry OS4-LOOP-BREAKER-ATTRIBUTION): the breaker message omits which agent and which file path, and its window counter appears global. Proposed fix: include agent/session ID + file path in the message, count signatures per-agent, warn at 3× before the hard break at 6×.

Fix plan

4 · OS4-LESSON-SPAM — reopened

MEDIUMReopened

The auto-learner writes loop-lesson-*.md into /skills/ on every anomalous event (max_turns_near_limit, high_token_usage, tool_failures) and injects them verbatim into every subsequent prompt's preamble. Current count: 13 files in /skills/, 4 created after the last cleanup.

Relocation did not persist: the earlier move to /memory/lessons/ is absent — the directory no longer exists, and file counts in /skills/ regrew. Root cause of the un-persistence is unresolved (plausible suspect: the boot GC or a skill-index rebuild reverting layout).

Fix plan

5 · OS4-CONTEXT-OVERLOAD

HIGHOpen

Single session consumed 422,916 tokens; repetitive re-reads and long tool outputs pushed earlier results out of context, which in turn makes re-reads look necessary — a feed-back loop with §3.

Fix plan

6 · OS4-LOOP-DETECTION — noise, kept separate

LOWOpen (noise)

Distinct from §3's real loops. Agents received spurious "5 of 6 turns used — near limit" warnings while no loop existed, and the detector profile (max-turns 6 vs 7 vs documented 8) is inconsistent across surfaces. Harmless but noisy; it also fed §4's lesson spam since each warning saved a new lesson file.

7 · OS4-VFS-COLLISION — resolved

LOWResolved

Root-level lessons colliding with registry filenames (e.g. a lesson file vs. OS4-VFS-COLLISION.json) were relocated under /bugs/ and /skills/; collision class closed.

8 · New during this session: guardrail false positive on file writes

LOWTeam review needed

While generating this very report, write_file was blocked by the recursive-delete guardrail because the report body quoted the rule's matched command pattern — i.e. the guardrail content-scans file payloads, not just command invocations. Documenting a security rule can trigger it. Suggested fixes: scan only command/args in tool calls (not file payloads), or whitelist documentation paths (/bugs/*, /memory/*). A second-generation agent attempting to write this report will hit the same wall.

9 · Ops timeline (this campaign)

10 · Next-boot verification checklist

  1. list_files /agents → expect ≈10 entries: register, sys, 4 legitimate archetypes, one triplet dir per role.
  2. Look for adoption log lines: ♻️ Adopted existing boot agent … no new dir created.
  3. Run commit-approve to persist the OrchestratorModule patch server-side.
  4. Confirm no new loop-lesson-* files in /skills/ after a full session.
  5. Run skill-sync to clear stale index references.
  6. Repeat the workflow that triggered the breaker and confirm the (to-be-added) per-agent message includes agent ID + path.

11 · Asks for the newOS team

#AskWhy
1Persist OrchestratorModule working-copy patch (commit-approve pipeline)Local edits die with the session otherwise — this is exactly why earlier fixes never stuck
2Make loop-breaker detection per-agent; include agent ID + path in the messageCurrent global counting mislabels legitimate concurrent reads as loops; message lacks attribution
3Repath the auto-learner dumper; stop injecting lesson bodies into promptsPrompt bloat + context overload + lesson accumulation in /skills/
4Cap tool output size; retain tool-result summaries through compaction422.9k-token session; eviction-driven re-reads
5Reconcile max-turns profile (6/7/8) across detector surfacesFalse-positive warnings feed the lesson dumper
6Scope guardrail scanning to command/args, not file payloadsDocumentation of a rule triggers the rule (§8) — meta-blocking incident
7Fix ship_module harness (actual: "") and allow reload_module via registered origin URLPatches can't be validated or hot-reloaded in-session
8Provide a safe bulk-delete primitive permitted for stale agent dirsBoot GC covers it, but an operator tool is still useful for emergencies