diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index f4d45d8..d7dd5c8 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -49,14 +49,26 @@ foundation checklist below. Existing Ghostlight fixtures remain regression evidence. The active immutable release is -`f1d55b181ad60ace8e8e92859c4d0b2f1a94fc87`, binary SHA-256 -`119772af15859d8c26e7239d705a229ce01b24d6a7e70105b78e4df227ef0583`. +`7916ab04936ba962720cfbf4af1b83f9aa8d8b24`, binary SHA-256 +`c05b5854be83262067ed417edf1722bb3f79d2981c8292fccb7d7a9695d36d78`. Manifest, process, typed health, persisted campaign count, CultMesh store, DeepSeek startup inference, and VoidBot retrieval agree. Periwinkle proved the private-LAN route and unauthenticated 401; Raven and Yggdrasil independently proved WireGuard. Exact firewall and rollback truth remains owned by `gamecult-ops/runbooks/ghostlight-dungeon-starfire.md`. +The exact release passes the authenticated generated-start and committed +player journey: canonical nonliteral player identity, private assessment, +confirmed d20 roll, wait, restart, fork, export, original re-selection, and +reset. The current 24-subject budget matrix passes at 1, 4, 8, and 32 cells. +The strict nested refugee golden now passes without a retry: Mira retains an +individual perspective inside a budget-one rival arena, migrates across two +depth-two population lineages, survives three further background waves with +her exact delta intact, and is automatically promoted as the same person when +the player later returns. The remaining human-test gate is rendered browser +inspection using a temporary invite, which requires explicit approval to send +that credential through the in-app browser; rotate invitations afterward. + The multiresolution authority map is `docs/architecture/ghostlight-multiresolution-agency.md`. Canonical people and populations never merge; only the derived simulation cover does. Budget/pin diff --git a/notes/ghostlight-current-system-map.md b/notes/ghostlight-current-system-map.md index d7bad07..29ac9cb 100644 --- a/notes/ghostlight-current-system-map.md +++ b/notes/ghostlight-current-system-map.md @@ -108,13 +108,16 @@ directly, including active reachable migration destinations, and wave validation recomputes the same set. Prompt construction cannot append references the resolver does not recognize. -Cell perspective attribution is runtime-bound too. The Projector returns one -to the cell action limit `subject_id → narrative` segments; the schema admits -only exact constituents and selected member exceptions. Ghostlight rejects -duplicates, requires the debt-selected focus, sorts segments stably, and -lowers them to natural name/location headings before the Persona sees them. -The Persona receives prose only. An invented Markdown section can no longer -turn a mentioned outsider into a decision-making perspective. +Cell perspective attribution is runtime-bound too. The schema admits only +exact constituents and selected member exceptions. Ghostlight rejects +duplicates and requires both the debt-selected focus and every selected named +member exception to receive their own perspective segment; an actionable +individual can no longer disappear inside the aggregate before the Persona +turn. The perspective count may exceed the action limit only by the number of +mandatory owners; action consequences remain separately capped. Segments are +sorted and lowered to natural name/location headings before the Persona sees +prose only. An invented Markdown section cannot turn a mentioned outsider into +a decision-making perspective. Gestalt background choices use three distinct typed paths. Pressure transitions change exact unresolved markers. `gestalt_activity` records an attributed @@ -156,10 +159,12 @@ replication, not daemon-liveness authority: a failed publish is logged with its key and target while the complete local snapshot persists and HTTP serves that same typed health and Eve state. -Opening suggestions receive one same-evidence semantic correction when the -local distinctness invariant rejects the first typed set. Both the rejected -and accepted stage receipts remain in the private compiler result; the browser -still receives only the three public suggestions. Invite rotation is owned by +Opening retrieval deliberately covers early, transitional, and late historical +frames. Suggestions receive one same-evidence semantic correction with exact +collided values when the local distinctness invariant rejects the first typed +set; roles use the same bounded correction for duplicate names or premises. +Both rejected and accepted receipts remain private while the browser receives +only public suggestions. Invite rotation is owned by the deployment boundary: it replaces the protected token set and clears the persisted auth authority together while the daemon is stopped. Campaign stores survive; old sessions deliberately do not. @@ -179,6 +184,27 @@ does not project branch-local or provisional fact statements—even when they ar discoverable later. Those facts remain canonical inputs to knowledge-gated play and operator inspection; the browser cannot reveal them before discovery. +## Current acceptance body + +Starfire currently serves immutable release +`7916ab04936ba962720cfbf4af1b83f9aa8d8b24`, executable SHA-256 +`c05b5854be83262067ed417edf1722bb3f79d2981c8292fccb7d7a9695d36d78`, +with rollback `a92fb7a4a09b2ee2d80b8e3f8ecff3ab71b9ea06`. + +Authenticated acceptance against the exact release has proved generated +opening/role/approval compilation, a nonliteral canonical player actor ID, +private assessment, confirmed server roll, wait, daemon restart continuity, +fork isolation, original re-selection, reset, and a MessagePack-backed `.cc` +export. The multiresolution matrix covered 24 factions exactly once at budgets +1, 4, 8, and 32. The strict nested refugee golden placed all 24 subjects in one +rival arena, preserved Mira Venn as a named decision owner, migrated her into a +different depth-two population lineage, produced material activity across six +other background subjects, preserved her delta and the player, and later +promoted the same Mira for a return encounter. Witnesses live under +`F:\GameCult\GhostlightDungeon\acceptance\player-journey-a92fb7a-20260818`, +`gestalt-scale-a92fb7a-b{1,4,8,32}`, and +`gestalt-dynamics-7916ab0-strict`. + `gestalt_migration` records a collective decision by one exact active leaf to move along an explicit migration relation and reachable route. WorldKernel changes the leaf's home location and agency-profile location together. The diff --git a/notes/ghostlight-implementation-plan.md b/notes/ghostlight-implementation-plan.md index 763dae7..85eee17 100644 --- a/notes/ghostlight-implementation-plan.md +++ b/notes/ghostlight-implementation-plan.md @@ -29,7 +29,7 @@ cover receipts, and a separate operator provider-concurrency limit. The specific authority map is `docs/architecture/ghostlight-multiresolution-agency.md`. The accepted implementation is hosted on Starfire as immutable release -`f1d55b181ad60ace8e8e92859c4d0b2f1a94fc87`. Exact checkout, embedded commit, +`7916ab04936ba962720cfbf4af1b83f9aa8d8b24`. Exact checkout, embedded commit, release manifest, binary hash, process, typed health, CultMesh store, persisted campaign, DeepSeek startup inference, VoidBot retrieval, private-LAN access, WireGuard access, and unauthenticated rejection agree. This pass makes model @@ -83,11 +83,13 @@ pulses committed without retry. The run used 126,826 prompt tokens with a typed material outcome; unrelated direct consequences can no longer hide an inert outcome resolver. -The next gate is release truth: commit and publish this exact candidate, deploy -an immutable optimized build to Starfire, and repeat authenticated browser and -restart checks against the served commit. Then begin the two-tester playtest. -Treat player confusion, dramatic flatness, composite consequences, and -token-heavy low-consequence stages as evidence about missing context or +Release truth, authenticated compiler/player HTTP journeys, restart continuity, +and the strict multiresolution refugee-return golden now pass against immutable +builds. The next gate is visual browser inspection of the served interface with +a temporary invite, followed by supervised human play. Browser credential +transmission requires explicit operator approval and must end with invitation +rotation. Treat player confusion, dramatic flatness, composite consequences, +and token-heavy low-consequence stages as evidence about missing context or misplaced authority. Keep the independent semantic outcome verifier selective: it checks custody transfers, relation shifts, and named-member private deltas, while deterministic local validation owns ordinary bounded preparations and diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 45f1989..5567d72 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -91,3 +91,6 @@ {"ts":"2026-08-18T17:47:00Z","type":"deployment","status":"ok","branch":"codex/ghostlight-dungeon-mvp","note":"Starfire release 0e4b8f4617840d45daec8a6451001192193ca5e0 passed authenticated HTTP and restart rehearsal. A newly rotated invite returned 200 once and 401 on replay; its session saw the compiler surface and empty owned-campaign list. The live opening endpoint returned exactly three pairwise-distinct eras, places, and pressures after the compiler gained one same-evidence semantic correction. A second session remained authenticated across an explicit daemon stop/start. Deployment then rotated back to exactly two unused tester invitations. Manifest and actual executable SHA-256 agree at 2aa75cfa57d5381f6fa1da8a454314efd00c52317cfc003f744bfad855bedf57. Witness: F:\\GameCult\\GhostlightDungeon\\acceptance\\authenticated-release-0e4b8f4-20260818\\result.json."} {"ts":"2026-08-18T18:00:05Z","type":"verification","status":"ok","branch":"codex/ghostlight-dungeon-mvp","note":"Deployed release c7d950c9ae4f734caa7b8e1ab8e3e5e22826117e processed the real five-minute scheduler pulse for the persisted campaign with no active agency subjects. campaign.cc advanced at 17:59:44Z, exactly on the pulse; the prior 'agency graph has no active subjects' refusal did not recur. Local regression proves the same branch advances two overdue world/clock ticks without a model or resolution wave and leaves the player byte-identical. The scheduler still enters WorldKernel AdvanceStrategicTick and the live-turn commit gate."} {"ts":"2026-08-18T18:05:00Z","type":"deployment","status":"ok","branch":"codex/ghostlight-dungeon-mvp","note":"Starfire activated immutable release 85938884b84a7db51417d68fdd5bc208a5063555 with executable SHA-256 6d27bbc52b9f6c70242d7077a9e9362e35468b65ad62e1bb4f2cbcd99383db66 and rollback c7d950c9ae4f734caa7b8e1ab8e3e5e22826117e. Typed health, manifest, actual binary hash, DeepSeek readiness, and served asset /assets/index-DmZm_kJC.js agree. The exact served JavaScript contains neither branch_facts nor the former operator-spoiler label. A server regression plants a discoverable branch secret and proves its ID and statement are absent from the player approval projection."} +{"ts":"2026-08-18T18:35:30Z","type":"verification","status":"ok","branch":"codex/ghostlight-dungeon-mvp","note":"Exact release a92fb7a4a09b2ee2d80b8e3f8ecff3ab71b9ea06 passed the authenticated committed player journey. A generated campaign used a canonical player ID other than literal player; the server-projected ID drove a private admissible assessment, confirmed OS-random d20 commit, wait, daemon restart, fork, 1,056,768-byte .cc export, original re-selection, and reset. The original remained at revision 2 after fork and the session retained three isolated branches. Cleanup rotated exactly two fresh invitations. Witness: F:\\GameCult\\GhostlightDungeon\\acceptance\\player-journey-a92fb7a-20260818\\result.json."} +{"ts":"2026-08-18T18:50:40Z","type":"verification","status":"ok","branch":"codex/ghostlight-dungeon-mvp","note":"Provider-backed 24-subject multiresolution smokes passed at active-cell budgets 1, 4, 8, and 32. Covers contained 1, 4, 8, and 24 cells respectively; compressed cross-faction cells remained arenas, every canonical subject appeared exactly once, material background consequences committed, and the absent player never moved. Elapsed times were 18.08s, 15.90s, 25.64s, and 63.22s. Witnesses: F:\\GameCult\\GhostlightDungeon\\acceptance\\gestalt-scale-a92fb7a-b1, -b4, -b8, and -b32."} +{"ts":"2026-08-18T18:52:00Z","type":"verification","status":"ok","branch":"codex/ghostlight-dungeon-mvp","note":"Exact release 7916ab04936ba962720cfbf4af1b83f9aa8d8b24 made every selected named member exception a mandatory Projector perspective owner, closing the seam where aggregation could erase an actionable individual before Persona choice. The strict provider-backed budget-one golden placed 24 rivals in one arena, attributed migration to member:mira-venn, moved her between depth-two population lineages, produced nine sustained material consequences including seven typed outcomes across six other background subjects, preserved her delta and the player, and automatically promoted the same Mira on return with zero rejected pulses. Witness: F:\\GameCult\\GhostlightDungeon\\acceptance\\gestalt-dynamics-7916ab0-strict\\result.json."} diff --git a/state/map.yaml b/state/map.yaml index 3aa0f07..0dcc3bc 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -270,6 +270,6 @@ data_flow: - If state grows faster than understanding, cut it back. current_status: - summary: Starfire serves immutable release 85938884b84a7db51417d68fdd5bc208a5063555 with matching typed health, manifest, executable hash, hashed browser asset, persisted campaign, DeepSeek readiness, and rollback to c7d950c. Forced high-risk custody verification, authenticated HTTP/opening compilation, invite replay rejection, session restart persistence, atomic invite rotation, and real five-minute empty-agency clock advancement pass. The served approval bundle no longer contains branch_facts or the former operator-spoiler renderer; undiscovered branch facts remain behind knowledge gates. - next_action: With explicit approval to transmit one temporary invite credential to the local in-app browser, complete the visual authenticated journey and inspect rendered opening controls; rotate two fresh invitations afterward. Then begin supervised human playtesting and treat confusion, composite consequences, or low dramatic yield as live evidence without weakening state admission. - gestalt_population: Gestalt Personas own shared population baselines; persistent member deltas own named individuality; WorldKernel materialization and approval-gated fission preserve lineage and identity. Presence projection is limited to nearby active leaves and exact-location dormant members, includes reciprocal player relationship evidence, and may propose an earned cast without committing it. Simulation cells are derived covers only. + summary: Starfire serves immutable release 7916ab04936ba962720cfbf4af1b83f9aa8d8b24 with matching typed health, manifest, executable hash c05b5854be83262067ed417edf1722bb3f79d2981c8292fccb7d7a9695d36d78, DeepSeek readiness, and rollback a92fb7a. Exact-release authenticated acceptance passes generated opening/role/approval compilation, canonical nonliteral player identity, private assessment, confirmed d20, wait, restart continuity, fork, export, re-selection, and reset. The 24-subject cover passes budgets 1/4/8/32. The strict budget-one rival-arena refugee golden migrates Mira across nested populations, preserves her exact delta and the player through sustained material background activity, and promotes the same person on return. + next_action: With explicit approval to transmit one temporary invite credential to the local in-app browser, complete the visual authenticated journey and inspect the compiler, assessment, roll, wait, campaign lifecycle, and resolution controls; rotate two fresh invitations afterward. Then begin supervised human playtesting and treat confusion, composite consequences, latency, or low dramatic yield as evidence without weakening state admission. + gestalt_population: Gestalt Personas own shared population baselines; persistent member deltas own named individuality; WorldKernel materialization and approval-gated fission preserve lineage and identity. Selected actionable member exceptions are mandatory Projector perspective owners, so aggregation cannot silently erase their decision. Presence projection is limited to nearby active leaves and exact-location dormant members, includes reciprocal player relationship evidence, and may propose an earned cast without committing it. Simulation cells are derived covers only.