| … | … | @@ -3304,6 +3304,24 @@ injected per layer: |
| 3304 | 3304 | the speedometer port) plus R3b's own. A drill checks anchors only when it starts, so whole |
| 3305 | 3305 | sets had silently stopped working. One replacement no longer compiled |
| 3306 | 3306 | (`core.onappend` → `core->onappend`); lint cannot see that, only a run can. |
| 3307 | - **R3b step 2 DONE 2026-10-05** (keetd 8ce4cc2): the Clock seam is gone. R3b is COMPLETE. |
| 3308 | - Removed: `repl::Clock`, the drivers' clocks, `Core::onsettimeout`, the R3a adapter. |
| 3309 | - The libraries call rt where the JS calls the runtime: |
| 3310 | - replicator: `setTimeout(onrequesttimeout)`, `await backoff()`, the not-downloading |
| 3311 | linger with `unref()`, `Date.now()`. A backoff that fires after the Replicator is gone |
| 3312 | does nothing (`life_`), as JS's would on a removed peer; |
| 3313 | - `waitForRecovery`: `setTimeout(5000 / 250)` directly. keetd only: the loop ends if the |
| 3314 | replicator goes before its core, which cannot happen in JS; |
| 3315 | - corestore gc `setInterval(gcCycle, 2000).unref()`; protomux-wakeup gc `setInterval`; |
| 3316 | hyperblobs monitor `Date.now()`. |
| 3317 | - Gate: ctest 78/78; M3d G1 3/3 each way; all 18 drill sets identical to step 1, survivors |
| 3318 | by name. |
| 3319 | - **Harness bug found (keetd 00626e0):** `script_control` cached a JS control whose uploader |
| 3320 | never reported (a loaded machine drops it: the s19 flake). Every later run then served it, |
| 3321 | and m5g4e1's controls failed even on an idle machine. Such a control is now never saved, |
| 3322 | and a cached one counts as a miss, so a poisoned cache heals itself. |
| 3323 | - Not in R3 (noted): `Core::now` stays an injected `Date.now` (gates pin it); l2 storage has |
| 3324 | its own `now_ms`. |
| 3307 | 3325 | - **R4:** storage, per the decision above. |
| 3308 | 3326 | - **Then 4e-4** (`createProtocolStream` / `replicate`): the first gate that composes the stack |
| 3309 | 3327 | is a COMPOSED trace against JS (secret-stream + protomux + replicator), now meaningful. |