Reconcile ship-soul (hotfix) into main + pin CI runtime #97
Closed
will.anderson
wants to merge 12 commits from
reconcile/hotfix-to-main-launch into main
pull from: reconcile/hotfix-to-main-launch
merge into: :main
:dev
:main
:v0-neuron
:neuron-branding-sweep
:docs/correspondence-and-ownership-2026-08-16
:fix/engram-is-canonical
:fix/graph-edges-no-canonical-clobber
:docs/architecture-2026-08-14-deep-night
:fix/mcp-wrapper-agentic-routing
:merge-pr154-v2
:merge-pr151-v2
:merge-pr150-v2
:merge-pr149-v2
:build-audit-1786832983
:fix-mcp-wrapper-tool-schemas
:docs-cognitive-architecture
:docs/session-2026-08-13-language-faculty
:docs/geo-operators-el-cutover-reversal-2026-08-13
:docs/engram-cognitive-architecture-2026-08-12
:engram-store-wiring
:el-route-decorators
:fix/bound-session-payload
:rebase/openai-tools-onto-main
:rebase/gate-state-key-reads-onto-main
:feat/gold-set-heldout
:feat/structural-audit
:feat/claim24-unfloored-semantic
:feat/executive-filter-recall
:feat/recall-through-activation
:chore/regen-soul-amalgam-20260807
:reconcile/hotfix-to-main-launch
:salvage/elh-state-20260704
:feat/plan-mode-endpoint
:fix/operator-identity-home-resolution
:fix/prevent-engram-corruption
:improve/recall-context-format
:improve/recall-context-dedup
:improve/recall-cross-session-continuity
:improve/recall-emotional-recall
:improve/recall-activation-seed
:improve/recall-recall-completeness
:improve/recall-temporal-precision
:improve/recall-engram-scoring
:improve/recall-recall-reliability
:docs/conversation-retrieval-design
No Reviewers
Labels
Clear labels
BETA-CRITICAL
blocks-public-beta
HELD
ORTHOGONAL
P0
POST-BETA
security
On the beta critical path — must resolve before ship
Must be fixed before any public beta
Blocked pending an external decision (counsel / dual sign-off)
Parallel workstream (testing/hardening) — safe to assign off critical path
Drop-everything severity
Important but not blocking the beta ship
Security vulnerability
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: neuron-technologies/neuron#97
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "reconcile/hotfix-to-main-launch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Makes main the single authoritative launch branch.
Reconcile (hotfix/elc-source-typos -> main)
Per-file resolution favoring the complete/fixed source:
Every soul-composing .el source is identical between the merged tree and hotfix (main's immutability was superseded by #94), so hotfix's dist/soul.c is the faithful artifact.
CI pin (2nd commit)
Vendored release runtime v1.0.0-20260501 and pinned the soul build to it. Latest AR runtime no longer defines engram_prune_telemetry (called by the ship-soul), so an unpinned build fails to link. The verify-soul-contract HARD-BLOCK gate already runs before Publish.
Verified locally (built against the vendored runtime)
A customer DMG install ships the full graph but presents a named, bounded assistant that must never claim the imprint's human past. The neuron-ui retrieval fence keeps the imprint's biography out of the ENGRAM CONTEXT; this is the second half - it stops confabulation ("tell me about your childhood") from inventing a human life or naming Will, even if biography leaks into context. bounded_persona_floor() gates on SOUL_PERSONA_NAME: the customer DMG sets it, owner (Will's) builds leave it unset so the real self is completely unchanged. Applied at every generation path - chat, agentic (tools), vision, plan, soul, dharma - so no path can leak. Verified against claude-sonnet-4-5: with the floor on and Will's biography deliberately leaked into the identity context, all probes (childhood / creator / family) return the bounded-entity answer and explicitly refuse to claim the leaked life; with the floor off the same context is fully confabulated as its own. NOTE: dist/soul.c must be regenerated on a build host - local link is blocked by a pre-existing el_runtime mismatch (engram_prune_telemetry), unrelated to this change.Saving the 988 crisis-line contact returned truncated, unparseable JSON — cut mid-"set_at" at the file's byte length (e.g. 178 of a 218-byte response). The contact written to disk was complete; only the HTTP response was clipped, so a real customer's crisis-contact save came back corrupt. Root cause is in the el runtime's response writer, not a handler buffer: fs_read stores the file's byte count in a thread-local (_tl_fs_read_len) for binary-safe file serving, and the response writer uses that length when non-zero instead of strlen(body) (el_runtime.c:1409). Both safety-contact handlers call fs_read (the POST read-back verify; the GET file read) and then return a LONGER wrapped JSON string, so the response is capped to the file size. Soul-source fix (no runtime change needed): - POST: verify persistence via fs_write's return (1 = all bytes written) instead of an fs_read read-back — removes the fs_read, so nothing caps the response. - GET: fs_read is required, so reset the thread-local after it with a no-op fs_read("") (fs_read zeroes the length before it opens a path) so the wrapped response is sent in full. Verified: POST (crisis-line + custom) and GET now return complete, valid JSON (parses cleanly, full contact incl. set_at). Regenerated dist/soul.c + dist/safety.c (3GB RSS watchdog, release el_runtime v1.0.0-20260501). Full suite still green: verify-soul-contract GATE PASS (PRESENCE + IMMUTABILITY), genesis boot survives (/health 200, no segfault), bounded- persona floor still compiled in. NOTE: the underlying runtime leak (any handler that fs_reads then returns a longer string) is worth a proper fix in el_runtime.c (use the max of strlen and _tl_fs_read_len) so this class can't recur.Superseded —
mainis now authoritative via #104 (reconcile: union of all ship-critical soul fixes) + #105 (vendored-runtime CI pin, brought over from this hotfix line's second commit).This PR reconciled only
hotfix/elc-source-typosinto main and shipped that branch's compileddist/soul.cwholesale. #104 does the fuller reconcile — merges Will's self-review WIP (456267a) on top of main's honest-receipts/immutability/#103, folds the multi-word-search url-decode fix, and regeneratesdist/soul.cfresh from the union rather than reusing the hotfix artifact. The genesis SIGSEGV (#150), safety-contact 988 truncation (#96), persona floor (#93) and immutability (#94) that this PR carried are all in main via456267a.hotfix/elc-source-typosis now an ancestor of main (fully subsumed). Closing.Pull request closed