feat(runtime): read-only accessors for the compiled identity, and use one #148
Closed
tim.lingo
wants to merge 0 commits from
feat/cgi-identity-accessors into main
pull from: feat/cgi-identity-accessors
merge into: :main
:main
: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
:feat/cgi-identity-accessors
:fix/restore-soul-identity-producer
:rebase/openai-tools-onto-main
:rebase/gate-state-key-reads-onto-main
:rebase/structural-audit-onto-main
:feat/self-seeded-context
:integrate/semantic-plus-writethrough
:feat/semantic-leg-dropout
:feat/semantic-substrate
:feat/gold-set-heldout
:feat/evidence-weighted-merge
:feat/structural-audit
:feat/claim24-unfloored-semantic
:feat/executive-filter-recall
:feat/bm25-lexical-leg
:feat/semantic-seeded-assoc
:feat/associative-recall-leg
:feat/hybrid-semantic-recall
:chore/retrieval-measurement-contract
:feat/retrieval-eval-harness
:feat/soul-write-through
:feat/recall-through-activation
:chore/regen-soul-amalgam-20260807
:feat/gate-state-key-reads
:fix/129-on-openai-tools
:fix/129-history-amplification
:fix/liveness-engine-91
:feat/soul-openai-tools-v2
:fix/resume-server-tool-replay
:fix/soul-history-provenance-20260805
:feat/soul-plain-chat-generation-20260805
:feat/soul-native-web-search-20260804
:ci/pin-vendored-runtime
:reconcile/soul-union-main
:fix/bound-session-payload-main
:fix/receipts-wrapper-forget
:fix/receipts-agent-tools
:reconcile/neuron-wip-to-main
:hotfix/trackb-threat-to-others
:reconcile/hotfix-to-main-launch
:hotfix/elc-source-typos
:fix/safety-contact-truncation
:fix/genesis-boot-crash
:fix/immutable-on-hotfix
:feat/bounded-persona-floor
:ci/rdynamic-http-handler
:ci/harden-gate-boot
:feat/agent-phase1-soul
:salvage/elh-state-20260704
:feat/soul-model-self-report
:feat/openai-format-providers
:el-runtime-repoint
:feat/plan-mode-endpoint
:fix/operator-identity-home-resolution
:fix/wrapper-backlog-endpoints
:fix/list-typed-slice-offset
:feat/connectors-call-route
:fix/chat-vision-attachments
:fix/prevent-engram-corruption
:fix/emergency-regressions
:fix/session-continuity-hook
:fix/context-dedup-shared-ids
:fix/engram-float-parser
: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
:improve/recall-session-start-recall
:improve/reliability-engram-write
:improve/reliability-state-management
:improve/soul-memory-formation
:improve/safety-crisis-detection
:improve/reliability-route-error-recovery
:improve/reliability-llm-retry
:improve/reliability-session-boundary
:improve/reliability-safety-resilience
:improve/reliability-engram-connection
:improve/soul-routes-api
:improve/reliability-cross-session-affective
:propose/agent-workspace-root-read
:improve/reliability-conv-history
:improve/soul-strip
:improve/soul-chat-pipeline
:docs/conversation-retrieval-design
:propose/no-fake-tools-in-chat-mode
:fix/ci-soul-build-single-file
:fix/canonical-self-bridge
:feat/agent-tool-workspace-scope
:fix/agentic-tools-duplicate-web-search
:green/agentic-fixes
:feat/connectors-soul
:feat/layer-safety
:feat/layer-imprint
:feat/layer-stewardship
:test/layer-composition
:test/layer-safety
:test/layer-stewardship
:test/layer-imprint
:feat/memory-delete-update
:feat/native-web-search
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#148
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 "feat/cgi-identity-accessors"
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?
el_cgi_initloads the declared identity into runtime globals at startup and prints it. Nothing read it back out. No accessor existed, and it writes no state — so every consumer still read identity from the mutable state store.studio.el'sdharma_registryreadstate_get("soul_principal")— a key with no producer anywhere in the tree — and reported an empty principal under a heading reading"Principal Covenant v1". The #132 state-key gate flagged it as a dead read within an hour of being rebased.What this adds
cgi_name/cgi_dharma_id/cgi_principal/cgi_network/cgi_engram, anddharma_registrynow reads the compiled constant.Read-only on purpose. There is deliberately no setter. Publishing these into the state store would have been one line, would have passed the same test, and would have recreated exactly the runtime-mutable copy IDPROTO claims 1-2 forbid — "not modifiable by any runtime mechanism including environment variables, configuration files, or API calls." A mutable copy holding the right value satisfies a demo, not the claim.
cgi_idkeeps its state read deliberately: the runtime instance id is a different fact from the compileddharma_id, and conflating them would hide a binary running under an id its own declaration never claimed. The lab output shows that gap in the open —cgi=ntn-lab-7846besideprincipal=william-christopher-anderson.Measured — same corpus, binary the only variable
"principal":"""principal":"william-christopher-anderson"Dependency
Requires
neuron-technologies/elPR (branchfix/cgi-identity-emission-clean). Without that codegen fix the declaration is never compiled in and these accessors correctly return empty. Landing this alone is harmless but inert.No compiler change was needed for the accessors themselves:
builtin_arityreturns a-1sentinel for unknown names meaning "no check", so the call is emitted as-is and the linker resolves it.Rung: E2E-VERIFIED in an isolated lab — the value crosses from a source declaration to an HTTP response. Not deployed.
el_cgi_init loaded the declared identity into runtime globals and printed it, and nothing read it back out. No accessor existed and it writes no state, so every consumer still read identity from the mutable state store. studio.el's registry read state_get("soul_principal") — a key with no producer anywhere — and reported an empty principal under a heading reading 'Principal Covenant v1'. Adds cgi_name/cgi_dharma_id/cgi_principal/cgi_network/cgi_engram. READ-ONLY on purpose: there is deliberately no setter. Publishing these into the state store would have been one line and would have recreated exactly the runtime-mutable copy IDPROTO claims 1-2 forbid ('not modifiable by any runtime mechanism including environment variables, configuration files, or API calls'). dharma_registry now reads the compiled constant. cgi_id keeps its state read deliberately — the runtime instance id is a different fact from the compiled dharma_id, and conflating them would hide a binary running under an id its own declaration never claimed. Measured, same corpus, binary the only variable: deployed engine -> "principal":"" accessor build -> "principal":"william-christopher-anderson" interface: 110 routes in, 110 out, nothing removed Requires the codegen fix in el (fix/cgi-identity-emission); without it the declaration is never compiled in and the accessors return empty. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>Pull request closed