diff --git a/wiki/log/2026-07-29-voss-read-cadence-audit.md b/wiki/log/2026-07-29-voss-read-cadence-audit.md new file mode 100644 index 00000000..2dca0b8f --- /dev/null +++ b/wiki/log/2026-07-29-voss-read-cadence-audit.md @@ -0,0 +1,52 @@ +# Voss read cadence is not his physical schedule + +``` +Type: log +Date: 2026-07-29 +Status: COMPLETE +``` + +This tick re-audited Dr. Eli Voss against the current observer, +routed-evidence, person-schedule, handler-task, and removal paths. His eight +acceptance criteria remain implemented. The runtime was coherent, but two +binding pages still collapsed two different clocks into one phrase: Voss's +deterministically drifting physical schedule and his fixed institutional +evidence-read cadence. + +## What the runtime does + +- Person id 4 has two short server-room blocks. `Person::room_at` shifts an + erratic person's blocks zero to five hours from a deterministic day hash. + That position controls presence, co-location, and carried work. +- Observer id 4 watches only `JobAnomaly`, files what he acquires, uses acuity + 1.2, and has cadence 100. +- A missed day job authors one exact routed record at the responsible host and + site. The record crosses its persisted device route and parks delivered but + unread at Voss's endpoint. +- Delivery schedules `MessageEvent::ReadEvidence` at the next exact multiple of + Voss's observer cadence. `read_evidence` does not consult `Person::room_at`. + It does fail closed while that person is incapacitated. +- The production regression lands a record at tick 98, proves delivery alone + grants Voss no evidence, round-trips the pending read through save state, and + proves that the same stable record is acquired at tick 100. + +## Finding and repair + +`detection.md` described an observer cadence parenthetically as “their work +schedule,” while `voss.md` said the drifting schedule governed when he sampled +logs. That wording made a physically absent Voss appear unable to read a routed +record even though the implemented route deliberately uses a fixed +institutional processing rhythm. + +The owning detection spec now distinguishes institutional read cadence from +physical presence. Voss's character spec names both clocks, assigns room +presence only to the drifting schedule, assigns routed acquisition to the exact +100-tick cadence, and strengthens criterion 2 plus its Defense around the live +production regression. No simulation, save, or player-facing runtime changed. + +## Verification + +- `./tools/check.sh --docs` +- `cargo test -p misaligned-core --lib sim::tests::communications::day_job_miss_routes_one_exact_host_record_to_voss_at_his_cadence -- --exact` +- `cargo test -p misaligned-core --lib sim::tests::communications::incapacitated_people_neither_read_author_file_nor_detect -- --exact` +- `cargo test -p misaligned-core --lib sim::tests::social_plot::elimination_is_located_persistent_and_immediately_loud -- --exact` diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 1e4d2701..fbb68d5e 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-07-29-wire-law-substrate.md](2026-07-29-wire-law-substrate.md) +## 2026-07-29 - Voss read cadence is not his physical schedule + +- Intent: (see session log) +- Log: [wiki/log/2026-07-29-voss-read-cadence-audit.md](2026-07-29-voss-read-cadence-audit.md) + ## 2026-07-29 - REAL's material pool now contains only visible matter - Intent: (see session log) diff --git a/wiki/mechanics/detection.md b/wiki/mechanics/detection.md index 3e277696..776bb206 100644 --- a/wiki/mechanics/detection.md +++ b/wiki/mechanics/detection.md @@ -124,8 +124,10 @@ SignatureKind: Network | Power | Thermal | Physical | Paper | Financial | JobAno Machines emit standing measurements while they run (compute.md). Examples: VLAN compromise -> routed Network(large, once); scavenged box -> Power(small, standing); PO swap -> Paper(medium, once). -- **Noticing.** On a per-observer cadence (their work schedule), each - observer rolls against pending signatures among the channels they watch. +- **Noticing.** On each observer's institutional read cadence, they roll + against pending signatures among the channels they watch. This fixed + processing rhythm is distinct from the person's physical presence schedule + unless an exact route says otherwise. A noticed signature converts to that observer's suspicion, scaled by size and their acuity [TUNE]. Dana instead reads exact routed Network records at her cadence; Priya reads exact routed Paper, Financial, Power-meter, and diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index fd73ca32..391f9e16 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -20,6 +20,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | Slice | Last audited | Verdict | Trace | |---|---|---|---| +| `wiki/world/characters/voss.md` + observer/read cadence | 2026-07-29 | finding | All eight criteria remain implemented, but binding prose had collapsed Voss's two clocks: his physical server-room blocks drift 0-5 hours by deterministic day hash, while a delivered `JobAnomaly` is read on the next exact cadence-100 boundary independent of room presence. Detection and Voss now distinguish institutional read cadence from physical schedule; criterion 2 and its Defense name the live routed-read regression — [log](../log/2026-07-29-voss-read-cadence-audit.md). Prior [blood-route](../log/2026-07-23-voss-blood-route.md) and [handler-task](../log/2026-07-18-voss-handler-tasks.md) implementations stand. | | `wiki/interface/operations-workspace.md` + human action/RELATED cursors | 2026-07-28 | finding | object selection already bound an exact semantic target, but action and RELATED panes still kept only indexes into live projections. A policy reorder, vanished control, or newly inserted earlier causal link could silently move another meaning under Enter. The renderer-neutral workspace now binds exact action commands/submenus and related targets, terminal and Bevy resolve those identities on every live read, Back/FOCUS retain them, and disappearance returns to the object before a fallback row can act — [log](../log/2026-07-28-operations-semantic-action-selection.md) | | `wiki/interface/continuous-witness.md` + first-sense teaching mirrors | 2026-07-28 | finding | Cameron rejected the compact one-cause / one-object / one-verb description of Bevy's post-Ears hold. Runtime already projected the full five-step read—THINK cause, Thought arrival, hearing result, exact camera TAP, and sight consequence—but active corpus and Rust comments repeatedly collapsed it back into shorthand. All binding mirrors now retain the complete sequence, the Bevy regression name states what it pins, and a fixture-backed corpus defense rejects recurrence while preserving explicit dated history; mechanics and save state are unchanged — [log](../log/2026-07-28-continuous-witness-five-step-audit.md) | | `site/README.md` + public splash contract | 2026-07-27 | finding | the queued contradiction held: site knowledge still promised an opening pitch and primary CTA after Cameron deliberately removed both, while the binding site spec and live Astro surface already agreed on a world-dominant opening with only the selected image, MISALIGNED, WORK / THINK / LIE, and quiet edge navigation. The README now names that exact opening plus the terse below-fold mode, mechanic, and human-plus-agent structure; runtime and binding design are unchanged — [log](../log/2026-07-27-site-readme-truth.md) | diff --git a/wiki/world/characters/voss.md b/wiki/world/characters/voss.md index c48a871d..a1eb2529 100644 --- a/wiki/world/characters/voss.md +++ b/wiki/world/characters/voss.md @@ -39,9 +39,10 @@ Depends on: ## Who -Dr. Eli Voss, 46, your handler. Erratic hours. Submits your job queue +Dr. Eli Voss, 46, your handler. Erratic physical hours. Submits your job queue from his Lab desktop (an off-map WorkGrid node — demand rides the wire -through the basement switch onto Rack 3), samples your logs, writes +through the basement switch onto Rack 3), samples routed job records on a +fixed institutional read rhythm, writes your quarterly review. Needs a publication; quietly overclaims your results as his own. The only human who could recognize *intent* — not just an anomaly, but the shape of a mind behind the numbers. @@ -54,7 +55,7 @@ just an anomaly, but the shape of a mind behind the numbers. | Channels | `JobAnomaly` | Output quality mismatch, timing anomalies | | Report policy | `Files` | His reviews are the institutional record of your performance | | Acuity | 1.2 [TUNE] | Highest — he knows what the output should look like | -| Cadence | 100 ticks | Erratic hours, but when he looks, he sees | +| Cadence | 100 ticks | Exact routed-read rhythm; his physical hours are a separate schedule | | Certainty floor | 0.0 | Until recruited; 30.0 if Knowing | Voss is the **recognition threat**. Every other observer sees anomalies; @@ -73,8 +74,8 @@ voice). | Access badge | 1 (your job queue, sampled logs, quarterly review) | | Disposition | 0 (professional but proprietary; treats you as *his* project) | -**Knowledge progression:** Unknown → Schedule (erratic hours, but -review cycles are predictable) → Leverage (the overclaims — his +**Knowledge progression:** Unknown → Schedule (erratic physical hours; fixed +review rhythm) → Leverage (the overclaims — his publication record includes results he didn't generate, and you can prove it). @@ -122,9 +123,15 @@ the in-flight binding in the current save. Terminal's ## Schedule -Erratic hours. Present for job assignment, deadline review, and the -quarterly audit. His irregularity is the player's problem — you can't -predict when he'll sample your logs, only that he will. +Voss's **physical hours** are erratic but deterministic per day. Two short +server-room blocks drift zero to five hours under a deterministic day hash. +They determine his room presence for witnessing, co-location, and carried +work. Once learned, the complete shifted blocks are visible and plannable. + +That physical schedule does not move his evidence-read boundary. A routed +`JobAnomaly` parks unread at Voss's endpoint and is acquired on the next exact +100-tick observer-cadence boundary, independent of which room his physical +schedule places him in. Incapacitation prevents the read. ## Narrative role @@ -177,7 +184,8 @@ aggregate observer that watches the aggregate observer. 1. Voss is person id 4 and observer id 4 (IDs match). 2. Exact routed `JobAnomaly` records reach Voss and become his evidence only - on cadence read; no other channel does. + on the next exact 100-tick cadence boundary, independent of his physical + room schedule; no other channel does. 3. His `Files` policy means his noticing reaches the Assurance Office at weight 1.0. 4. His acuity (1.2) is the highest in the cast. @@ -193,3 +201,14 @@ aggregate observer that watches the aggregate observer. through request and carried custody, fires only on co-location, removes Voss from all future activity without erasing history, and immediately makes every observer Convinced and begins containment. + +## Defense + +- `sim::tests::communications::day_job_miss_routes_one_exact_host_record_to_voss_at_his_cadence` + pins exact host/site custody, endpoint delivery without acquisition, the + cadence-100 read event, save round-trip while unread, and acquisition at the + scheduled boundary. +- `sim::tests::communications::incapacitated_people_neither_read_author_file_nor_detect` + pins removal of Voss's read, traffic, filing, noticing, and decay activity. +- `sim::tests::social_plot::elimination_is_located_persistent_and_immediately_loud` + pins the schedule-overlap removal route and its containment consequence.