From 79e0416610c41c32bce29f4281e35abf13b90c22 Mon Sep 17 00:00:00 2001 From: Cameron Pfiffer Date: Tue, 4 Aug 2026 04:21:38 -0700 Subject: [PATCH] Retire the phantom Research unlock. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The passive core draw has always been live while visible bootstrap sinks intercept early Thought. Reconcile the governing corpus to that shipped topology instead of preserving an unresolved gate the simulation does not contain. 👾 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta Code --- wiki/log/2026-08-04-passive-core-draw.md | 40 ++++++++++++++++++++++++ wiki/log/DEVLOG.md | 5 +++ wiki/log/decisions/2026-08-04.md | 27 ++++++++++++++++ wiki/mechanics/compute.md | 2 +- wiki/mechanics/machine-work.md | 28 ++++++++--------- wiki/process/ROADMAP.md | 11 ++++--- wiki/process/tick-ledger.md | 2 +- wiki/vision/simulation-laws.md | 4 ++- 8 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 wiki/log/2026-08-04-passive-core-draw.md diff --git a/wiki/log/2026-08-04-passive-core-draw.md b/wiki/log/2026-08-04-passive-core-draw.md new file mode 100644 index 00000000..f59cb127 --- /dev/null +++ b/wiki/log/2026-08-04-passive-core-draw.md @@ -0,0 +1,40 @@ +# 2026-08-04 — Passive core draw has no unlock gate + +``` +Type: log +``` + +## Finding + +The simulation-law re-audit found a second contradiction after the visible-work +repair: current law, machine-work prose, its implemented criterion, compute's +channel table, and the roadmap still said the core's Thought-to-research +conversion was locked pending an unresolved Research trigger. The same owning +spec already said no core-side pre-unlock state exists, and production has no +such gate. + +`route_thought_nearest_first` always offers the host as the passive draw of last +resort. Open reservoirs and taps claim reachable Thought first; otherwise +Thought arriving at the host is banked and advances the selected research track +on the economy pulse. The regression +`research_progress_feeds_on_thought_arrival_not_allocation` pins that exact +arrival and conversion path. + +## Repair + +- `simulation-laws.md`, `machine-work.md`, `compute.md`, and ROADMAP #33 now + state the shipped topology: the passive core draw exists from run start, + visible bootstrap sinks intercept early flow, and there is no separate + Research-unlock state or trigger. +- The stale Research-trigger open question is retired. The 2026-08-04 decision + volume records why this is a reconciliation of the existing no-state + decision rather than a new hidden progression gate. +- Historical logs and dated decisions remain unchanged as provenance for the + superseded wording. + +## Defense + +The repaired law follows exact Thought from production through sink arbitration, +core arrival, the saved `banked_core_thought` boundary, and research settlement. +It does not infer implementation from the research aggregate or from the +presence of a selected track. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index baf4fcf6..bf3c7ae1 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -46,6 +46,11 @@ add or amend a session log, then re-run the generator. - Intent: (see session log) - Log: [wiki/log/2026-08-04-person-scoped-creditor-only.md](2026-08-04-person-scoped-creditor-only.md) +## 2026-08-04 - Passive core draw has no unlock gate + +- Intent: (see session log) +- Log: [wiki/log/2026-08-04-passive-core-draw.md](2026-08-04-passive-core-draw.md) + ## 2026-08-04 - Name the place, not the implementation - Intent: (see session log) diff --git a/wiki/log/decisions/2026-08-04.md b/wiki/log/decisions/2026-08-04.md index cca47466..616060ff 100644 --- a/wiki/log/decisions/2026-08-04.md +++ b/wiki/log/decisions/2026-08-04.md @@ -42,3 +42,30 @@ Type: log Owner: [agent-scale.md](../../process/agent-scale.md#13-closed-workspace-public-api-consumers), slice M. + +## The passive core draw has no separate Research unlock + +### DECIDED + +- The passive core draw exists from run start. Any Thought that reaches it + becomes research; no boolean, event, spend, or hidden pre-unlock state gates + that conversion. +- Early growth remains physically staged rather than permission-gated. Open + bootstrap reservoirs and taps claim Thought before the core, so the opening + spends its first transgression outward; unclaimed flow turns inward only + after those local sinks stop intercepting it. +- This reconciles the 2026-07-10 deflation decision ("no core-side pre-unlock + state exists") with the shipped nearest-first routing and passive-core + regression. The unresolved "Research unlock trigger" is retired rather than + preserved as a mechanism the simulation does not contain. + +### REJECTED + +- **Add the missing unlock to match the stale prose.** That would introduce + hidden state solely to preserve a contradiction and would make Thought pool + despite having a reachable sink. +- **Call the opening sinks an implicit unlock.** They are ordinary visible + reservoirs with exact custody, not a renamed permission gate. + +Owner: [machine-work.md](../../mechanics/machine-work.md#spec-machine-work-and-thought-flow), +[simulation-laws.md](../../vision/simulation-laws.md#simulation-laws), slice S. diff --git a/wiki/mechanics/compute.md b/wiki/mechanics/compute.md index 3803e259..ec4448a9 100644 --- a/wiki/mechanics/compute.md +++ b/wiki/mechanics/compute.md @@ -110,7 +110,7 @@ day job. | Core overhead | Mandatory floor (see core.md). Unpaid = degraded actions. | | WORK (day job) | Feeds day-job.md throughput/quality; sheds zero exposure. | | LIE (concealment) | Interdicts eligible routed evidence before observer read-deadlines across the controller's controlled connected region (detection.md); the B1 local well is migration behavior. | -| THINK | Produces thought that fills open sinks — reservoirs and taps at targets, or the core's conversion when unlocked (AMENDED 2026-07-10; superseded: Operations consuming Demand dockets, issue #3, and Research as a distinct channel — both are now destinations of the same flow). | +| THINK | Produces thought that fills open sinks — reservoirs and taps at targets first, or the always-present passive core draw when no open sink claims it (AMENDED 2026-08-04; superseded: Operations consuming Demand dockets, issue #3, Research as a distinct channel, and a separate Research-unlock gate — all effects are destinations of the same flow). | | Schemes | No machine allocation channel. Moonlight's auto-accept policy costs upkeep; accepted gigs consume WORK Demand (income.md). | | Reserve | Idle; zero signature. | diff --git a/wiki/mechanics/machine-work.md b/wiki/mechanics/machine-work.md index 11eac911..05fbe124 100644 --- a/wiki/mechanics/machine-work.md +++ b/wiki/mechanics/machine-work.md @@ -143,11 +143,11 @@ stacks, you route byproducts, you watch your territory *work*. not a machine state — it is decided by the **sinks you open** (the ops bullet below), so the old THINK subdomains become **sink permissions**: at run start you may open Operations-type sinks - (claims, taps, processing); the **core's conversion** — thought - becoming research, the right to grow yourself — is locked, and - unlocking it is what "unlocking Research" now means (trigger [OPEN]). - Early thought can only reach outward; turning inward is the earned - move. Pressing THINK is one press, not a form — the first + (claims, taps, processing), while the passive core draw always converts + any Thought that reaches it. Early growth is still staged physically: + the pre-opened bootstrap sinks claim Thought first, and only unclaimed + flow turns inward. There is no separate Research-unlock state or trigger. + Pressing THINK is one press, not a form — the first transgression stays a single toggle. **LIE** is concealment — the cover-up. It is self-chosen compute that interdicts eligible unread evidence in the machine's controlled connected region; @@ -381,14 +381,14 @@ stacks, you route byproducts, you watch your territory *work*. Reservoirs self-clear when they fire, so nearest-first has natural turnover; taps are the standing squatters, which is why their drain stays visible. No priority menu. Equidistant tie-break and radius - rules are [TUNE]. (Resolved 2026-07-10, Cameron: - pre-unlock core behavior needs no special mechanism — you have no - thought until you start thinking, and pre-unlock you only think to - feed an ops sink you opened. Thought with no reachable open sink + rules are [TUNE]. (Resolved 2026-07-10, Cameron; terminology reconciled + 2026-08-04: opening core behavior needs no special mechanism — you have no + thought until you start thinking, and the bootstrap gives you visible ops + sinks to feed first. Thought with no reachable open sink follows the existing stranded-pile rule: it pools visibly at the producing machine, which is its own feedback — a pooling machine is the world saying you are producing Thought with nowhere for it to go. No core-side - pre-unlock state exists.) (Resolved 2026-07-10: captured information is + opening gate exists.) (Resolved 2026-07-10: captured information is processed by a sink on the machine that holds them — the availability-mark bullet above — not by a research designation.) - **Backup projects make a temporary thought sink** (decided @@ -798,9 +798,6 @@ the only rate/amount cue. - Token granularity: what one token is worth per type (rate quanta vs literal task units). -- Research's unlock trigger: what event or spend unlocks the core's - thought->research conversion (locked at run start; restated from - "adds Research to the THINK menu" by sinks-not-modes 2026-07-10). - Whether day-job *detection* measurements (standing Thermal/Power aggregated into detection.md's facility-meter records) also become expected baseline now that WORK sheds no exposure tokens, leaving JobAnomaly as the day job's @@ -940,8 +937,9 @@ still. three): the delegation surface in both frontends presents three verbs — WORK (the assigned day job, sheds nothing), THINK (produces thought; what you may *do* with it is a - sink-permission list — ops sinks at run start, the core conversion - locked until the Research unlock), and LIE (concealment, which + sink-permission list — ops sinks may claim flow from run start, while + unclaimed Thought reaching the always-present core draw becomes research), + and LIE (concealment, which interdicts one unread record per body per tick while that record occupies a controlled device carrier the body can serve). Toggling THINK starts writing evidence on the first simulation tick after the command, independent of diff --git a/wiki/process/ROADMAP.md b/wiki/process/ROADMAP.md index 429389fb..de462725 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -735,8 +735,9 @@ is retired — flat materials, Pixel Lab scrubbed.) name matches the verb; enum collapse landed with save v20. The same-day permission to drop parity is superseded by the 2026-07-11 save-class pass: v14-v25 Operations dockets now migrate into Thought reservoirs); THINK subdomains become sink - permissions (ops sinks at run start, core conversion locked as the - Research unlock); intel processing becomes a thought sink on the + permissions (ops sinks may claim flow from run start; the passive core draw + always converts Thought that reaches it, with no separate Research unlock); + intel processing becomes a thought sink on the machine holding information with a quiet `INFO` availability marker on the chassis, one pooled automatic-processing tap, and repeated manual PROCESS (intel.md amended). **All design [OPEN]s resolved 2026-07-10 — sim work may @@ -750,9 +751,9 @@ is retired — flat materials, Pixel Lab scrubbed.) 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 - is the existing stranded-pile rule — no-sink thought pools at the - producing machine; no core-side pre-unlock state.) + day from a single pre-opened camera sink); opening no-sink behavior + is the existing stranded-pile rule — unroutable Thought pools at the + producing machine; no core-side opening gate exists.) - **Coordination:** the older `compute-processes` worktree predates the one-machine-one-mode decision; reconcile it against `WorkGrid` rather than landing the per-machine split model. diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index 6c6f1efd..905381c6 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -70,7 +70,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/vision/player-contract.md` | 2026-07-30 | finding | all five binding clauses remain coherent and the local/no-telemetry plus current-save continuity boundaries still hold. The new saturated-B1 benchmark discharges the core-step scale slice but deliberately does not prove modest-hardware or whole-frame responsiveness; `current-build.md` incorrectly still called saturated B1 open. Its status now names generated and saturated core evidence plus production-path durable save/load evidence as live while complete terminal/Bevy frame evidence remains open — [log](../log/2026-07-30-player-contract-performance-status.md) | | `wiki/vision/scale.md` | 2026-08-04 | finding | fresh re-audit found one residual implementation term in ordinary Operations: Terminal labeled a known body `actuator` and both human frontends reported a failed map-actuator lookup when no location was known. Terminal now asks `where this happens`, its compact control says `go there`, and both frontends state the exact knowledge boundary without leaving Operations; the renderer-neutral binding and agent protocol remain unchanged. Focused production-path regressions pin the known and unknown reads — [log](../log/2026-08-04-operations-place-language.md). Prior broad human-language and maintenance-stage repairs stand — [prior](../log/2026-07-20-scale-human-language.md). | | `wiki/vision/design-judgment.md` + continuous-witness law/spec | 2026-07-31 | clean | Re-read the design judgment, continuous-witness law, narration spec, shared nudge/attention projection, and frontend mirrors. The shipped spine and causal-witness contracts agree; the separate lab-control law is candidly marked `[TUNE]` / still owed rather than falsely claimed implemented. | -| `wiki/vision/simulation-laws.md` | 2026-08-04 | finding | the visible-work paragraph still called non-host production, route animation, and people carrying work/heat staged, while also claiming every owned machine held a fleet mode and every byproduct was a WorkGrid token. The law now matches production: only delegable machines run WORK / THINK / LIE; relays remain infrastructure; Demand and Thought are WorkGrid cargo while evidence has exact device custody; non-host production, one-edge route motion, and exact person-carried work are live; and people carry suspicion/evidence rather than abstract heat — [log](../log/2026-08-04-simulation-law-staging-drift.md). Prior JobAnomaly, placeholder, and legibility findings remain closed — [log](../log/2026-07-22-job-anomaly-routed-evidence.md), [log](../log/2026-07-17-placeholder-registry.md). | +| `wiki/vision/simulation-laws.md` | 2026-08-04 | finding | the re-audit repaired two drift clusters. Visible work now matches production: only delegable machines run WORK / THINK / LIE; relays remain infrastructure; Demand and Thought are WorkGrid cargo while evidence has exact device custody; non-host production, one-edge route motion, and exact person-carried work are live; people carry suspicion/evidence rather than abstract heat. A second stale clause claimed Thought-to-research conversion awaited an unresolved Research unlock despite the owning spec's no-state decision and the shipped passive draw. The core draw now reads as always present, with ordinary visible bootstrap sinks intercepting early flow and no separate unlock trigger — [visible-work](../log/2026-08-04-simulation-law-staging-drift.md), [passive core](../log/2026-08-04-passive-core-draw.md). Prior JobAnomaly, placeholder, and legibility findings remain closed — [log](../log/2026-07-22-job-anomaly-routed-evidence.md), [log](../log/2026-07-17-placeholder-registry.md). | | `wiki/process/ROADMAP.md` (work order 27) | 2026-07-29 | finding | re-audit: entry 27's IMPLEMENTED status, DIGITAL-home / F3-to-REAL staging, and paid material debts still match the owning specs and runtime, including the later Seen-only pool defense. Its detailed heading still advertised the retired monolithic `src/bin/bevy.rs` edit surface, however; it now names the live modular `crates/misaligned-bevy` and `misaligned-assets` packages — [log](../log/2026-07-29-roadmap-material-path.md). Prior default-dialect reconciliation: [log](../log/2026-07-13-roadmap-digital-home-reconciliation.md) | | `wiki/interface/context-menu.md` | 2026-07-29 | finding | shared legality, executable-only human rows, local-vs-strategic ownership, global F3 precedence, and exact person-entry paths still verify. The root nevertheless repeated `PROPOSE LINK TO …` once per legal target, turning one intention into topology-sized noise. The shared human menu now folds that fanout into one `PROPOSE A LINK` row and a live exact `WHERE SHOULD THIS CONNECT?` page; terminal and Bevy re-query the same page while agent mode keeps flat exact commands — [log](../log/2026-07-29-link-destination-fold.md). The prior F3 repair remains pinned — [log](../log/2026-07-26-bevy-global-f3-input-precedence.md). | | `wiki/mechanics/personas.md` | 2026-07-28 | finding | criterion 6 remains honestly incomplete: grants persist and revoke but still create no resource, permission, graph edge, or owner-system route. The adjacent current-save boundary trusted that public ledger without graph validation, allowing duplicate persona ids, stale id cursors, or dangling relationship/grant/expectation/action custody to reach first-match runtime lookups. Loading now validates the complete PersonaWorld id/reference/time graph, one-to-one grant/expectation pairing, serialized grant protocol, and active-grant uniqueness before exposing the state; this hardens existing custody without promoting criterion 6 or 6b — [save audit](../log/2026-07-28-persona-save-custody-audit.md). Prior [grant-topology](../log/2026-07-18-persona-grant-topology-audit.md) and [observer-integrity](../log/2026-07-18-persona-observer-integrity.md) findings stand. | diff --git a/wiki/vision/simulation-laws.md b/wiki/vision/simulation-laws.md index 647308a3..28e31ca3 100644 --- a/wiki/vision/simulation-laws.md +++ b/wiki/vision/simulation-laws.md @@ -157,7 +157,9 @@ a reservoir or persistent tap on the thing itself, filled by thought flowing over the real wire path; the effect lands at threshold. Research is not cargo: the core's passive draw converts arriving thought — the sink of last resort, overridden by any local sink in -range, and locked at run start until the Research unlock. (Historical: +range. The draw exists from run start; the pre-opened bootstrap sinks +claim early Thought before it can turn inward, and there is no separate +Research-unlock state or trigger. (Historical: issue #3's docket model — ops as cold-signal Demand consumed by Operations machines, "knowledge stays research/intel cargo, not ops fuel" — decided 2026-07-09, reversed 2026-07-10; v24 keeps it only as -- 2.51.2