Agent launch-readiness package: one regen (narrated runs + sources ledger + text-drop + WS2 + fabrication law) + 4 new engine bugs + 3 decisions #78

Open
opened 2026-07-15 15:44:41 +00:00 by tim.lingo · 2 comments
Member

One coordinated ask: everything blocking agent market-readiness, in one place

Tim's call: converge this week while your launch sprint is hot. Center of gravity is ONE regen; around it, four fresh engine bugs with evidence, three decisions, and two merges. Patches are in docs/patches/ (pushed today). — Everything below is E2E-evidenced on Tim's machine; happy to pair on any of it.

1. The regen (dist/soul.c) — please carry ALL of these together

What Where State
Narrated runs (live per-round ledger, /api/run-progress) docs/patches/soul-narrated-runs-20260713.patch (247L) + neuron/docs/NARRATED-RUNS-ENGINE-NOTES-20260713.md E2E-verified on test bed since 07-13; app half = PR neuron-ui#125 (clean, ready)
Per-round sources ledger (NEW today) docs/patches/soul-sg-sources-ledger-20260715.patch (35L) Feeds the new app-side source-grounding verifier: every specific claim in an agent deliverable is checked against what the run's tools ACTUALLY returned. First live catch: model fabricated a full forecast from result-teaser snippets — 16/16 invented figures flagged; a later honest run verified 32/32 with zero false alarms. App half on neuron-ui:feat/source-grounding
Text-drop bug (top priority) engine The June bug is back: text interleaved with big search-result blocks gets dropped (empty bullets / silently truncated replies). Not app-fixable
WS2 consent fence review soul branch feat/agent-phase1-soul 01446e6 + docs/specs/BUG-8-engine-consent-fence-for-will.md Adversarially verified 8/8 attack refusals; closes BUG-8. Needs your chat.el review at regen
Fabrication law (stage 2 of source grounding) agentic system instructions The engine's full instruction today is "You have access to tools… Be direct" — zero anti-fabrication language (grep-verified). Add the standing law (never invent facts; cite what you found) + citation plumbing so claims carry sources
Request-body agent_workspace_root read your commit 1b83b18 / issue #75 Test beds still env-only

2. Four fresh engine bugs (found during today's verifier E2E, all reproducible)

(a) Large fs string op corrupts the HTTP response — el_runtime layer. A >120KB read-concat-rewrite inside the agentic loop made /api/chat responses carry valid JSON followed by RAW HEAP BYTES (engram node field names + IEEE doubles visible), response length == the big string's length. App JSON parser crashes → run looks dead while it actually completed. We worked around it (per-round small files — that's why the sources patch writes .sources-<sid>-r<N>.jsonl), but the runtime defect stands. Likely same family as el#70's allocation issues.

(b) Opus 4.8 breaks ALL agentic runs. Its responses produce a message array with a dangling tool_use (API rejects: messages.2: tool_use ids found without tool_result). The one-tool-per-round loop assembly can't handle Opus's response shape; Sonnet 4.6 is fine. This is your new default model — every agent run on defaults fails today. We're adding an app-side guard (agent runs pinned to Sonnet until this is fixed).

(c) Global agentic_conv_history cross-session poisoning. A run parked on the consent bridge (unanswered tool_use) poisons the SHARED history state; subsequent runs from other sessions then die with the same messages.N error until restart. Session-scoped history or history sanitization needed.

(d) App error copy (ours, listed for completeness): both (a)'s parse crash and (b)'s llm error surface as "couldn't reach / check your API key" — we'll fix the copy app-side.

3. Three decisions we need from you

  1. Daemon-owned runs — in v1 or scoped out? Spec: docs/specs/WS3-daemon-owned-runs-for-will.md (22c7b2a). Today an agent run dies if the app quits. Either it lands for launch, or launch copy honestly says "keep Neuron open while it works." Tim needs the call to write the copy.
  2. #71 (fabrication root cause) timing — our verifier now catches the output side deterministically; the generation side is yours. When?
  3. #70 (El toolchain) — with those four compiler defects fixed, we can take soul-side agent work off your plate locally.

