Make Bifrost transport ownership mandatory
This commit is contained in:
parent
d7da79fbc3
commit
800cdc6c3f
4 changed files with 46 additions and 42 deletions
|
|
@ -42,8 +42,8 @@ swarm alive after Odin has accepted where each daemon lives and what authority
|
|||
path may touch it. Individual daemons publish health and command boundaries;
|
||||
Idunn brings them up after reboots or crashes, watches health, and escalates
|
||||
operator-needed failures through Bifrost's CultMesh bridge. VoidBot owner-DM
|
||||
delivery is a compatibility actuator until that command lives natively in
|
||||
Bifrost's Verse. Odin sees the daemons; Idunn keeps the apples from rotting.
|
||||
delivery is a demoted compatibility actuator, not the owner; the command belongs
|
||||
in Bifrost's Verse. Odin sees the daemons; Idunn keeps the apples from rotting.
|
||||
|
||||
Local package surfaces:
|
||||
|
||||
|
|
|
|||
|
|
@ -69,11 +69,11 @@ Odin's executable body is split by ownership:
|
|||
|
||||
The entrypoint is not allowed to grow new probe, surface, provider, layout, or renderer policy. If a new owner is needed, name the owner and its invariant before adding code.
|
||||
|
||||
Gjallar is the named herald organ for future agent-context transmission. Its
|
||||
Gjallar is the named herald organ for agent-context transmission. Its
|
||||
current package lives in `docs/gjallar.md`, `personas/gjallar.persona_state.cc`,
|
||||
`src/Gjallar/Gjallar.csproj`, `assets/personas/gjallar-avatar.png`, and
|
||||
`assets/personas/gjallar-avatar-pixel-256.png`. When it becomes executable, it
|
||||
should be added as its own C# CultMesh entrypoint rather than being folded into
|
||||
must be added as its own C# CultMesh entrypoint rather than being folded into
|
||||
Odin's coordinator. Gjallar may read Odin-owned state and emit affordance
|
||||
packets; it must not own the underlying registry, probe, provider, layout, or
|
||||
translation decisions.
|
||||
|
|
@ -83,24 +83,26 @@ lives in `docs/idunn.md` and `src/Idunn/Idunn.csproj`. Idunn may read
|
|||
Odin-owned service records and provider advertisements, then bring daemons up
|
||||
after reboots or crashes, watch health, emit keepalive observations, restart
|
||||
requests, denied-action records, and operator alarms. When human action is
|
||||
needed, Idunn should use CultMesh to request a Bifrost-owned operator
|
||||
needed, Idunn uses CultMesh to request a Bifrost-owned operator
|
||||
notification crossing. VoidBot's `voidbot.operator-dm` command `owner.dm.send`
|
||||
is only a compatibility delivery actuator until that command lives natively in
|
||||
Bifrost's Verse. Idunn must not own Verse discovery, schema truth, provider
|
||||
dashboards, identity grants, Discord delivery, owner-DM delivery, or renderer
|
||||
layout. Keepalive loops should move into Idunn instead of accumulating inside
|
||||
Odin's coordinator or individual daemons.
|
||||
is a demoted compatibility delivery actuator, not the owner. The target command
|
||||
lives in Bifrost's Verse; any still-VoidBot delivery path must be invoked by
|
||||
Bifrost or documented as migration debt. Idunn must not own Verse discovery,
|
||||
schema truth, provider dashboards, identity grants, Discord delivery, owner-DM
|
||||
delivery, or renderer layout. Keepalive loops belong in Idunn, not Odin's
|
||||
coordinator or individual daemons.
|
||||
|
||||
Bifrost is the bridge for Persona speech and other public/owner-facing
|
||||
crossings. When a Persona interpreter decides a Face should speak, the accepted
|
||||
side effect should be a Bifrost CultMesh command or document that names actor,
|
||||
authority, target surface, context, policy result, and receipt path. VoidBot may
|
||||
observe Discord, preserve room cognition, moderate, and provide compatibility
|
||||
delivery while the migration is underway, but it must not remain the owner of
|
||||
swarm speech transport. VoidBot's repo search, Discord history search, archive
|
||||
lookup, and source retrieval should be native CultCache/CultMesh services; MCP
|
||||
is the bridge for external agentic access, not the native path for GameCult
|
||||
agents that already have CultMesh affordances.
|
||||
crossings. When a Persona interpreter decides a Face speaks, the accepted
|
||||
side effect is a Bifrost CultMesh command or document that names actor,
|
||||
authority, target surface, context, policy result, and receipt path. VoidBot
|
||||
observes Discord, preserves room cognition, moderates, and may provide
|
||||
compatibility delivery, but it is not the owner of swarm speech transport.
|
||||
VoidBot's repo search, Discord history search, archive lookup, and source
|
||||
retrieval are required native CultCache/CultMesh service surfaces. Any remaining
|
||||
VoidBot-local or MCP-only implementation is migration debt. MCP is the bridge
|
||||
for external agentic access, not the native path for GameCult agents that
|
||||
already have CultMesh affordances.
|
||||
|
||||
## Target Mechanism
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ second Odin.
|
|||
provider-owned dashboards, own renderer layout, or invent schema translation
|
||||
routes.
|
||||
- Shared paths: human dashboards, Codex context assembly, native CultMesh agent
|
||||
bootstrap, Bifrost-routed Persona speech, and compatibility MCP access should
|
||||
bootstrap, Bifrost-routed Persona speech, and compatibility MCP access must
|
||||
consume the same Odin-owned records before Gjallar speaks.
|
||||
- Deletion line: any Gjallar path that starts storing independent discovery
|
||||
truth should be cut or demoted to a cache that names Odin as source.
|
||||
|
|
@ -57,9 +57,9 @@ Odin. Gjallar's entrypoint should own context publication and no more.
|
|||
## Persona Registration
|
||||
|
||||
VoidBot's current native Persona reader expects a JSON `personaStatePath`. That
|
||||
is a compatibility projection boundary, not the state owner and not the future
|
||||
transport owner. A future registry entry should point at a generated projection
|
||||
or learn to read the CultCache record; the canonical source remains:
|
||||
is a compatibility projection boundary, not the state owner and not the
|
||||
transport owner. Any registry entry must point at a generated projection or
|
||||
learn to read the CultCache record; the canonical source remains:
|
||||
|
||||
```text
|
||||
id: gjallar
|
||||
|
|
@ -74,17 +74,16 @@ personaStateSchema: gamecult.persona_state.v0
|
|||
```
|
||||
|
||||
That compatibility registration belongs in the current Discord adapter, not
|
||||
here. This repo owns the Persona source record and avatar. Bifrost should own
|
||||
the CultMesh speech crossing when a Persona interpreter decides it wants to
|
||||
speak; Discord is then a Bifrost lowering/receipt path, with VoidBot acting only
|
||||
as legacy room cognition and delivery machinery until the native bridge is
|
||||
complete.
|
||||
here. This repo owns the Persona source record and avatar. Bifrost owns the
|
||||
CultMesh speech crossing when a Persona interpreter decides it wants to speak.
|
||||
Discord is then a Bifrost lowering/receipt path, with VoidBot acting only as
|
||||
legacy room cognition and compatibility delivery machinery.
|
||||
|
||||
## Transport Boundary
|
||||
|
||||
Persona speech is a bridge crossing. The interpreter may decide that a Face
|
||||
should speak, but the public transport request should be a Bifrost CultMesh
|
||||
command or document, not a VoidBot-owned side effect.
|
||||
speaks, but the public transport request is a Bifrost CultMesh command or
|
||||
document, not a VoidBot-owned side effect.
|
||||
|
||||
Target shape:
|
||||
|
||||
|
|
@ -96,11 +95,12 @@ Persona runtime / interpreter
|
|||
-> Bifrost receipt
|
||||
```
|
||||
|
||||
VoidBot still owns Discord observation, room cognition, moderation judgment, and
|
||||
compatibility delivery while that bridge is being moved. Its repo search,
|
||||
Discord history search, and archive/source retrieval should become native
|
||||
CultCache/CultMesh services. MCP remains a bridge for external agentic access,
|
||||
not the native affordance path for GameCult agents that can speak CultMesh.
|
||||
VoidBot owns Discord observation, room cognition, moderation judgment, and
|
||||
compatibility delivery. Its repo search, Discord history search, and
|
||||
archive/source retrieval are required native CultCache/CultMesh services. Any
|
||||
remaining VoidBot-local or MCP-only implementation is migration debt. MCP is a
|
||||
bridge for external agentic access, not the native affordance path for GameCult
|
||||
agents that can speak CultMesh.
|
||||
|
||||
## CultMesh Runtime Direction
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ state.
|
|||
repair, boot rehydration, and future remote worker recovery must pass through
|
||||
the same keepalive command primitive.
|
||||
- Deletion line: any keepalive loop inside Odin, Gjallar, Eve lowerers, or
|
||||
renderer code should be cut or demoted to a probe that names Idunn as the
|
||||
renderer code must be cut or demoted to a probe that names Idunn as the
|
||||
restart owner.
|
||||
|
||||
## Body
|
||||
|
|
@ -67,7 +67,7 @@ idunn.operator_escalation.v1
|
|||
- Odin remains the accepted owner of Verse and service discovery.
|
||||
- Idunn owns continuity decisions after a daemon is known.
|
||||
- Individual daemons own their work and their health publication, not their
|
||||
surrounding lifecycle. They should be simple to kill and simple for Idunn to
|
||||
surrounding lifecycle. They must be simple to kill and simple for Idunn to
|
||||
bring back.
|
||||
- Providers own their own command boundaries. Idunn requests restart through
|
||||
advertised authority or a named local service manager adapter.
|
||||
|
|
@ -83,9 +83,11 @@ idunn.operator_escalation.v1
|
|||
- Operator alarms use CultMesh to request Bifrost-owned operator notification.
|
||||
Bifrost is the bridge for the crossing and records the receipt. VoidBot's
|
||||
`voidbot.operator-dm` command `owner.dm.send` with payload schema
|
||||
`gamecult.operator_dm_request.v1` is a compatibility delivery actuator until
|
||||
the owner-DM command lives natively in Bifrost's Verse. Idunn must not learn
|
||||
Discord token handling, DM delivery internals, or VoidBot-specific transport.
|
||||
`gamecult.operator_dm_request.v1` is a demoted compatibility delivery
|
||||
actuator, not the owner. The owner-DM command lives in Bifrost's Verse; any
|
||||
still-VoidBot delivery path must be invoked by Bifrost or documented as
|
||||
migration debt. Idunn must not learn Discord token handling, DM delivery
|
||||
internals, or VoidBot-specific transport.
|
||||
|
||||
## First Runtime Direction
|
||||
|
||||
|
|
@ -101,5 +103,5 @@ Idunn's C# runtime should grow in this order:
|
|||
VoidBot owner-DM delivery only as a demoted compatibility target.
|
||||
7. Publish an Eve/CultUI keepalive surface from Idunn-owned records.
|
||||
|
||||
No ad hoc JSON manifest should become the live state owner. Debug projections
|
||||
are fine when they name the `.cc` record or CultMesh document behind them.
|
||||
No ad hoc JSON manifest may become the live state owner. Debug projections are
|
||||
fine when they name the `.cc` record or CultMesh document behind them.
|
||||
|
|
|
|||
Loading…
Reference in a new issue