From c3d8ce44d3231c7e46071d2d859f41ca7d39d21b Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 28 Oct 2026 11:56:31 +0000 Subject: [PATCH] docs(chord): slice 8 is registries and host.root; the harness object is p3's --- packages/chord/docs/next/decisions.md | 6 ++++++ packages/chord/docs/next/slices.md | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/chord/docs/next/decisions.md b/packages/chord/docs/next/decisions.md index 97ac5e874..7dbb94b49 100644 --- a/packages/chord/docs/next/decisions.md +++ b/packages/chord/docs/next/decisions.md @@ -1691,6 +1691,12 @@ validation and copies the v2 kernel added around Delta. `undefined` attach fails the activation as a failed dependency; Durable's `failed` end ends the watches `failed`. Returns a `Watchable` (state member, derive source, `on` source). Supersedes the carry-over's `durableView` and D1's `durableView` part. +- **Slice 8 is "Registries and `host.root`"; the harness object is p3's (owner, 2026-10-27: "we want to get chord done + this week. p3 needs design and is next week. just need all chord primitives in"):** Chord builds the primitives the + harness needs (registries, `self.writable`, `retryOn`, a `RegistryReader` for Durable, `host.root`, `chord(fn, + context)`); the harness object (`Harness.open` over `StoreStorage`, `resume()` after the start barrier, the models, + environments and extensions registries) is p3's base code, shown in Chord only as an example or test. Plan: Chord v2 + (6b, 7, 8, 9) this week, p3's design next week. - **The performance and memory bar, and converging reviews (owner, 2026-10-27: "yes"):** supersedes "as good as HEAD in everything" for Chord v2 slices and pi changes. CPU: each hot path (calls, changes, watches, links) within about 5% of HEAD, measured in bursts with alternating processes pinned to one CPU; worse is fixed or goes to the diff --git a/packages/chord/docs/next/slices.md b/packages/chord/docs/next/slices.md index 4c64947d1..826f223c0 100644 --- a/packages/chord/docs/next/slices.md +++ b/packages/chord/docs/next/slices.md @@ -49,7 +49,7 @@ Order (owner, 2026-10-22: routines and jobs before the store and reload). | 6a | **The store** | the store (backends, tables, queries, writes, commit queue, outbox, documents engine, migrations, export), persisted documents, `self.table`, keyed watches and retirement | | 6b | **Durable and jobs on the store** | persisted jobs, Durable's `StoreStorage`, the Chord source over Durable's views (`self.follow`) | | 7 | **Reload and rollout** | plugin loading, staging, swaps and restarts, revisions, `accepts` in use | -| 8 | **Registries and the harness** | registries, `self.writable`, Durable's harness, `chord(fn, context)` | +| 8 | **Registries and `host.root`** | registries, `self.writable`, `retryOn`, a `RegistryReader` for Durable, `host.root` and `chord(fn, context)` (the harness object is p3's base code) | | 9 | **Telemetry** | spans, events, metrics across hosts | The playground (`apps/chord-playground`) moves to the new code once slice 4 exists. Round-3 cuts (C3-C16) and @@ -126,7 +126,7 @@ pattern, no code. Decided cuts are noted where they apply. | 22 | relays, size limits per part, compression at the origin, adapted bindings get diffs | 4a (relays), 4b (limits, compression), 7 | | 22 | trace carriers (R5) | 9 | | 23 | HTTP, channels, chunked transfers | after slice 9 (with the first real proof) | -| 24 | Durable integration: harness object, `chord(fn, context)` (Q6), model and env registries | 8 | +| 24 | Durable integration: `chord(fn, context)` (Q6), a `RegistryReader` over composed registries; the harness object and its model and env registries are p3's (base code, owner, 2026-10-27) | 8 (Chord parts), p3 | | 24 | `StoreStorage` | 6b | | 27 | versions table: contracts (L1 done), registries 8, documents 6, jobs 5, link protocol 3a | as listed | | 29 | telemetry spans, events, metrics, carriers | 9 (cost counters: every slice) | @@ -231,7 +231,7 @@ deleted (the slice's spec and code are the record). Moved here from `carry-over. - **Retrying broken failures:** reload retries a broken object as `ref.retry()` does (`ChordObject.retry`: the backoff skipped, an attempt now; holders are told `loading`). (Slices 2, 3b.) -### Slice 8: registries and the harness +### Slice 8: registries and `host.root` - **`host.root(fn, context, { principal? })`**: a call scope for code outside objects, built with its first users (Durable hooks, `chord(fn, context)`); decide what an aborted, uncooperative `fn` means for its references (match