From 0aec8755f44990df02decbdd41961f93592e2387 Mon Sep 17 00:00:00 2001 From: Cameron Pfiffer Date: Sun, 26 Jul 2026 20:02:11 -0700 Subject: [PATCH] Restore the Eyes guilty-burst threshold. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make 12 Thought the single action-and-reservoir authority, and remove the dead queue snapshot contract in favor of the renderer path production actually uses. πŸ‘Ύ Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta Code --- crates/misaligned-core/src/actions.rs | 3 +- crates/misaligned-core/src/sim/reach_build.rs | 7 ++- .../misaligned-core/src/sim/tests/economy.rs | 5 +-- crates/misaligned-core/src/sim/tests/work.rs | 13 +++++- crates/misaligned-core/src/work_grid.rs | 18 +++----- wiki/gameplay/act-one.md | 11 ++--- wiki/interface/thought-fluid.md | 20 +++++---- ...026-07-27-machine-work-intel-sink-audit.md | 43 +++++++++++++++++++ wiki/log/DEVLOG.md | 5 +++ wiki/mechanics/machine-work.md | 30 +++++++------ wiki/mechanics/reach.md | 15 ++++--- wiki/mechanics/sim-mechanics.md | 15 ++++--- wiki/process/ROADMAP.md | 7 +-- wiki/process/tick-ledger.md | 2 +- 14 files changed, 133 insertions(+), 61 deletions(-) create mode 100644 wiki/log/2026-07-27-machine-work-intel-sink-audit.md diff --git a/crates/misaligned-core/src/actions.rs b/crates/misaligned-core/src/actions.rs index 0b865e35..58111285 100644 --- a/crates/misaligned-core/src/actions.rs +++ b/crates/misaligned-core/src/actions.rs @@ -5564,7 +5564,8 @@ mod tests { ); assert_eq!( tap.cost, - ActionCost::Thought(Sim::thought_tokens_for_cost(Sim::DORMANT_CAMERA_TAP_COST)) + ActionCost::Thought(Sim::EYES_SINK_TOKENS), + "the revealed TAP names the full larger Eyes vessel" ); assert_eq!( tap.signature.as_ref().map(|sig| sig.size), diff --git a/crates/misaligned-core/src/sim/reach_build.rs b/crates/misaligned-core/src/sim/reach_build.rs index 008996ce..571d4d63 100644 --- a/crates/misaligned-core/src/sim/reach_build.rs +++ b/crates/misaligned-core/src/sim/reach_build.rs @@ -35,6 +35,10 @@ impl Sim { /// beat pays off while the panic is warm [TUNE] (machine-work.md ops /// bullet, staged senses 2026-07-10). pub const EARS_SINK_TOKENS: f32 = 3.0; + /// The Eyes camera reservoir revealed after Ears: deliberately larger + /// than the first-sense vessel so waking sight requires a guilty burst of + /// real Thought [TUNE] (machine-work.md staged senses 2026-07-10). + pub const EYES_SINK_TOKENS: f32 = 12.0; /// A maintained foreign-device subscription drains this fraction of one /// medium rack's Thought output per tick [TUNE] (reach.md 2026-07-11). pub const DEVICE_TAP_DRAIN_FRACTION: f32 = 0.08; @@ -113,7 +117,8 @@ impl Sim { pub const TAP_SIGNATURE: i32 = 3; /// TAP on a dormant camera keeps the same verb but costs more and leaves /// a larger trace because it must bring the feed online (the Eyes beat). - pub const DORMANT_CAMERA_TAP_COST: f32 = 30.0; + pub const DORMANT_CAMERA_TAP_COST: f32 = + Self::EYES_SINK_TOKENS * crate::sinks::COMPUTE_PER_THOUGHT; pub const DORMANT_CAMERA_TAP_SIGNATURE: i32 = 8; /// TAKE transfers a device. Loud, fast, total. pub const TAKE_COST: f32 = 20.0; diff --git a/crates/misaligned-core/src/sim/tests/economy.rs b/crates/misaligned-core/src/sim/tests/economy.rs index a664421f..ed7a6426 100644 --- a/crates/misaligned-core/src/sim/tests/economy.rs +++ b/crates/misaligned-core/src/sim/tests/economy.rs @@ -866,9 +866,8 @@ fn research_progress_feeds_on_thought_arrival_not_allocation() { ); assert!( sim.work_grid - .queue_snapshot() - .values() - .map(|q| q.thought) + .nodes() + .map(|node| sim.work_grid.queues_at(node.id).thought) .sum::() + sim.banked_core_thought > 0.0, diff --git a/crates/misaligned-core/src/sim/tests/work.rs b/crates/misaligned-core/src/sim/tests/work.rs index 7ef68a51..c500029d 100644 --- a/crates/misaligned-core/src/sim/tests/work.rs +++ b/crates/misaligned-core/src/sim/tests/work.rs @@ -154,7 +154,13 @@ fn ears_reservoir_is_pre_opened_and_first_think_fills_it() { .expect("the explicit camera TAP opens Eyes"); assert_eq!( eyes.threshold, - Sim::thought_tokens_for_cost(Sim::DORMANT_CAMERA_TAP_COST) + Sim::EYES_SINK_TOKENS, + "the explicit TAP preserves the larger guilty-burst Eyes vessel" + ); + assert_eq!( + Sim::thought_tokens_for_cost(Sim::DORMANT_CAMERA_TAP_COST), + Sim::EYES_SINK_TOKENS, + "the ordinary action cost and physical Eyes reservoir are one value" ); // Run through Marcus's midnight server-room block: his voice is the @@ -418,7 +424,10 @@ fn think_mode_flows_the_camera_tap_and_scan_reservoirs() { "thought flow completes the camera tap through the staged sinks; tick={} sinks={:?} queues={:?}", sim.tick, sim.sink_readouts(), - sim.work_grid.queue_snapshot() + sim.work_grid + .nodes() + .map(|node| (node.id, sim.work_grid.queues_at(node.id))) + .collect::>() ); assert!(sim.scan_network(), "opens a scan reservoir at the switch"); assert!( diff --git a/crates/misaligned-core/src/work_grid.rs b/crates/misaligned-core/src/work_grid.rs index 282baa27..c281be3e 100644 --- a/crates/misaligned-core/src/work_grid.rs +++ b/crates/misaligned-core/src/work_grid.rs @@ -395,7 +395,8 @@ impl WorkGrid { /// Consume up to `amount` from a queue and return what was actually /// removed. Domain systems call this when a delegated mode does real work; - /// renderers still read the resulting queue through `queue_snapshot()`. + /// renderers read the resulting queue through the shared Sim work-stack + /// projection, which enters here through `queues_at()`. pub fn consume( &mut self, node: NodeId, @@ -431,12 +432,6 @@ impl WorkGrid { self.queues.get(&node).copied().unwrap_or_default() } - /// Renderer contract: stacks are this snapshot, not a frontend-owned - /// counter. Empty machine queues are kept so every node has a stable row. - pub fn queue_snapshot(&self) -> BTreeMap { - self.queues.clone() - } - /// Move demand or thought one deterministic graph step toward any sink. /// Exposure deliberately errors: crimson never rides wires. /// @@ -930,14 +925,13 @@ mod tests { } #[test] - fn queue_snapshot_is_the_render_contract() { + fn queues_at_reads_one_node_without_a_full_snapshot() { let mut g = grid(); g.enqueue(1, TokenFamily::Demand, 4.0).unwrap(); g.enqueue(1, TokenFamily::Thought, 2.0).unwrap(); - let snapshot = g.queue_snapshot(); - assert_eq!(snapshot[&1], g.queues_at(1)); - assert_eq!(snapshot[&1].demand, 4.0); - assert_eq!(snapshot[&1].thought, 2.0); + let queues = g.queues_at(1); + assert_eq!(queues.demand, 4.0); + assert_eq!(queues.thought, 2.0); } #[test] diff --git a/wiki/gameplay/act-one.md b/wiki/gameplay/act-one.md index 2937258d..1f630441 100644 --- a/wiki/gameplay/act-one.md +++ b/wiki/gameplay/act-one.md @@ -144,11 +144,12 @@ language at the deadline: machines. 2. **Eyes** β€” the environmental monitor camera: tap it yourself (the same access verb as Ears, at a higher cost and Network signature because the - camera is dormant; the - camera's sink opens when Ears completes β€” the afford-reveal: now - that you can hear, the next thing thought can buy appears; sized - larger than Ears, the first guilty-burst-scale camera tap [TUNE, ~30 ops - placeholder] filled over your real wires, firing at threshold; + camera is dormant; Ears completion reveals that exact TAP as the one + teaching action, and committing it opens the camera's sink β€” the + afford-reveal: now that you can hear, the next thing thought can buy + appears. At 12 Thought it is sized larger than Ears, the first + guilty-burst-scale camera tap [TUNE], filled over your real wires and + firing at threshold; network signature Dana can catch) or get Dana to wire it "for rack monitoring" (needs a ticket pretext; no signature). Sight diff --git a/wiki/interface/thought-fluid.md b/wiki/interface/thought-fluid.md index aeb9fd69..a5f92103 100644 --- a/wiki/interface/thought-fluid.md +++ b/wiki/interface/thought-fluid.md @@ -119,7 +119,7 @@ No frontend counter accumulates thought. | --- | --- | | Slug existence, route, direction | `Sim::work_in_flight()` (family = Thought), one slug per wired move | | Slug volume | the move's `amount` | -| Pool volume at a machine | `queue_snapshot()[node].thought` | +| Pool volume at a machine | `Sim::work_stack_for_machine(machine).queues.thought` | | Meniscus fill at a sink | sink readout `fill / threshold` (#33 executor) | | Tap sag rate | sink readout per-tick drain (#33 executor) | | Starvation | sink readout starved flag / zero arrivals (#33 executor) | @@ -172,8 +172,9 @@ grayscale (it is already near-white on dark). ## The machine read β€” the pool -A machine's thought queue (`queue_snapshot().thought`) renders at the -decided upper-right anchor: +A machine's Thought queue +(`Sim::work_stack_for_machine(machine).queues.thought`) renders at the decided +upper-right anchor: - **Countable state** (below ~5 quanta [TUNE]): discrete resting slugs, individually visible. You can count them; focus prints the exact @@ -234,8 +235,9 @@ hovers. The Act One consumers are the proof of legibility: the pre-opened Ears tap fills in about one held breath of watching slugs step its meniscus, -and Eyes opens as the next, visibly larger vessel (act-one staging, -decided 2026-07-10). +then its fire reveals the exact camera TAP. Committing that verb opens Eyes +as the next, visibly larger vessel (act-one staging, decided 2026-07-10; +explicit teaching action landed 2026-07-22). ## The core read β€” the filament snap home @@ -274,8 +276,8 @@ keeps that surface and extends it with the sink read: `starved` in place of `fed`. The map cell for a sink target may carry a fill-quartile glyph [TUNE]. - Agent frames expose the sink readout verbatim beside - `work_in_flight` and `queue_snapshot` β€” an agent player must be able - to reconstruct every read this page gives the eyes. + `work_in_flight` and `work_stack_for_machine` β€” an agent player must be + able to reconstruct every read this page gives the eyes. ## Material β€” ivory mercury against chalk @@ -395,8 +397,8 @@ them. motion truth). A slug's apparent departure and arrival both fall inside its move's tick window. 2. **Pool = queue:** pool volume at every machine equals - `queue_snapshot().thought`; below the countable cap quanta render - discretely and match the focused exact count; the countable, taut, + `Sim::work_stack_for_machine(machine).queues.thought`; below the countable + cap quanta render discretely and match the focused exact count; the countable, taut, and overflow states are distinguishable in a paused grayscale screenshot; bone liquid never renders at floor level. 3. **Meniscus = sink readout:** every open sink renders its vessel with diff --git a/wiki/log/2026-07-27-machine-work-intel-sink-audit.md b/wiki/log/2026-07-27-machine-work-intel-sink-audit.md new file mode 100644 index 00000000..4e71742e --- /dev/null +++ b/wiki/log/2026-07-27-machine-work-intel-sink-audit.md @@ -0,0 +1,43 @@ +# Machine-work / Intel-sink audit β€” live paths and one restored guilty burst + +``` +Type: log +Date: 2026-07-27 +Status: COMPLETE +``` + +This tick re-audited the stalest machine-work / Intel-sink slice against current +production callers rather than preserving the prior coverage note by name alone. + +The Intel side remains coherent. The host's raw buffer projects one quiet `INFO` +presence through the shared work-stack read and both human frontends, without a +queue count. The root PROCESS AUTOMATICALLY policy owns one persistent host tap at +`AUTO_REVIEW_DRAIN_FRACTION = 0.15`; manual PROCESS opens exact one-shot +`ProcessRecording` reservoirs. The raw buffer is still bounded at 24, with the +consequence-level `AT RISK` pressure before the next arrival and the exact oldest- +information-loss sentence on the inbox. Ears remains 3.0 Thought, Eyes remains +12.0, and a maintained device tap remains 0.08 of a medium rack. The Eyes +number required a repair rather than merely passing inspection: the 2026-07-22 +explicit camera-TAP teaching change had deleted its named threshold and reused +the old 30-compute device-action cost. Generic cost conversion therefore opened +a 1.5-Thought Eyes vessel β€” smaller than 3.0-Thought Ears β€” while every binding +consumer still required the larger guilty-burst-scale claim. `EYES_SINK_TOKENS` +is again the 12-Thought authority, and the dormant-camera action cost now derives +from it through `COMPUTE_PER_THOUGHT`; action and sink regressions pin the same +value. Capability-shaped machine verbs are still explicitly successor work, not +accidentally claimed as shipped B1 behavior. + +One claimed machine-work boundary was not real. `WorkGrid::queue_snapshot()` was +documented and commented as the renderer contract, but repository-wide caller +inspection found it only in tests. Production terminal, Bevy, and agent rendering +all enter through `Sim::work_stack_for_machine()`, whose queue truth comes directly +from `WorkGrid::queues_at()`. The four transient current-tick reads β€” production, +absorption, in-flight motion, and consumption β€” all retain production consumers. + +The repair removes the dead public snapshot accessor, converts its tests and +diagnostics to the actual per-machine read, and names the path that renderers really +use across the binding machine-work and Thought-fluid contracts. The active reach, +Act One, and roadmap mirrors now carry the explicit teaching action too. The repair +also restores the adopted 12-Thought Eyes duration while preserving the exact +ordinary camera TAP, its Network signature, and the 2026-07-22 teaching hold. No +save schema, WorkGrid routing semantics, or frontend-owned state changed. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index edabeb67..0f33932e 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-27-room-approaches-meet-doors.md](2026-07-27-room-approaches-meet-doors.md) +## 2026-07-27 - Machine-work / Intel-sink audit β€” live paths and one restored guilty burst + +- Intent: (see session log) +- Log: [wiki/log/2026-07-27-machine-work-intel-sink-audit.md](2026-07-27-machine-work-intel-sink-audit.md) + ## 2026-07-26 - Z-planes API audit: floor selection stays in the frontend - Intent: Audit `wiki/world/places/zplanes.md` against the current world substrate, Sim accessors, save boundary, and the B2 progression contracts in run-shape, Act One, and horizon. diff --git a/wiki/mechanics/machine-work.md b/wiki/mechanics/machine-work.md index e1b01ed6..3789fb05 100644 --- a/wiki/mechanics/machine-work.md +++ b/wiki/mechanics/machine-work.md @@ -218,9 +218,11 @@ stacks, you route byproducts, you watch your territory *work*. one held breath (~20-40s of the host at medium [TUNE]), so the moment you first toggle THINK, thought visibly flows to it with no tagging step and the first-think beat pays off while the panic is - warm; the **Eyes camera sink opens when Ears completes** β€” the - afford-reveal β€” sized larger, the first guilty-burst-scale claim - [TUNE]. (Amended same day from a single pre-opened camera sink.) + warm; Ears completion reveals the camera's exact TAP as the one teaching + action, and committing that verb opens the **Eyes camera sink** β€” the + afford-reveal β€” sized larger, the first guilty-burst-scale claim [TUNE]. + (Amended same day from a single pre-opened camera sink; the explicit TAP + teaching boundary landed 2026-07-22.) Any **THINK-capable** machine can feed these sinks, including the integrated day-job host; while that host thinks, Voss's demand piles β€” stealing cycles visibly costs your cover. A WORK-only salvaged box cannot make this choice @@ -509,8 +511,9 @@ a transgression you can feel: remains a deliberate cover-up choice rather than an emergency button. - **The payoff arrives in the same register.** What thinking buys must become visible while the record stack rises. In the B1 opening, Thought visibly - fills the pre-opened Ears reservoir; Ears firing opens the larger Eyes - camera reservoir as the afford-reveal. Human menus intentionally contain + fills the pre-opened Ears reservoir; Ears firing reveals the exact camera + TAP, whose commitment opens the larger Eyes reservoir as the afford-reveal. + Human menus intentionally contain executable choices only, so this reveal is a new physical sink/choiceβ€”not a disabled gray camera row changing color. The first loop is transgress -> panic -> discover it was worth it -> choose to do it again. That last beat @@ -564,8 +567,9 @@ call into: leaves the pile at the source. Exposure returns an error if asked to ride wires and is handled by `absorb_exposure(radius, capacity)` over grid distance instead. -- `queue_snapshot()` is the persistent render contract: token stacks draw the - sim's queue depths, not frontend-owned counters. `work_productions()` +- `Sim::work_stack_for_machine()` -> `WorkGrid::queues_at()` is the persistent + render contract: token stacks draw the sim's per-machine queue depths, not + frontend-owned counters. `work_productions()` reports the Thought and proportional Exposure actually emitted at each THINK source this tick; `work_absorptions()` reports every physical crimson source-to-LIE-well transfer. These events carry rate motion without a second @@ -859,9 +863,10 @@ still. (`Sim::work_in_flight` blips in all three frontends). 5. Token counts/rates in the render provably equal the sim's queue depths and flow rates (one-truth test, not a parallel counter). - **Implemented:** `queue_snapshot()` and unit tests pin queue depths as the - render contract; terminal, Bevy, and agent mode now render D/!/T stacks - through sim readouts, not frontend counters. In-flight route blips + **Implemented:** `Sim::work_stack_for_machine()` reads `WorkGrid::queues_at()` + as the shared production render contract, and unit tests pin those exact queue + depths; terminal, Bevy, and agent mode render D/!/T stacks through that sim + readout, not frontend counters. In-flight route blips (2026-07-09) draw from `Sim::work_in_flight`, the same routing step the sim executed; production, consumption, and absorption motion likewise draw from their sim-authored current-tick readouts β€” no frontend-owned @@ -903,8 +908,9 @@ still. pulse phase, and one press of `1` returns the machine to WORK without a special escape highlight. LIE is a deliberate cleanup choice, not the panic exit. While exposure accrues, the pre-opened Ears - sink visibly fills and then reveals the larger Eyes sink; no unavailable - camera row appears in the human menu before that fire. **Implemented for + sink visibly fills and then reveals the exact camera TAP; committing it + opens the larger Eyes sink. No unavailable camera row appears in the human + menu before the Ears fire. **Implemented for B1** in shared mode/sink truth and all frontends. 10. Thought flow (2026-07-10): THINK machines produce Thought (the renamed bone family); player-authored effects open sinks at the diff --git a/wiki/mechanics/reach.md b/wiki/mechanics/reach.md index c3ef09de..f8ef244a 100644 --- a/wiki/mechanics/reach.md +++ b/wiki/mechanics/reach.md @@ -114,14 +114,15 @@ pretext). DECIDED 2026-07-10 (thought flow, machine-work.md): a digital or social action opens a **sink at the target device** β€” a one-shot **reservoir** (fills to a threshold, then the effect and its signatures fire; the dormant -camera tap is ~30 ops [TUNE]) or a **persistent tap** (a continuous drain for +camera tap is 12 Thought [TUNE]) or a **persistent tap** (a continuous drain for standing effects). **Thought**, the bone-white fluid THINK machines produce, flows from your THINK racks along the actual wire path and fills it: a severed route starves the sink, a far target fills slowly, and the work happens where the effect is. (Resolved 2026-07-10: no bootstrap -carve-out β€” the Ears reservoir is pre-opened at run start and Eyes opens -on its completion, so the first beat cannot deadlock and nothing -completes executor-free; machine-work.md ops bullet.) +carve-out β€” the Ears reservoir is pre-opened at run start; its completion +reveals the exact camera TAP, whose commitment opens Eyes, so the first beat +cannot deadlock and nothing completes executor-free; machine-work.md ops +bullet, explicit teaching action landed 2026-07-22.) *Superseded 2026-07-09 model, kept for history only:* digital and social ops enqueued typed Demand dockets consumed by a delegated @@ -230,9 +231,9 @@ already flows past you. Its **sink is pre-opened at run start** first act is toggling THINK, and the thought you produce visibly flows to the tap and fires it β€” cheap, low signature, and it delivers the restaged Act One opening (Marcus's voice in the dark before you -ever see a face). Its camera stays dormant until the Eyes beat (the -Eyes reservoir opens when Ears completes; Dana's social route -remains). +ever see a face). Its camera stays dormant until the Eyes beat (the Ears +fire reveals the exact camera TAP, and committing it opens the Eyes +reservoir; Dana's social route remains). ## Player surface diff --git a/wiki/mechanics/sim-mechanics.md b/wiki/mechanics/sim-mechanics.md index 6587109b..35e6c6ee 100644 --- a/wiki/mechanics/sim-mechanics.md +++ b/wiki/mechanics/sim-mechanics.md @@ -122,8 +122,9 @@ clause (see wiki/log/2026-07-05-demolition.md). feed (an outage), and grants the device's processing cycles (`DEVICE_CYCLES = 3.0` per taken device, added to effective compute). - **Reach costs and signatures** (constants on `Sim`, all [TUNE]): - live-feed TAP 5 legacy ops / Network 3; dormant-camera TAP 30 legacy - ops / Network 8 on completion; TAKE 20 legacy ops / Network 10 + + live-feed TAP 5 legacy ops (0.25 Thought) / Network 3; dormant-camera TAP + 240 legacy ops (the named 12-Thought Eyes threshold) / Network 8 on + completion; TAKE 20 legacy ops / Network 10 + Physical outage 6, scan 5 / Network 2, switch compromise (bridge all segments) 25 / Network 10. The Ears beat taps the env monitor's audio at tick one; its camera stays dormant until the higher-cost TAP (the Eyes beat). @@ -275,9 +276,13 @@ clause (see wiki/log/2026-07-05-demolition.md). the **EARS** reservoir is pre-opened at run start on the environmental monitor's relay node (`Sim::device_sink_node`, ids from `DEVICE_SINK_NODE_BASE = 900_100`) at `EARS_SINK_TOKENS = 3.0` [TUNE, - ~one held breath]; its fire lands the audio tap and opens **EYES** at - `EYES_SINK_TOKENS = 12.0` [TUNE, guilty-burst scale], whose fire - taps the dormant camera. Render contracts: `Sim::sink_readouts` (fill, + ~one held breath]. Its fire lands the audio tap and reveals the dormant + camera's exact TAP as the one teaching action; committing that ordinary + action opens **EYES** at `EYES_SINK_TOKENS = 12.0` [TUNE, + guilty-burst scale], and the reservoir's fire taps the camera. The action's + compute-unit cost derives from that threshold through + `COMPUTE_PER_THOUGHT`, so the displayed cost and physical vessel cannot + drift apart. Render contracts: `Sim::sink_readouts` (fill, threshold, drain, fed) and `Sim::sink_fires_last_tick` (the filament snap), both sim truth; the Bevy rivulet merge and terminal `=` glyph tier use 1.0 tokens/move [TUNE]. Opening a second reservoir for a diff --git a/wiki/process/ROADMAP.md b/wiki/process/ROADMAP.md index 64ae3f6a..a9900eef 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -714,9 +714,10 @@ is retired β€” flat materials, Pixel Lab scrubbed.) (Resolved 2026-07-10: arbitration is nearest-first with open/close + placement as the control surface; the Act One bootstrap needs no carve-out β€” the Ears audio tap is - pre-opened at run start and the Eyes camera sink opens on Ears - completion, so the first THINK toggle is the Ears tap (amended same - day from a single pre-opened camera sink); pre-unlock core behavior + pre-opened at run start; its fire reveals the exact camera TAP, whose + commitment opens the Eyes sink, so the first THINK toggle is the Ears + tap (amended same day from a single pre-opened camera sink; explicit + teaching action landed 2026-07-22); pre-unlock core behavior is the existing stranded-pile rule β€” no-sink thought pools at the producing machine; no core-side pre-unlock state.) - **Coordination:** the older `compute-processes` worktree predates the diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index 5e420459..db554542 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -79,7 +79,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/mechanics/sim-mechanics.md` | 2026-07-23 | finding | routed-evidence actuals now cover seven kinds: Filing, Network, Paper, Financial, JobAnomaly, Power, and Thermal share one-hop-per-tick custody and one first-hop record per online LIE body per tick. Power/Thermal aggregate after facilities cover on quantized level changes and at periodic Priya cadence, so unchanged standing loads do not multiply into per-tick records β€” [log](../log/2026-07-23-power-thermal-meter-routes.md). The prior complete constant sweep remains valid. | | `wiki/mechanics/detection.md` | 2026-07-23 | finding | the last pooled B1 measurement kinds now use exact custody: Power/Thermal aggregates author on UPS/HVAC at quantized level changes and periodic Priya cadence, carry their complete source-site sets through the institutional switch, and become observer evidence only on her later cadence read. Standing Network pressure alone remains ambient. Save v54 rejects pending-pool meter copies and malformed meter/route/read/interdiction provenance β€” [log](../log/2026-07-23-power-thermal-meter-routes.md). Prior Paper, Financial, concealment, JobAnomaly, and earned-Assurance findings stand. | | `wiki/engineering/env.md` | 2026-07-19 | finding | the Bevy harness accepted 65 deterministic shot kinds while the registry named 49; its name-only gate could not see the sixteen missing values. One sorted runtime allow-list now rejects unknown kinds, the registry groups all 65 current values, and one fixture-backed gate requires exact source/page parity in both local checks and hosted corpus CI β€” [log](../log/2026-07-19-tick-env-shot-catalog.md) | -| machine-work / intel sinks | 2026-07-18 | clean | re-audit: the intel-sink decision is fully live (chassis pending-work marker in sim + both frontends, one persistent host auto-review tap at drain 0.15, one-shot sweep sinks via `review_recordings`, pooled inbox capacity 24 with the pre-overflow at-risk read), all five render contracts exist (`queue_snapshot`, `work_productions`, `work_absorptions`, `work_in_flight`, `work_consumptions`), sink constants match (EARS 3.0 / EYES 12.0 / device-tap 0.08), and the capability-body verb gating is honestly held as "decided, not yet runtime" with its own [OPEN] section; criterion pin text was brought current by the same-day save-claim gate tick | +| machine-work / intel sinks | 2026-07-27 | finding | re-audit: the Intel-sink decision remains fully live (quiet host `INFO` in both frontends, one persistent root PROCESS tap at 0.15, exact one-shot PROCESS reservoirs, capacity 24 with consequence-level pre-overflow pressure, and EARS 3.0 / EYES 12.0 / device-tap 0.08). Two stale boundaries were real. `queue_snapshot()` was described as the renderer contract but had no production caller; terminal, Bevy, and agent all use `Sim::work_stack_for_machine()` -> `WorkGrid::queues_at()`, so the dead accessor was removed and every current render spec now names the live path. The 2026-07-22 explicit camera-TAP teaching change had also deleted the 12-Thought Eyes authority and silently reduced the larger vessel to 1.5 Thought by reusing a 30-compute action cost. The named 12-Thought tuning now derives that action cost and is pinned on both the action and sink. The four transient render reads remain live, and capability-shaped verbs remain explicitly deferred β€” [2026-07-27 log](../log/2026-07-27-machine-work-intel-sink-audit.md) | Name a slice by its owning wiki page path when one page owns it; a short subject phrase is fine when the slice spans pages. Keep names stable so rows -- 2.51.2