diff --git a/wiki/engineering/current-build.md b/wiki/engineering/current-build.md index 58af9904..6f9d415f 100644 --- a/wiki/engineering/current-build.md +++ b/wiki/engineering/current-build.md @@ -25,7 +25,7 @@ fiction. Spec status lives in | Per-observer detection + Assurance as aggregate Observer | Live — revision 04 starts with Voss and a generic external-review clock; field watchers are earned through reactions, witnessed Physical acts persist as exact direct-to-head records, every one-shot Network act follows exact source-device ReachNet custody to Dana, Paper and Financial follow their institutional switches to Priya, JobAnomaly follows exact host-machine/device/site custody to Voss, each Filing crosses an exact device / outside relay / recipient route, and Power/Thermal aggregates author immediately on quantized level changes and periodically at Priya cadence before crossing from the UPS/HVAC meters through the institutional switch to her later read. All seven routed kinds share one pre-read route-local LIE-body capacity; recruited-handler suppression may separately stop the oldest unread JobAnomaly. Standing Network pressure alone remains ambient. Acquired evidence is irreversible. | | Social / personas / plots / messages / intel (record-and-process) | Live — named personas retain separate coherent/strained/broken reads per person or institutional counterparty; one witness's break is not a global burn. One resident procedure may occupy each machine's scarce process slot, binding that body to one persona, mandate, learned plot-method allow-list, reachable inputs, and bounded Thought/money/signature/concurrency/risk authority. Installing or retiring it is Thought-backed work on that host; offline bodies stop, every attempt revalidates the ordinary legal route, and receipts retain host/persona/target/method/outcome provenance. Ray's 23:00 Storage B patrol can carry the sealed personnel file into the bounded information inbox before Marcus is recruitable; processing, not retrieval, reveals the debt. An earned human may be removed only through one exact recruited Complicit/Knowing actor's overlapping accessible schedule route; the request and person-carried packet persist, co-location fires it, the stopped dossier remains, all future human activity ceases, and immediate containment makes every observer Convinced. Messages have four real delivery channels; accounting carriage is a separate persisted device capability, and authored financial-record mail is live through ordinary Email/Filing custody. | | Digital reach + sensor ownership (tap/take) | Live — B1's topology-generated population includes exact secured-door readers; a funded player TAP records each access-valid entered/left crossing as ordinary processable Presence custody, while a starved retained tap remains silent | -| Economy flows + Moonlight / Wager income | Live — Moonlight is persisted Halcyon compute/intel contracts with financial mail, account-graph payment, and exact egress evidence; Wager remains unchanged | +| Economy flows + Moonlight / Wager income | Moonlight live — persisted Halcyon compute/intel contracts with financial mail, account-graph payment, and exact egress evidence. The Wager's stake, day-clock settlement, seeded base probability, payout/forfeit, and routed Network evidence are live; optional analysis remains IN PROGRESS because no player action can bind real work to a position yet. | | Research (self-modification, emission law, real output hooks, Routing) | Live | | Building + physical asset work as carried intents/packets | Live — network links and small switches expose one shared procurement / ask someone / false order / reuse route sheet; NetworkLinks require one exact earned physical run, persist its rectilinear path, and traverse RUN THE WIRE before connection, while SmallSwitch remains footprint-local; exact money, people, personas, sources, delivery, recovery, carried installation, cancellation custody, Storage B file retrieval, and observer-local completion evidence persist in save v63 | | Cursor / fog (seen, remembered, blueprint, telemetry; audio is device-bound event evidence) | Live | diff --git a/wiki/interface/operations-workspace.md b/wiki/interface/operations-workspace.md index 762be8d0..790d8c4d 100644 --- a/wiki/interface/operations-workspace.md +++ b/wiki/interface/operations-workspace.md @@ -65,6 +65,11 @@ Status note: Reopened 2026-08-02 (adopted, not yet implemented): selected compact key line says `f go there`. If the selected object has no known map location, terminal and Bevy say `You do not know where this happens.` and remain in Operations. Internal actuator bindings remain unchanged. + Amended 2026-08-04: Wager copy now matches income.md's reopened criterion 2. + Current positions show their stake, base win probability, settlement tick, + and result, but no analysis commitment: no player or agent action can bind + analysis work yet. Once that authored route lands, ACTIVE must expose its + exact real-work commitment rather than infer it from probability. Amended 2026-07-21: ACCOUNTS teaches ordinary TAP on the known accounting device, then waits honestly for later-authored record mail, then offers PROCESS on captured books. The retired second-step `TAP LEDGER` label is not @@ -809,8 +814,10 @@ ACTIVE aggregates strategic commitments already in motion: are waiting on (thought, message delivery, day-clock time, world act, or held choice), and their eventual completed/failed history; - Moonlight shows each accepted/delivered contract and its next exact action; -- wager positions show stake, analysis commitment, settlement tick, and result - when resolved. +- current wager positions show stake, base win probability, settlement tick, + and result when resolved. They show an analysis commitment only after + income.md criterion 2 supplies a player-authored real-work binding; the + current zero-analysis seam is not presented as a completed mechanic. ACTIVE never duplicates legality. Selecting an active or held entry resolves back to its canonical intel/person/account/scheme target and bound row; diff --git a/wiki/log/2026-08-04-wager-current-mirror-reaudit.md b/wiki/log/2026-08-04-wager-current-mirror-reaudit.md new file mode 100644 index 00000000..fd7deb1d --- /dev/null +++ b/wiki/log/2026-08-04-wager-current-mirror-reaudit.md @@ -0,0 +1,58 @@ +# Wager current-mirror re-audit + +``` +Type: log +Date: 2026-08-04 +Status: COMPLETE +Subject: Markets and income B1 mirror after the Wager analysis audit +``` + +## Tick + +- **Slice:** `wiki/mechanics/markets.md` and `wiki/mechanics/income.md` against + AccountGraph positions, Sim placement/settlement, Operations projection, + current-build, and current simulation law. +- **Finding:** the exact B1 contract/account/evidence chain still holds, but + the later 2026-07-28 Wager audit reopened optional analysis without updating + every current mirror. `current-build.md` called the whole economy row Live + and said only that the Wager was “unchanged”; implemented Operations law + promised that active positions show an analysis commitment. The only + player/agent placement action still accepts a stake, and `Sim::open_position` + explicitly authors zero analysis, so neither statement separated the live + base position from the missing analysis mechanic. + +## Trace + +- `Sim::open_position(stake)` requires outside contact, commits the exact + AccountGraph stake, authors a 2–5 day position at `analysis_compute = 0.0`, + and exposes the 0.55 base probability. +- `AccountGraph::resolve_positions_due` persists and reads + `analysis_compute`, resolves from the seeded RNG, and pays or forfeits the + exact stake. That lower-layer support is not a player-authored analysis + route. +- `operations_projection::wager_card` and `active_wager_object` truthfully + show stake, probability, settlement tick, and result. They do not invent an + analysis cost that never happened. +- `income.md` and the roadmap already mark criterion 2 IN PROGRESS. The stale + representations predated that audit and were never reconciled. + +## Repair + +- Current-build now names the exact live Wager boundary and the missing + optional analysis route instead of collapsing both into a Live row. +- Simulation mechanics makes the same distinction when excluding the retired + facility-era Schemes system. +- Operations law now describes the current base-position facts and requires an + exact real-work commitment only after income criterion 2 supplies a route + capable of authoring one. +- Income criterion 12 names these two representations as part of the current + mirror defense. No runtime behavior or B3 Markets criterion changed. + +## Defense + +An account-layer field and probability function do not prove a reachable +mechanic. Current documentation may call the Wager live only at the exact +stake, clock, settlement, payout/forfeit, and routed-evidence boundary the +player can exercise. Optional analysis remains incomplete until an action +binds visible real work for the position duration and every Operations surface +shows that same commitment. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 65def41e..a65422dd 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -16,6 +16,11 @@ add or amend a session log, then re-run the generator. - Intent: (see session log) - Log: [wiki/log/2026-08-04-worktree-activity-contract.md](2026-08-04-worktree-activity-contract.md) +## 2026-08-04 - Wager current-mirror re-audit + +- Intent: (see session log) +- Log: [wiki/log/2026-08-04-wager-current-mirror-reaudit.md](2026-08-04-wager-current-mirror-reaudit.md) + ## 2026-08-04 - The villain shape is not an open call - Intent: (see session log) diff --git a/wiki/mechanics/income.md b/wiki/mechanics/income.md index 6dc86763..4d646cef 100644 --- a/wiki/mechanics/income.md +++ b/wiki/mechanics/income.md @@ -349,6 +349,9 @@ CONNECT TO THE OUTSIDE remains a local action on the switch. preserving explicit superseded history plus dated logs, playtests, and the tick ledger. Wager analysis likewise cannot read a hidden Schemes yield; it remains explicit incomplete work until bound to a live substrate. + Current-build and Operations mirrors distinguish that missing analysis + route from the live base position rather than calling the whole Wager + complete or displaying a commitment the player cannot author. **Met for retired doctrine 2026-07-26; Wager seam defended 2026-07-28.** Defense: `save::tests::current_save_rejects_impossible_wager_positions` pins diff --git a/wiki/mechanics/sim-mechanics.md b/wiki/mechanics/sim-mechanics.md index ace4300a..0bbecd29 100644 --- a/wiki/mechanics/sim-mechanics.md +++ b/wiki/mechanics/sim-mechanics.md @@ -546,7 +546,9 @@ All constants [TUNE] in `crates/misaligned-core/src/income.rs` unless noted (Sim ## What does NOT exist right now (by design) Facility-era heat, raids, agents, combat, minions, henchmen, superpowers, -and loot. (Named B1 **income schemes** — Moonlight and the Wager — are live -under income.md; they are not the retired facility-era "schemes" system.) +and loot. (Named B1 **income schemes** live under income.md rather than the +retired facility-era "schemes" system: Moonlight is live, and the Wager's +base stake/timer/settlement route is live while optional player-authored +analysis remains explicitly IN PROGRESS.) Misaligned replacements for the rest live in `Type: spec` wiki pages and rebuild from those documents as milestones land. diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index 7726e6ab..0ec4d4f1 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -38,7 +38,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/interface/keymap.md` + terminal/Bevy input routes | 2026-07-26 | finding | the canonical table assigned `A` to left movement and only `e` / Enter to the context menu, but terminal still opened and closed menus with its older `a` alias and lacked the specified Shift+direction semantic jump. Terminal now implements WASD parity, `a` means left, `e` / Enter alone open the menu, and both frontends consume one renderer-neutral nearest-earned-anchor query without changing selection or opening a menu. README, action-vocabulary, terminal, context-menu, and pinned terminal hints now teach the same boundary — [log](../log/2026-07-26-terminal-keymap-a-reconciliation.md) | | `wiki/interface/action-vocabulary.md` + agent command registry | 2026-07-31 | finding | `PROPOSE SWITCH` still described declaration-only R2a after all four realization families and their exact agent route command had landed. The canonical inventory and agent-play spec now name current execution plus the honest remaining boundary—small-switch realization has no wire-run choice—and a paired corpus defense rejects regression to the stale support claim — [log](../log/2026-07-31-small-switch-action-vocabulary.md). Prior PLOT POLICY inventory repair stands — [log](../log/2026-07-26-action-vocabulary-plot-policy.md). | | `wiki/world/places/zplanes.md` + plane-stack substrate/API | 2026-07-26 | finding | criteria 1-2 remain implemented and criteria 3-6 honestly deferred, but the ratified plane-agnostic contract still left an unused `World::active()` simulation accessor plus active-plane comments on the B1 compatibility map path. The accessor is removed, map reads now say plane 0, the stale criterion/sensing comments are corrected, and a source-shape regression rejects restoration of simulation-owned floor selection — [log](../log/2026-07-26-zplanes-plane-agnostic-api-audit.md) | -| `wiki/mechanics/markets.md` + `income.md` B1 contract/account/evidence mirror | 2026-07-26 | finding | the deferred B3 criteria and their current B1 mirror still allowed the operation shape to collapse into payout plus signature, bypassing or obscuring exact AccountGraph, financial-mail, carrier, and routed-evidence custody. Markets now aggregate immutable B1 contract/position records through the same causal chain; current runtime is unchanged — [log](../log/2026-07-26-markets-contract-custody-reconciliation.md) | +| `wiki/mechanics/markets.md` + `income.md` B1 contract/account/evidence mirror | 2026-08-04 | finding | the exact B1 contract/account/evidence chain still holds, but the 2026-07-28 Wager audit reopened optional analysis without updating all current mirrors: current-build still called the economy row wholly Live and said only that the Wager was “unchanged,” while implemented Operations law promised an analysis commitment no player action can author. Current-build, sim-mechanics, income, and Operations now distinguish the live base stake/timer/settlement route from the missing real-work analysis route — [re-audit](../log/2026-08-04-wager-current-mirror-reaudit.md). Prior custody reconciliation stands — [log](../log/2026-07-26-markets-contract-custody-reconciliation.md). | | `wiki/art/effects-lab.md` + corpus navigation | 2026-08-04 | finding | the Thought-only navigation defense remains exact, but the material game adapter had fallen behind the placed-wire law: unlike the flat work renderer, it passed only clipped hop endpoints into the shared effect, allowing Thought to cut center-to-center across persisted bends. `MaterialEffects` now accepts the exact caller-owned route polyline; the game adapter reuses `work_route_grid_points`, and slugs, far dashes, and route spines follow every authored segment while one move remains one slug. Focused assets/adapter tests, Bevy clippy, and inspected game/lab captures passed — [log](../log/2026-08-04-effects-lab-wire-route.md), prior [navigation finding](../log/2026-07-26-effects-lab-navigation-gate.md). | | `wiki/interface/thought-fluid.md` + shared effect lifecycle | 2026-08-04 | clean | fresh code/spec re-audit found the ten implemented criteria still intact: each game root comes from one live Thought move; close/medium causal quanta remain one while far dashes explicitly compress rate; shared vessel/snap helpers remain readout-only; queue pools and stranded anchors remain sim-derived; and `(sync_game_thought_effects, ApplyDeferred).chain()` still flushes root changes before `MaterialEffectsSet::RebuildPopulation`. The asset suite, focused Bevy root tests, and live snap/tap proof scenarios passed. The separately named map-zoom sink-mark question remains an honest optional open call, not an unimplemented acceptance criterion — [log](../log/2026-08-04-thought-fluid-lifecycle-reaudit.md). Prior race repair: [log](../log/2026-07-24-bevy-effect-root-lifecycle.md). | | `wiki/art/visual-identity.md` + `wiki/interface/flat-materials.md` | 2026-08-04 | finding | the shared palette still supplied production materials, but nine Bevy sites copied exact BONE, SIGNAL, GUNMETAL_DARK, or AMBER tuples merely to vary alpha; the old guard rejected duplicate constants in `main.rs` while allowing this equivalent second authority in every module. Those sites now derive alpha from named colors, and the guard scans all ten production Bevy modules for raw literals matching every named role tuple — [log](../log/2026-08-04-bevy-palette-role-authority.md). Prior shared-palette repair stands — [log](../log/2026-07-22-shared-clinical-palette.md). |