Describe the daemon that exists instead of the stub that does not
`huginn-daemon` serves a mind, so the README and AGENTS say what it serves, over which envelope, in which order it starts, and where its two published schemas live. `eureka-state` is the remaining stub. The command block gains the daemon's own invocation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
6b619d6bbd
commit
a235304ae5
2 changed files with 29 additions and 14 deletions
12
AGENTS.md
12
AGENTS.md
|
|
@ -16,13 +16,15 @@ Studio's job, not Huginn's.
|
|||
runtimes come from `F:\Projects\CultLib\packages`. `huginn-mind` is live:
|
||||
it persists, admits and reads back an instance's mind, queries and derived
|
||||
status included, over `cultcache-rs` and `epiphany-pipeline` pinned by git
|
||||
rev. `huginn-daemon` and `eureka-state`
|
||||
are stubs with no dependencies; nothing here publishes or connects yet.
|
||||
rev. `huginn-daemon` serves one mind over CultNet RUDP through `cultnet-rs`
|
||||
at the same rev, and reaches the leaf and the store type through
|
||||
`huginn-mind` so one crate pins each revision. `eureka-state` is a stub.
|
||||
- Owned: an instance's memory documents, their admission and the read side
|
||||
that derives their status, in `huginn-mind`,
|
||||
over a redb CultCache store at `<state_root>/minds/<instance>/mind.redb`.
|
||||
Their CultNet publication is owned here and not built; `huginn-daemon` is a
|
||||
stub.
|
||||
over a redb CultCache store at `<state_root>/minds/<instance>/mind.redb`;
|
||||
and their CultNet surface in `huginn-daemon`, which owns the socket, the
|
||||
sessions, the process and the operation envelope, and no rule. The two wire
|
||||
schemas are published from `schemas/cultnet/`. There is no index yet.
|
||||
- To depend on: Qdrant, directly, once retrieval exists. Unreachable Qdrant is
|
||||
to be a loud refusal, never a fallback store. No crate connects to it yet.
|
||||
- Forbidden: a second writer of mind state; mind state in version control;
|
||||
|
|
|
|||
31
README.md
31
README.md
|
|
@ -11,10 +11,12 @@ Upstream: `https://github.com/GameCult/Huginn.git`
|
|||
- An instance owns its mind; Huginn owns the state. Huginn is the single
|
||||
writer of an instance's memory documents. No other service, script, or agent
|
||||
writes them.
|
||||
- Memory documents are CultCache state. `huginn-mind`, the one live crate,
|
||||
persists them through CultLib's Rust CultCache into a redb store at
|
||||
`<state_root>/minds/<instance>/mind.redb`. Publishing them over CultNet is
|
||||
`huginn-daemon`'s, and that crate is a stub: nothing here publishes yet.
|
||||
- Memory documents are CultCache state. `huginn-mind` persists them through
|
||||
CultLib's Rust CultCache into a redb store at
|
||||
`<state_root>/minds/<instance>/mind.redb`. `huginn-daemon` serves one such
|
||||
mind over CultNet RUDP: admission and the read side ride
|
||||
`cultnet.operation_request.v0` and `cultnet.operation_response.v0`, and the
|
||||
two wire schemas answer a schema catalog request.
|
||||
- Retrieval is to depend on Qdrant directly, refusing loudly when Qdrant is
|
||||
unreachable rather than falling back to a second store or a second writer.
|
||||
No crate opens that connection yet.
|
||||
|
|
@ -30,8 +32,8 @@ A Cargo workspace of three crates:
|
|||
|
||||
- `crates/huginn-mind`: storage, identity, admission, and queries and derived
|
||||
status over memory documents.
|
||||
- `crates/huginn-daemon`: a stub. It will carry the CultNet surface and serve
|
||||
loop; today it holds neither.
|
||||
- `crates/huginn-daemon`: the CultNet surface. The socket, the sessions, the
|
||||
process and the operation envelope, and no rule.
|
||||
- `crates/eureka-state`: a stub. It will carry typed state for the Eureka
|
||||
pipeline; today it holds none.
|
||||
|
||||
|
|
@ -50,12 +52,23 @@ over one mind, a campaign's open work, and a subject's or a repo's history.
|
|||
Status is never stored, and the views derive it through the same rules
|
||||
admission does. Document shape and keys come from `epiphany-pipeline`; the
|
||||
store is CultLib's Rust CultCache.
|
||||
`huginn-daemon` and `eureka-state` are stubs; the
|
||||
campaign's cut map in `Epiphany/notes/eureka-pipeline-state-cut.md` owns what
|
||||
each crate must do next.
|
||||
|
||||
`huginn-daemon` opens one mind, binds one UDP socket in that order, and
|
||||
answers every frame on the session it arrived on: one operation per `Mind`
|
||||
method plus `whoami`, whose payload is the mind's own types as named
|
||||
MessagePack. A refusal is an answer with a `rejected` status, never a
|
||||
transport error; an envelope that does not decode is answered with a typed
|
||||
failure and reaches no mind. The two schemas it publishes live in
|
||||
`schemas/cultnet/` and are pinned to their derivation by a test. There is no
|
||||
index yet.
|
||||
|
||||
`eureka-state` is a stub; the campaign's cut map in
|
||||
`Epiphany/notes/eureka-pipeline-state-cut.md` owns what each crate must do
|
||||
next.
|
||||
|
||||
```powershell
|
||||
cargo check --workspace
|
||||
cargo run -p huginn-daemon -- --state-root <abs> --instance <slug> --bind 127.0.0.1:17872
|
||||
```
|
||||
|
||||
## Persona
|
||||
|
|
|
|||
Loading…
Reference in a new issue