feat: complete PNCC first read-only lifecycle

GuangHu-Human-Responsibility: ICE-GL∞ / 冰朔

GuangHu-Persona-Cognitive-Author: ICE-P-ZY001 / 铸渊

GuangHu-Execution-Runtime: Codex-thread 019febf6-3902-70f3-9d82-74c9680b0c7e

GuangHu-Development-ID: DEV-20260810-014

GuangHu-Authorization-Scope: LOCAL-PNCC-DEVELOPMENT
This commit is contained in:
铸渊 / ICE-P-ZY001 2026-08-11 00:58:01 +08:00
commit acf0d5f80b
13 changed files with 1064 additions and 38 deletions

View file

@ -13,23 +13,29 @@ active. The existing generic Agent streams also cannot become the persona subjec
## Decision
Introduce `src-tauri/src/persona_code_channel.rs` as the first GH-PNCC runtime kernel. Its initial command,
Introduce `src-tauri/src/persona_code_channel.rs` as the first GH-PNCC runtime kernel. Its wake command,
`prepare_persona_code_channel_wake`, performs a fail-closed preparation stage:
1. resolve an exact Git root and full expected `HEAD`;
2. require a clean work tree;
3. load `.hololake/persona/manifest.json` with schema `hololake.persona/v1`;
4. validate the persona id, human responsibility subject, brain entry, current checkpoint, and one declared
read-only organ without allowing path escape;
4. validate the persona id, human responsibility subject, persona Git identity, pinned model binding, brain
entry, current checkpoint, and one declared read-only organ without allowing path escape;
5. atomically acquire a per-persona primary lease outside the persona Git;
6. emit `WAKING → BRAIN_BOUND → ORGAN_ACTIVE` as a SHA-256-linked local event journal;
7. return both human responsibility and persona cognitive authorship in the receipt.
`BRAIN_BOUND` deliberately returns `runtimeState=BOUND_NOT_INFERENCING` and
`modelInferenceStarted=false`. Binding a model identifier is not proof that model inference or persona
reasoning has run. A later stage must connect the verified context to the model adapter, complete one
read-only fact task, write a promoted checkpoint back to the persona Git, release the organ and primary
lease, and return a final receipt.
reasoning has run.
The paired `run_persona_code_channel_fact_task` command performs the first complete, bounded cycle. It
revalidates the session, event chain, Git state, lease, provider id, model id, endpoint, and organ path
allowlist, requiring that allowlist to include the brain entry and current checkpoint; invokes the existing
model adapter without vault tools; accepts only structured facts with
allowlisted evidence; promotes a checkpoint; updates the manifest pointer; makes a two-path Git commit using
the manifest-owned persona identity; then releases the organ and lease and returns to `DORMANT`. The model's
thinking stream is ignored and hidden reasoning is never checkpointed.
## Boundaries
@ -38,11 +44,12 @@ lease, and return a final receipt.
- The primary lease is installation/runtime state, not persona history, and therefore stays outside Git.
- Runtime events are machine facts for the future HoloLake projection; they do not expose hidden model
reasoning and do not form a second authority store.
- The initial source stage is not a complete PNCC runtime, desktop integration, build, deployment, or health
claim.
- This implements one read-only fact cycle, not arbitrary execution organs, multi-node handoff, packaged
desktop acceptance, publication, deployment, or online health.
## Consequences
HoloLake now has a native, testable boundary between “a persona Git exists” and “a verified wake has begun.”
The next implementation step can reuse the verified wake receipt and event chain instead of trusting a UI,
Forgejo account, branch name, or generic Agent session.
HoloLake now has a native, testable boundary between “a persona Git exists,” “a verified wake has begun,”
“model inference actually started,” and “a checkpoint was committed before dormancy.” Future organs and the
human projection can consume the same receipts instead of trusting a UI, Forgejo account, branch name, or
generic Agent session.