Commit graph

331 commits

Author SHA1 Message Date
Mario Zechner
a5609aae81 docs(chord): decision: no cycle probe; parked_long diagnostic and authoring rules 2026-10-29 08:31:15 +00:00
Mario Zechner
249f24bfc5 docs(chord): getters decision: reviewer votes 2026-10-29 08:03:10 +00:00
Mario Zechner
a54f250fb4 docs(chord): decision: getters wait through waiting until their readyTimeout 2026-10-29 08:00:54 +00:00
Mario Zechner
aee933269b docs(chord): dependency model: hostAddress wording 2026-10-29 07:44:21 +00:00
Mario Zechner
373fbcc706 docs(chord): dependency model: hostAddress 2026-10-29 07:37:56 +00:00
Mario Zechner
5ec2418820 feat(chord): hostAddress instead of placement, required on remote types; only hosts with an address serve remote types
The contract field placement is hostAddress, required on every remote() (type and declaration error); the
fallback for remote types without one is gone. invalid/placement is invalid/host_address. host/placement.ts
(Placement) is host/destination.ts (Destination); here is decided by address alone, and a host without an
address refuses to serve a remote type. A hold always carries its address on the wire (the binary codec's
ADDRESS flag is gone, the text codec requires it). Tests and examples declare their host addresses.
2026-10-29 07:37:37 +00:00
Mario Zechner
d0687bce85 docs(chord): only hosts with an address serve remote types; holds always carry their address 2026-10-29 07:29:25 +00:00
Mario Zechner
943f30c909 docs(chord): design: hostAddress instead of placement 2026-10-29 07:25:19 +00:00
Mario Zechner
599127ea36 docs(chord): decision: hostAddress instead of placement 2026-10-29 07:24:20 +00:00
Mario Zechner
0ddc953102 docs(chord): dependency model: placement required on remote types 2026-10-29 07:17:49 +00:00
Mario Zechner
13dee75529 docs(chord): every remote type declares its placement 2026-10-29 07:17:22 +00:00
Mario Zechner
1b760044ec docs(chord): note: every object may contribute (for later) 2026-10-29 07:06:37 +00:00
Mario Zechner
67c63c0f7f docs(chord): dependency model: the dependency check applies R18 after live, not a rule of its own 2026-10-29 06:49:17 +00:00
Mario Zechner
e65b3b88c0 docs(chord): dependency model proposal for slice 7 and its explainer (Parked Until Resolved) 2026-10-29 00:51:57 +00:00
Mario Zechner
556860a386 docs(chord): no client providers for now 2026-10-28 23:16:28 +00:00
Mario Zechner
6eb99ad65b feat(chord): Chord v2 slice 8, registries and host.root
Registries: shared tokens (defineRegistry), one provider per host (host.serve(R, { compose, accepts })),
contributions from facets and host-lifetime objects, plain values or followed Chord watchables, a table
sorted by plugin, lazy compose in the batch that changed the table, failures left out and reported with
the last good value kept; self.registry as a declared dependency, host.registry outside objects, older
readers mapped by accepts[old].value; keyedEntries and orderedEntries. Native sources: self.writable,
registry values and ref.state. self.retryOn wakes failed objects on registry values. host.root gives code
outside objects a call scope sealed at settle, abort and host.close.

