From fed8f2b022111b29863183e75a3d57761d2e126d Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 21 Jun 2026 19:10:42 +0100 Subject: [PATCH] Add repo public proof wrapper --- notes/fresh-workspace-handoff.md | 4 +-- state/ledgers.msgpack | Bin 384274 -> 385105 bytes state/map.yaml | 4 +-- tools/epiphany_local_run.ps1 | 49 ++++++++++++++++++++++++++++--- 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index bea13415..352aeaef 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -119,7 +119,7 @@ remembers doctrine; the branch remembers the blade. - 2026-06-20: Public proof export is live. `epiphany-work export-proof` calls overview, distills the local `epiphany.repo_work_proof_bundle.v0` into redacted `epiphany.repo_work_public_proof_bundle.v0`, and writes `.epiphany/public/proof-bundles/repo-work-public-proof-.json` by default without raw receipt bodies, local receipt paths, expected paths, worker thought, publication authority, or private Verse exposure. Disposable proof `.epiphany-smoke\checklist-note-20260620-031347\13-export-proof.json` reported eight artifact rows, three publication rows, zero artifact path fields, `rawReceiptBodies=false`, and `private=false`. The next cut is deeper model-authored closure review, further non-planning action classes, or Idunn-owned queue-run service execution; not another local public-proof export wrapper. - 2026-06-20: Richer repo-work closure review is live. `epiphany-work close` now writes `epiphany.repo_work_closure_review.v0` beside the close receipt, recording verification command/exit code, stdout/stderr artifacts, declared Hands paths, actual git commit paths, path-scope match truth, compact commit stat, optional `--closure-model-ref` / `--model-authored` provenance, committed-content safe-family assertions, and authority seals. Soul only passes when the verification command succeeds, actual git changed paths match the Hands-declared path scope, and known safe-family assertions pass. Disposable proof `.epiphany-smoke\closure-review-20260620-135009` ran task-card work through close with `--closure-model-ref smoke-closure-review-v0 --model-authored`, producing Soul `passed`, `pathScopeMatched=true`, closure-review proof rows in overview/export, and `privateStateExposed=false`; a tampered execute receipt declaring `README.md` while the commit changed `notes/epiphany-work/closure-review-request-task-card.toml` produced `verification-failed`, Soul `failed`, `pathScopeMatched=false`, and no private-state exposure. Deeper assertion proof `.epiphany-smoke\closure-assertions-20260620-141401` showed a good `repo.status_section` close with `familyAssertions.status=passed`, then a path-scoped bad README override where `pathScopeMatched=true` but `familyAssertions.status=failed`, Soul `failed`, and missing marker/summary/private-seal assertions blocked closure with `privateStateExposed=false`. - 2026-06-20: The first repo-visible non-planning safe family is live. `epiphany-work derive-plan --action-family repo-status-section` lowers accepted Persona/Bifrost pressure into a marker-bounded README status section with safe family `repo.status_section`, model provenance, candidate/public refs, verification asks, rollback hints, and authority seals forbidding publication, merge, service lifecycle, elevation, cross-repo mutation, durable-state admission, and private-state exposure. Disposable proof `.epiphany-smoke\repo-status-section-20260620-140245` ran init -> online -> accept -> derive-plan with `--model-ref smoke-imagination-v0 --model-authored` -> run -> adopt -> execute -> close -> overview; Hands committed only `README.md`, Soul passed with `pathScopeMatched=true`, both Epiphany status markers were present, and `privateStateExposed=false`. -- 2026-06-20: Public proof local Verse transport, Bifrost publication closure, and the standard wrapper mouth are live. `epiphany-work export-proof --local-verse-store \.epiphany\local-verse.ccmp` mirrors each redacted export as `epiphany.cultmesh.repo_work_public_proof.v0` under `gamecult-local/repo-work-public-proof/latest`, with compact `PUBLIC-PROOF` TUI rows, artifact/publication row counts, public proof artifact ref, SHA-256, upstream-main sync truth, and `privateStateExposed=false`. `epiphany-verse-query swarm-overview` reads those rows as `repoWorkPublicProofRows` / `repoWorkPublicProofTuiRows`, exposes `latestRepoWorkPublicProof`, and adds non-mutating/non-elevated `repo-work-public-proof` action rows owned by Gjallar sight while Bifrost owns publication/credit consequence. `epiphany-verse-query bifrost-public-proof` and `tools/epiphany_local_run.ps1 -Mode bifrost-public-proof` now write `gamecult.bifrost.public_proof_publication_receipt.v0` from an existing redacted proof row with public Verse target, public room, ledger, review, credit, proof ref/SHA, and private-state refusal; `bifrost-ledger` and `receipt-directory` read it back. Disposable proofs `.epiphany-smoke\checklist-note-20260620-031347\14-export-proof-verse.json`, `15-swarm-overview-public-proof.json`, `21-bifrost-public-proof-publication.json`, `22-bifrost-ledger-after-public-proof-publication.json`, `23-receipt-directory-after-public-proof-publication.json`, wrapper artifact `local-20260620-132418-144-62ba9369`, and `24-bifrost-ledger-after-wrapper-public-proof.json` reported latest `repo-work-public-proof-checklist-request`, publication receipt `bifrost-public-proof-publication-wrapper-checklist`, SHA-256 `e781e09c2ba340c8818d3ef95e54085ccd0c92c6a3b5f73cc4878fb224e49dff`, `publicProofPublicationCount=1`, and `private=false`. The next cut is deeper model-authored closure review, further non-planning action classes, or Idunn-owned queue-run service execution. +- 2026-06-20: Public proof local Verse transport, Bifrost publication closure, and the standard wrapper mouth are live. `epiphany-work export-proof --local-verse-store \.epiphany\local-verse.ccmp` mirrors each redacted export as `epiphany.cultmesh.repo_work_public_proof.v0` under `gamecult-local/repo-work-public-proof/latest`, with compact `PUBLIC-PROOF` TUI rows, artifact/publication row counts, public proof artifact ref, SHA-256, upstream-main sync truth, and `privateStateExposed=false`. `epiphany-verse-query swarm-overview` reads those rows as `repoWorkPublicProofRows` / `repoWorkPublicProofTuiRows`, exposes `latestRepoWorkPublicProof`, and adds non-mutating/non-elevated `repo-work-public-proof` action rows owned by Gjallar sight while Bifrost owns publication/credit consequence. `tools/epiphany_local_run.ps1 -Mode repo-work-public-proof` now wraps that export path for operator use. `epiphany-verse-query bifrost-public-proof` and `tools/epiphany_local_run.ps1 -Mode bifrost-public-proof` write `gamecult.bifrost.public_proof_publication_receipt.v0` from an existing redacted proof row with public Verse target, public room, ledger, review, credit, proof ref/SHA, and private-state refusal; `bifrost-ledger` and `receipt-directory` read it back. Disposable proofs `.epiphany-smoke\checklist-note-20260620-031347\14-export-proof-verse.json`, `15-swarm-overview-public-proof.json`, `21-bifrost-public-proof-publication.json`, `22-bifrost-ledger-after-public-proof-publication.json`, `23-receipt-directory-after-public-proof-publication.json`, wrapper artifact `local-20260620-132418-144-62ba9369`, and `24-bifrost-ledger-after-wrapper-public-proof.json` reported latest `repo-work-public-proof-checklist-request`, publication receipt `bifrost-public-proof-publication-wrapper-checklist`, SHA-256 `e781e09c2ba340c8818d3ef95e54085ccd0c92c6a3b5f73cc4878fb224e49dff`, `publicProofPublicationCount=1`, and `private=false`. The next cut is deeper model-authored closure review, further non-planning action classes, or Idunn-owned queue-run service execution. - 2026-06-20: `notes/epiphany-repo-swarm-mvp-contract.md` now has the explicit functional-swarm answer. The current seventeen front doors are real proof surfaces, not decorative wrapper smoke, but Epiphany is not fully online until the typed artery can run as a living repo organism: deeper model-authored closure review, further non-planning action classes, Idunn-owned queue-run service lifecycle under explicit operator authority. Use that section when answering whether Epiphany is headed toward a functional swarm. - 2026-06-20: Gjallar/swarm-overview now exposes repo-work overview history as first-class compact sight, Persona's public Eve surface lowers the same queue for peer-readable collaboration, and Self has a first runnable queue surface over it. `SwarmOverviewOutput` and `SwarmTriageOutput` include `repoWorkOverviewCount`, `repoWorkOverviewRows`, `repoWorkOverviewTuiRows`, `latestRepoWorkOverview`, `latestRepoWorkGate`, `latestRepoWorkBlocker`, and `latestRepoWorkNextSafeMove`; the shared `swarmActionRows` queue gets priority 35 `repo-work-overview` rows owned by Gjallar, hosted body `repo-work`, authority gate `repo.work.overview`, effect class `repo-work-readback`, no mutation, no elevation, proof-bundle ref, and private-state seal. `eve-surfaces`, direct `connect-eve`, and the globally invokable Persona `eve-connect` daemon tool readback expose public `REPO-WORK-PEER` rows with item, gate, blocker, next safe move, branch, publication, sync, and `private=false`. `epiphany-work queue-run` reads the same typed queue, selects current-repo rows at `ready-to-run`, `ready-to-adopt`, `ready-to-execute`, or `awaiting-closure`, delegates to `tick`, refreshes overview after real advancement, and wrapper `repo-work-queue-run` exposes the operator surface. Disposable proofs `.epiphany-smoke\gjallar-repo-work-queue-20260620-012027`, `.epiphany-smoke\eve-repo-work-queue-20260620-013322`, `.epiphany-smoke\queue-run-20260620-014314`, and wrapper artifact `local-20260620-014627-174-aada0241` prove two-item queue sight, Eve lowering, direct queue-run advancement, and wrapper dry-run without publication, merge, service lifecycle mutation, elevation, cross-repo mutation, or private-state exposure. The next cut is deeper model-authored closure review, further non-planning action classes, or Idunn-owned queue-run service execution; not another queue display surface. - 2026-06-20: Durable repo-work map admission now has local Verse/Gjallar sight. `epiphany-work close` still admits the accepted latest-per-item map into `.epiphany/state/repo-work-map.msgpack` only after Soul and Mind pass, then mirrors the accepted fact as `epiphany.cultmesh.repo_work_map_entry.v0` under `gamecult-local/repo-work-map/latest`. `epiphany-verse-query gjallar` now returns `repoWorkMapCount`, `repoWorkMapRows`, `repoWorkMapTuiRows`, and `latestRepoWorkMapEntry`, sealed to safe family, changed-path count, Soul/Mind ids, Bifrost gate, source map store ref, and `privateStateExposed=false`. Proof `.epiphany-smoke\repo-close-mind-adoption-guard-20260620-203717` shows counterfeit Mind adoption refused without map write, successful close projected the map row, and independent Gjallar readback returned one `REPO-WORK-MAP` row. The outer cargo-run smoke timed out just before child return, but `summary.json` is `status=ok` and the direct Gjallar readback is the terminal proof. The next repo-map work is richer semantic review/map lenses, not first projection. @@ -196,7 +196,7 @@ remembers doctrine; the branch remembers the blade. - `daemon-survival-rehearsal` is the bounded Idunn physiology proof. `epiphany-daemon-survival-rehearsal-smoke` writes a durable restart policy for `epiphany-daemon-self`, runs `epiphany-daemon-supervisor serve --max-iterations 2 --force --loop-interval-seconds 0`, verifies two scheduler pulses and the scheduler receipt row, and keeps service-manager mutation/elevation/private-state exposure false. Wrapper proof `tools/epiphany_local_run.ps1 -Mode daemon-survival-rehearsal -SkipBuild` emitted `.epiphany-smoke\daemon-survival-rehearsal-20260621-135723` via artifact `local-20260621-145723-011-1175e273`. - `repo-swarm-mvp-gate` is the compact aggregate MVP proof rite. `epiphany-repo-swarm-mvp-gate-smoke` consumes the latest fresh-repo MVP, repo-work readiness, Bifrost accounting-bundle, Idunn deployment handoff, daemon survival, Weksa interlingua, and Persona semantic memory recall proofs, verifies the green proof rows, and leaves only Idunn elevated service/install/start/remote execution as an explicit warning gate instead of laundering it into completion. Direct proof `.epiphany-smoke\repo-swarm-mvp-gate-20260621-174742` reports `demoReady=true`, `mvpReady=false`, `green=15`, `warnings=1`, `blockers=0`, `personaMemoryRecall.cacheStatus=qdrant-unavailable`, `personaMemoryRecall.status=fallback`, `personaMemoryRecall.dynamicCacheStatus=qdrant-unavailable`, `personaMemoryRecall.dynamicRecallWired=true`, `personaMemoryRecall.heartbeatRecallWired=true`, Projector/Persona/output-triggered Interpreter prompt coverage, and `privateStateExposed=false`. This is live-fire ready for a controlled repo Body; unattended/elevated production service or deployment execution remains an operator-granted Idunn rite. - Huginn is the first controlled live-fire repo Body past closure. On branch `epiphany/huginn/first-awakening`, item `huginn-inspection-readback-livefire` went through Persona intake, Imagination `repo.status_section` planning, Self run, Mind adoption, Hands README-only commit `e9b07c38fceabbdc89ea35c2156326c80c0393a2`, Soul closure, and Mind map admission. Refreshed overview reports `gate=awaiting-publication`, `blocker=bifrost-publication-missing`, `soulVerdict=passed`, `changedPaths=[README.md]`, and `privateStateExposed=false`; concrete TypeScript build verification passed via `C:\Program Files\nodejs\node.exe E:\Projects\Huginn\node_modules\typescript\bin\tsc -p tsconfig.json`. Do not push, publish, merge, or sync Huginn without Bifrost/maintainer authority. -- `epiphany-repo-livefire-closure-smoke` is the repeatable proof for a controlled repo Body that has reached closure. It checks the close receipt, Mind map entry, overview gate/blocker, authority seals, and actual `git show --name-only` changed paths. Huginn proof with `--workspace E:\Projects\Huginn --item huginn-inspection-readback-livefire --expected-path README.md --expected-family repo.status_section --expected-gate awaiting-publication --expected-blocker bifrost-publication-missing` returned `status=ok`, `soulVerdict=passed`, `publicationGate=Bifrost`, changed paths `[README.md]`, and `privateStateExposed=false`. `tools/epiphany_local_run.ps1 -Mode repo-livefire-closure -Workspace E:\Projects\Huginn -RepoWorkItem huginn-inspection-readback-livefire -SkipBuild` now wraps that verifier as the operator mouth; wrapper proof `local-20260621-190156-803-2f85ba15` printed the same commit/path/gate/blocker/Soul/Mind closure row without push, merge, publication, service lifecycle mutation, or private-state exposure. +- `epiphany-repo-livefire-closure-smoke` is the repeatable proof for a controlled repo Body that has reached closure. It checks the close receipt, Mind map entry, overview gate/blocker, authority seals, and actual `git show --name-only` changed paths. Huginn proof with `--workspace E:\Projects\Huginn --item huginn-inspection-readback-livefire --expected-path README.md --expected-family repo.status_section --expected-gate awaiting-publication --expected-blocker bifrost-publication-missing` returned `status=ok`, `soulVerdict=passed`, `publicationGate=Bifrost`, changed paths `[README.md]`, and `privateStateExposed=false`. `tools/epiphany_local_run.ps1 -Mode repo-livefire-closure -Workspace E:\Projects\Huginn -RepoWorkItem huginn-inspection-readback-livefire -SkipBuild` wraps that verifier as the operator mouth; wrapper proof `local-20260621-190156-803-2f85ba15` printed the same commit/path/gate/blocker/Soul/Mind closure row without push, merge, publication, service lifecycle mutation, or private-state exposure. `tools/epiphany_local_run.ps1 -Mode repo-work-public-proof -Workspace E:\Projects\Huginn -RepoWorkItem huginn-inspection-readback-livefire -SkipBuild` now exported Huginn's redacted public proof bundle and repo-local Verse row without publishing: artifact `local-20260621-190645-345-4555b1dc`, proof id `repo-work-public-proof-huginn-inspection-readback-livefire`, SHA-256 `857545b199f3e37eb06c2e757e5cfc201958e46667bb1f8403fd333a22620f63`, nine artifact rows, zero publication rows, and `privateStateExposed=false`; Gjallar proof `local-20260621-190701-140-b9519ec6` showed the compact `REPO-WORK-PUBLIC-PROOF` row from Huginn's repo-local Verse. - `bifrost-ledger` is the compact Bifrost/Imagination readback rite; use it after collaboration, publication, accepted-artifact, or metrics writes to see the latest body-change, public-proof, accepted-artifact, metrics, GitHub, feedback, consensus, credit/review-count, and accounting closure rows without opening the full local Verse. - `tool-directory` is the non-mutating daemon tool sight rite; it shows which globally available daemon-hosted tools any agent can invoke through typed intents and receipts, while still exposing host readiness. - `tool-invoke` now embeds compact readbacks for common daemon-hosted tools. Status calls return `daemonStatusReadback`, Eve calls return `eveConnectionReadback`, Self `service-health` returns Idunn-owned `serviceHealthReadback`, Self `service-policy-directory` returns Idunn-owned `servicePolicyDirectoryReadback`, Self `swarm-online-runbook` returns Idunn-owned `swarmOnlineRunbookReadback`, and Hands/Soul authority tools return `authorityToolReadback` with gate, input contract, receipt contract, intent/receipt routes, host cluster, and private-state seal. This proves global tool ergonomics without moving action, verification, or daemon lifecycle ownership into the wrapper; live proofs routed Persona to Hands `repo-action` (`local-20260619-021628-143-7bf7f2e0`), Soul `verify` (`local-20260619-021701-458-852cfa6f`), Self `swarm-online-runbook` (`local-20260619-032244-273-acb3c6a4`), and Self `service-policy-directory` (`local-20260619-035238-138-633f3ff0`) with `privateStateExposed=false`. diff --git a/state/ledgers.msgpack b/state/ledgers.msgpack index c536784b96ddfab97b407881f6719c72727107ac..683d4acc84e29702aeb601805b1eb73a9d141512 100644 GIT binary patch delta 494 zcmZWly^9k;6nB#h%5}lwJmK)cU87{;?Cj2dTyt`V-icyj@B^%zot?d`ZZdnb8*&z6 zVPRn>h5^COS_B2b%F5nC1cRvmi4$^#VDaO@kN4j1C%7$9eg5)_68+I2Mc9v}k>tHPGW9=GAs<Y}(J8r$g#uHztA4uxH^j#u7Ib z#|JV6ElY*}dyUQg?`We1nbOAjhAx=jbM&F$y3R8$YS3z0LEM3*8(!yXyyQp+sv)N= zfQW_6w_0(WdD07ILIOc$$U@0PCMa=Z7D+z{f-p(kEb@t$rJm<;N&`x=z%w`BqV@Au#HR5HPGaW9QUumLPoW-47+mi6@ZH|v8t&iTxqfvQ_XoY+m4zwD zv>F{(vP@ej!3($}btSuSL%~jNSE~BrUS97{l7B-j5>~?wjHEu0XF8xXRFB32ro4hu KYTM38rrp2#J)jx@ delta 52 zcmcb3Kz!0J@ePuUT*g+022sZtSZ}}Itjt)*$T+!qDpUJZCPp9z(ab>1vVAHOYwaxn D<