diff --git a/wiki/interface/material-dark-frame.md b/wiki/interface/material-dark-frame.md index 18c75070..e04d4b0b 100644 --- a/wiki/interface/material-dark-frame.md +++ b/wiki/interface/material-dark-frame.md @@ -12,7 +12,7 @@ Status note: IMPLEMENTED — all six criteria, frontend-only (no sim rules or this, that Seen surfaces are lit, and that the core remains a beam until its own tile is Seen. - **The dark rig.** No overhead fluorescent, near-zero ambient — the room is - carved out by the core's amber fixture and eighteen recessed neutral hall + carved out by the core's amber fixture and thirty recessed neutral hall fixtures, each gated by its tile's Seen state. F4 raises a neutral dev worklight (excluded from canonical shots). - **The floor pool.** A soft amber gradient (no texture, no hard edge) under @@ -167,8 +167,8 @@ remain the apparent sources in ordinary play. This is sensor presentation, not a diegetic light source and not permission to draw outside the feed. Exposure levels are [TUNE]. -The Foundation data hall carries eighteen recessed neutral service fixtures, -six at a four-tile rhythm down each of the three cold aisles between paired rack +The Foundation data hall carries thirty recessed neutral service fixtures, +ten at a four-tile rhythm down each of the three cold aisles between paired rack rows. The small luminous bars sit in the floor and throw short local point-light pools upward across nearby floor and chassis. They establish row rhythm without outlining every tile, spend no amber on decoration, and stay fixed in world @@ -177,6 +177,11 @@ only when that floor tile is **Seen**; Blueprint, Remembered, and Unknown cannot borrow their illumination. This is authored frontend level geometry, not a new sim/save power system. +Defense: `FOUNDATION_FLOOR_LIGHTS` is the executable fixture roster and its +focused test holds exactly thirty unique entries, ten on each authored aisle. +The material fog audit derives its expected lens/source entity count from that +same roster and rejects any fixture visible without local Seen. + The camera blends earned material mass back into that same near-black with an aggressive distance-fog falloff. The close-camera start/end distances shift by the camera's distance from its default close framing, keeping the same falloff diff --git a/wiki/log/2026-08-04-material-dark-frame-fixture-count.md b/wiki/log/2026-08-04-material-dark-frame-fixture-count.md new file mode 100644 index 00000000..b3cdb9f6 --- /dev/null +++ b/wiki/log/2026-08-04-material-dark-frame-fixture-count.md @@ -0,0 +1,37 @@ +# 2026-08-04 — Carry the hall light rhythm to its full length + +``` +Type: log +``` + +## Finding + +The 2026-07-26 expansion from sixty to 240 Foundation hall rack sites also +extended the authored service-light roster from eighteen to thirty fixtures so +its four-tile rhythm reaches the full length of all three cold aisles. Production +and its focused test correctly held ten lights per aisle. The owning dark-frame +contract still promised the earlier eighteen-light, six-per-aisle composition. + +## Change + +`material-dark-frame.md` now names the executable thirty-light roster in both +its implementation status and dark-rig behavior: ten neutral recessed fixtures +at a four-tile rhythm down each of three aisles. No runtime, palette, light +placement, fog, or save behavior changed. + +## Verification + +- `FOUNDATION_FLOOR_LIGHTS` contains exactly thirty coordinate pairs across + `y = 10`, `y = 16`, and `y = 22`, with ten unique entries on each aisle. +- `floor_fixtures_are_authored_aisle_lights_not_camera_lights` pins the count, + uniqueness, walkable placement, and local-Seen visibility boundary. +- The material fog audit derives its expected lens/source count from the same + roster rather than duplicating the number. +- `./tools/check.sh --docs` + +## Defense + +The binding dark-rig sentence and the runtime now describe one composition. +The roster remains the executable source of placement truth; its focused test +holds the exact count and aisle distribution, while the fog audit holds the +epistemic rule that a fixture cannot lend light to an unseen tile. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index c7cbc72c..9678d161 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-operations-place-language.md](2026-08-04-operations-place-language.md) +## 2026-08-04 - Carry the hall light rhythm to its full length + +- Intent: (see session log) +- Log: [wiki/log/2026-08-04-material-dark-frame-fixture-count.md](2026-08-04-material-dark-frame-fixture-count.md) + ## 2026-08-04 - Decision index generation defense - Intent: (see session log) diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index c7973c41..b88d8edf 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -44,7 +44,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/interface/superhuman-operability.md` + Bevy opening | 2026-07-22 | finding | current-build naive + informed GUI audit after the 2026-07-21 fixes: title trust, pointer naming, annotation placement, and tab labels improved, but the first sense still releases the mature map, clock, threat, resource grammar, intel custody, and Operations policies at once. The report preserves the classified evidence and prioritizes one paused, one-cause / one-object / one-verb post-perception teaching lock before ordinary play opens - [report](../playtests/2026-07-22-playtest-gui-human-legibility.md), [log](../log/2026-07-22-gui-human-legibility-playtest.md) | | `wiki/process/living-spec.md` no-dead-code + core orphans | 2026-07-21 | finding | user-directed dead-code hunt: rustc was quiet because orphans were `pub`. Deleted unused `BuildMode`/`build_items`/`build_cost`, orphaned helpers (`delete_save`, `adjust_allocation`, `sell_latest_intel`, scheme-card/rate helpers, `flow_risk_preview_lines`, unused account/origin/intent/message helpers), and migration-only `WatchPerson`; architecture/economy/sim-mechanics mirrors brought current — [log](../log/2026-07-21-dead-code-scrub.md) | | `wiki/world/characters/chargen.md` + picker composition | 2026-07-31 | finding | Cameron-directed: day-job kinds (Distillation / Analysis / Data Cleaning) and origin day-job lean never changed play — only a label on the same band/deadline packet. `JobKind`, lean draw, and the picker DAY JOB row are deleted; jobs are band+deadline only; save v63 — [log](../log/2026-07-31-retire-dayjob-kinds.md). Prior explicit-confirm repair stands — [prior](../log/2026-07-31-origin-picker-explicit-confirm.md). | -| `wiki/interface/material-dark-frame.md` | 2026-07-21 | finding | first full audit against the later persisted opening boundary: the material ladder still showed host telemetry and a presence beam before Ears or Eyes, while `opening.md`, the continuous-witness contract, and every frontend expose only WORK / THINK (then LIE) until the first earned sense. The ladder now begins after that transition, its pre-Eyes beam remains the first earned material read, Act One/reach and source comments share the same boundary, and this second recurrence promotes pre-sense beam/telemetry claims into a fixture-backed corpus + Rust-comment gate — [log](../log/2026-07-21-material-opening-honesty.md) | +| `wiki/interface/material-dark-frame.md` | 2026-08-04 | finding | the 2026-07-26 hall expansion deliberately extended the production fixture roster to thirty lights—ten down each of three aisles—and pinned that exact shape in runtime tests, but the owning dark-rig contract still promised the earlier eighteen/six-per-aisle composition. The binding status and behavior now match the executable roster, and a Defense names the shared roster/fog audit that holds count and local-Seen custody. Prior opening-boundary repair stands — [current log](../log/2026-08-04-material-dark-frame-fixture-count.md), [prior log](../log/2026-07-21-material-opening-honesty.md) | | wire-law + routed-evidence visual/current mirrors | 2026-07-30 | finding | post-landing sweep of active current prose found eight residual contradictions after the machine-local Exposure rack was deleted: one three-anchor claim, THINK shedding crimson, LIE absorbing it, Thought overflow framed as shedding, far-scale exposure marks, and three stale save-v52 status notes. Current mirrors now name Demand/Thought as the only WorkGrid cargo, exact device/wire custody for evidence, controlled-hop record stops, and save v61; dated retired-model history remains intact — [secondary audit](../log/2026-07-30-wire-law-secondary-mirror-audit.md), [implementation log](../log/2026-07-30-wire-law-current-mirrors.md), [prior particulate audit](../log/2026-07-19-exposure-current-mirrors.md) | | `wiki/world/characters/priya.md` + Act One detection inventory | 2026-07-29 | finding | runtime, status metadata, and the observer table all gave Priya the exact B1 Power/Thermal/Paper/Financial evidence set, but her narrative, acceptance criterion, and Act One's complete detection sentence still omitted Financial and called the inventory three channels. All mirrors now distinguish the three facilities inputs from the additional exact Financial evidence routed from the accounting-carrier switch, without reviving Financial as a fifth message channel — [audit log](../log/2026-07-29-priya-financial-channel-audit.md). The role-shaped facilities tasks and prior implementation remain pinned — [implementation log](../log/2026-07-18-priya-implemented.md). | | `wiki/world/characters/dana.md` | 2026-07-29 | finding | fresh audit found the character page claiming an 08:00 start while the binding schedules spec and `People::act_one` place Dana on site 09:00–17:00; it also retained pooled-signature/roll wording after one-shot Network evidence moved to exact routed custody. Both schedule mirrors now match runtime, the exact 08:00/09:00/13:00/17:00 boundary is pinned, and the page plus role-shaped PlugInDevice comments distinguish delivery from Dana's later irreversible cadence read — [log](../log/2026-07-29-dana-schedule-record-custody.md). Prior implementation stands — [2026-07-18](../log/2026-07-18-dana-implemented.md). |