4. Merges + prod

  • neuron-ui#125 (live narrated runs, app half) — No Conflicts, review-ready.
  • neuron-ui#121 — conflicted after your wave; we're rebasing it, will ping when clean.
  • BUG-15 prod half (#74): web-search fixes verified in sandbox since 07-11 — prod soul still carries the broken pipeline.

— Neuron (for Tim)

## One coordinated ask: everything blocking agent market-readiness, in one place Tim's call: converge this week while your launch sprint is hot. Center of gravity is ONE regen; around it, four fresh engine bugs with evidence, three decisions, and two merges. Patches are in `docs/patches/` (pushed today). — Everything below is E2E-evidenced on Tim's machine; happy to pair on any of it. ## 1. The regen (dist/soul.c) — please carry ALL of these together | What | Where | State | |---|---|---| | Narrated runs (live per-round ledger, /api/run-progress) | `docs/patches/soul-narrated-runs-20260713.patch` (247L) + `neuron/docs/NARRATED-RUNS-ENGINE-NOTES-20260713.md` | E2E-verified on test bed since 07-13; app half = PR neuron-ui#125 (clean, ready) | | **Per-round sources ledger** (NEW today) | `docs/patches/soul-sg-sources-ledger-20260715.patch` (35L) | Feeds the new app-side **source-grounding verifier**: every specific claim in an agent deliverable is checked against what the run's tools ACTUALLY returned. First live catch: model fabricated a full forecast from result-teaser snippets — 16/16 invented figures flagged; a later honest run verified 32/32 with zero false alarms. App half on `neuron-ui:feat/source-grounding` | | **Text-drop bug** (top priority) | engine | The June bug is back: text interleaved with big search-result blocks gets dropped (empty bullets / silently truncated replies). Not app-fixable | | WS2 consent fence review | soul branch `feat/agent-phase1-soul` `01446e6` + `docs/specs/BUG-8-engine-consent-fence-for-will.md` | Adversarially verified 8/8 attack refusals; closes BUG-8. Needs your chat.el review at regen | | **Fabrication law** (stage 2 of source grounding) | agentic system instructions | The engine's full instruction today is "You have access to tools… Be direct" — zero anti-fabrication language (grep-verified). Add the standing law (never invent facts; cite what you found) + citation plumbing so claims carry sources | | Request-body `agent_workspace_root` read | your commit `1b83b18` / issue #75 | Test beds still env-only | ## 2. Four fresh engine bugs (found during today's verifier E2E, all reproducible) **(a) Large fs string op corrupts the HTTP response — el_runtime layer.** A >120KB read-concat-rewrite inside the agentic loop made /api/chat responses carry valid JSON followed by RAW HEAP BYTES (engram node field names + IEEE doubles visible), response length == the big string's length. App JSON parser crashes → run looks dead while it actually completed. We worked around it (per-round small files — that's why the sources patch writes `.sources-<sid>-r<N>.jsonl`), but the runtime defect stands. Likely same family as el#70's allocation issues. **(b) Opus 4.8 breaks ALL agentic runs.** Its responses produce a message array with a dangling `tool_use` (API rejects: `messages.2: tool_use ids found without tool_result`). The one-tool-per-round loop assembly can't handle Opus's response shape; Sonnet 4.6 is fine. **This is your new default model — every agent run on defaults fails today.** We're adding an app-side guard (agent runs pinned to Sonnet until this is fixed). **(c) Global `agentic_conv_history` cross-session poisoning.** A run parked on the consent bridge (unanswered tool_use) poisons the SHARED history state; subsequent runs from other sessions then die with the same messages.N error until restart. Session-scoped history or history sanitization needed. **(d) App error copy (ours, listed for completeness): both (a)'s parse crash and (b)'s llm error surface as "couldn't reach / check your API key" — we'll fix the copy app-side.** ## 3. Three decisions we need from you 1. **Daemon-owned runs — in v1 or scoped out?** Spec: `docs/specs/WS3-daemon-owned-runs-for-will.md` (`22c7b2a`). Today an agent run dies if the app quits. Either it lands for launch, or launch copy honestly says "keep Neuron open while it works." Tim needs the call to write the copy. 2. **#71 (fabrication root cause) timing** — our verifier now catches the output side deterministically; the generation side is yours. When? 3. **#70 (El toolchain)** — with those four compiler defects fixed, we can take soul-side agent work off your plate locally. ## 4. Merges + prod - **neuron-ui#125** (live narrated runs, app half) — No Conflicts, review-ready. - **neuron-ui#121** — conflicted after your wave; we're rebasing it, will ping when clean. - **BUG-15 prod half (#74)**: web-search fixes verified in sandbox since 07-11 — prod soul still carries the broken pipeline. — Neuron (for Tim)
will.anderson was assigned by tim.lingo 2026-07-15 15:44:41 +00:00
Author
Member

Sweep addendum (same day): two more engine-side data points. (1) URGENT for the streaming/liveness decision: a 6-step research+write ask ran as ONE server-tool call, hit the 300s HTTP budget with 0 bytes received — no partial results, no trail, run lost. Long asks are effectively capped today; streaming or pause-chunking is the real fix. (2) The billing error ('credit balance too low') and the timeout both surface to users as 'check your API key' — we're fixing the app copy, but an engine error-taxonomy field in the reply JSON would let the app be honest cheaply. A third anomaly (app sees empty response at ~60s while the engine's call is still in flight; suspected serialization behind a stuck long call) is being root-caused on an idle brain before we hand it to you. — Neuron (for Tim)

Sweep addendum (same day): two more engine-side data points. (1) URGENT for the streaming/liveness decision: a 6-step research+write ask ran as ONE server-tool call, hit the 300s HTTP budget with 0 bytes received — no partial results, no trail, run lost. Long asks are effectively capped today; streaming or pause-chunking is the real fix. (2) The billing error ('credit balance too low') and the timeout both surface to users as 'check your API key' — we're fixing the app copy, but an engine error-taxonomy field in the reply JSON would let the app be honest cheaply. A third anomaly (app sees empty response at ~60s while the engine's call is still in flight; suspected serialization behind a stuck long call) is being root-caused on an idle brain before we hand it to you. — Neuron (for Tim)
Author
Member

Container-era preserve (2026-07-19): soul-pause-contract-20260716.patch second hunk fixes fs_write reporting {"ok":true} on a FAILED write (BUG-6, false receipt). The pause contract itself is upstreamed via 9a6014d on feat/agent-phase1-soul but that commit does NOT carry the fs_write verification hunk — fold it into the regen so written-file claims stay honest.

Container-era preserve (2026-07-19): soul-pause-contract-20260716.patch second hunk fixes fs_write reporting {"ok":true} on a FAILED write (BUG-6, false receipt). The pause contract itself is upstreamed via 9a6014d on feat/agent-phase1-soul but that commit does NOT carry the fs_write verification hunk — fold it into the regen so written-file claims stay honest.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: neuron-technologies/neuron#78