Durable: registryReader(value, context); a Session close ends synchronous observers failed
("session closed"), watches still end ended.
2026-10-28 21:34:56 +00:00
Mario Zechner
edab3efa83 docs(chord): slice 8: only Chord watchables are followed as contributions 2026-10-28 21:07:42 +00:00
Mario Zechner
790a98b9ab docs(chord): design §17 compose failure and helper names as built 2026-10-28 21:07:05 +00:00
Mario Zechner
1ce44bedeb docs(chord): slice 8 S2 and S3 wording as refined 2026-10-28 21:05:01 +00:00
Mario Zechner
391e83fb17 fix(chord): Chord v2 follows its design where the audit of slices 1-6a found it did not
A failed activation releases its references after its natives closed; a dependency going live while
the dependent activates retries it at once; a call on a local object runs with the host's principal
and incarnation; retiring an unloaded document checks its stored version and fingerprint, and a cut
retirement no longer fails its successor; ref.retry() re-runs a refused hold's start on the same id
(the provider keeps refused holds), and ends released/closed on a closed host; a relayed hold waits
while the parent link is down; a link drop while a dependency is still loading is no failure.
2026-10-28 19:50:41 +00:00
Mario Zechner
6975eb18a6 docs(chord): design §3 route context, §7 retry of a refused hold 2026-10-28 19:44:10 +00:00
Mario Zechner
e613c7487b docs(chord): design §3 placement: a parent link that is down waits 2026-10-28 19:41:25 +00:00
Mario Zechner
9017ce0813 docs(chord): slice 6b built 2026-10-28 19:27:58 +00:00
Mario Zechner
14b4c56e57 feat(chord,durable): Chord v2 slice 6b, Durable and jobs on the store
StoreStorage (Durable's storage on Chord v2's store, @earendil-works/pi-durable/storage/store) passes
Durable's storage conformance suite and runs Durable's harness tests (npm run test:store). The store
gets owner names and claims, one id allocator, Durable's Storage semantics for refused steps, history
none/latest/rewindable with reads at a point, archive revisions and applyBatch. self.follow follows
Durable's synchronous observers as Chord sources. Persisted jobs: records and state in the owner's
store, restarts as Durable's tasks, abort stored, deferred state. Chord's ./next export returns for
the adapter surface.
2026-10-28 19:18:30 +00:00
Mario Zechner
4e5cd1a973 docs(chord): slice 6b resume watch cost accepted 2026-10-28 19:03:49 +00:00
Mario Zechner
33385f9572 docs(chord): attribution of the StoreStorage.close rule 2026-10-28 18:53:50 +00:00
Mario Zechner
ec2c8ed311 docs(chord): slice 6b reopen and commit numbers accepted 2026-10-28 18:51:30 +00:00
Mario Zechner
97553d10f2 docs(chord): design text after the audit of slices 1-6a 2026-10-28 18:10:32 +00:00
Mario Zechner
cc41246b9d docs(chord): design audit of slices 1-6a, decisions 6a and 7a 2026-10-28 18:10:01 +00:00
Mario Zechner
9ae3d8814c docs(chord): design §6 seal fence: staged job changes adopted 2026-10-28 17:58:27 +00:00
Mario Zechner
dc35ae2d92 docs(chord): slice 8: ref.state is a native source too 2026-10-28 17:56:37 +00:00
Mario Zechner
568f6c47eb docs(chord): slice 8 ready to build 2026-10-28 17:53:56 +00:00
Mario Zechner
82a0d646e5 docs(chord): slice 8 review 2 leftovers; design §24 harness example 2026-10-28 17:52:54 +00:00
Mario Zechner
eb9d443462 docs(chord): slice 8 review 2 fixes; design §17 and slices folded 2026-10-28 17:51:28 +00:00
Mario Zechner
02a2b2532d docs(chord): slice 8 accepts adapters guarded; example shape 2026-10-28 17:49:48 +00:00
Mario Zechner
5f75cd77f8 docs(chord): slice 8 S3, self.registry is a dependency 2026-10-28 17:48:15 +00:00
Mario Zechner
376ccf6e89 docs(chord): slice 8 revised: self.registry is a dependency; S1-S3; review gaps 2026-10-28 17:48:03 +00:00
Mario Zechner
677e8067b3 docs(chord): slice 6b revision part and examples as built 2026-10-28 17:46:55 +00:00
Mario Zechner
b0eb8ace19 docs(chord): slice 6b entry_heads table 2026-10-28 17:43:57 +00:00
Mario Zechner
df9275d434 docs(chord): slice 8 S2, registry readers of an older version 2026-10-28 17:39:33 +00:00
Mario Zechner
cf9042b48a docs(chord): slice 8 S1, a Session close fails Durable's observers 2026-10-28 17:35:55 +00:00
Mario Zechner
07a76f1ef0 docs(chord): slice 8 D2, D3; spec decided 2026-10-28 17:20:43 +00:00
Mario Zechner
9cef0db2d6 docs(chord): slice 8 registry failures 2026-10-28 17:15:50 +00:00
Mario Zechner
1e1716e69a docs(chord): slice 8 D1, registries served by their provider 2026-10-28 17:08:18 +00:00
Mario Zechner
ad702637fd docs(chord): slice 8 spec draft 2026-10-28 15:31:08 +00:00
Mario Zechner
b2fcfee083 docs(chord): slice 6b ready to build; claims per table and namespace 2026-10-28 15:09:35 +00:00
Mario Zechner
7f3cfb060d docs(chord): slice 6b spec revised after the first spec review 2026-10-28 14:55:45 +00:00
Mario Zechner
a2c5657c86 docs(chord): slice 6b R4, a follow source's end 2026-10-28 14:54:03 +00:00
Mario Zechner
8c38be894d docs(chord): slice 6b R3, a seal is a clean stop for persisted runs 2026-10-28 14:51:05 +00:00
Mario Zechner
74bbffadf3 docs(chord): slice 6b owner names and claims, no pi.durable 2026-10-28 14:50:33 +00:00