Timeline¶
When each piece started and landed, and the estimate for what is still open. Rendered by the docs site from plan.yaml.
Times are in America/New_York (ET). Durations run from start to merge, or for a decision, to its ruling.
Done¶
Only finished work, on the dates it ran. Open work has no bar: its estimates are below.
gantt
dateFormat YYYY-MM-DD HH:mm
axisFormat %m-%d %H:%M
section Done
Kotlin/wasm and the renderer in one page (spike 1) : task_1, 2026-11-06 19:59, 2026-11-06 20:31
The board lattice and its projection (spike 2, part 1) : task_2, 2026-11-06 20:38, 2026-11-06 21:02
The relay (spike 2, part 2) : task_3, 2026-11-06 21:13, 2026-11-06 21:44
The browser driver and two browsers (spike 2, part 3) : task_4, 2026-11-06 21:55, 2026-11-06 22:30
Bridge mechanics (spike 3, first half) : task_5, 2026-11-06 20:47, 2026-11-06 21:12
Claims (spike 4) : task_6, 2026-11-06 20:42, 2026-11-07 19:00
Claims blocked by kuilt learner admission fix kuilt first, or work around it in bee? : bee_11, 2026-11-06 20:44, 2026-11-07 09:43
Join, which completes spikes 3 and 4 : task_7, 2026-11-07 16:49, 2026-11-07 21:17
Join the bridge, the board and claims : bee_27, 2026-11-07 16:49, 2026-11-07 21:01
Detect a dead board link from the claims link, or from a per-spoke view? : bee_28, 2026-11-07 16:51, 2026-11-07 18:53
Detect a crashed agent from its claims link : bee_32, 2026-11-07 19:27, 2026-11-07 21:10
A late win whose link dies is released only by a later wait on that surface : bee_31, 2026-11-07 19:23, 2026-11-07 21:17
Give back a late win whose claims link died, on the next link : bee_33, 2026-11-07 20:18, 2026-11-07 21:17
A wait's reserve can no longer fail, so make it fail loudly : bee_37, 2026-11-07 21:10, 2026-11-07 21:28
Move kuilt to 0.7.0-dev.1696 : bee_40, 2026-11-07 21:15, 2026-11-07 21:19
A board change elsewhere may re-create the field someone is typing in : bee_43, 2026-11-07 21:36, 2026-11-08 14:00
Decision an agent that dies while the host is down keeps its claims forever : bee_44, 2026-11-07 21:36, 2026-11-08 12:26
Any website open on the laptop can use the board check Origin and Host on /ws/* : bee_45, 2026-11-07 21:44, 2026-11-07 23:40
A tab left open across a host wipe pushes its old board, claim views included, into the new host : bee_46, 2026-11-07 22:07, 2026-11-07 23:49
A Sketch can still reach the network through WebRTC, which CSP doesn't cover : bee_49, 2026-11-07 22:41, 2026-11-08 12:30
ClaimsSmokeTest and FrameBoundTest fail intermittently in the smoke job : bee_53, 2026-11-07 23:31, 2026-11-08 00:27
Refuse cross-site requests by Fetch Metadata a no-Origin GET can still fill the pairing slots : bee_54, 2026-11-07 23:40, 2026-11-08 00:36
The host can hang up on an over-bound frame without its 1009 close frame : bee_58, 2026-11-08 00:15, 2026-11-08 12:35
Decision a Sketch can forge the viewer's choice in Chromium, by focusing itself : bee_60, 2026-11-08 01:01, 2026-11-08 12:35
Decision any local process can admit a second screen by writing a human-attributed admit : bee_64, 2026-11-08 12:33, 2026-11-08 12:42
Surface data semantics merge or replace, concurrent card order, leaf encoding : bee_14, 2026-11-06 20:51, 2026-11-07 09:43
Sketch and the companion adapter (spike 5, the acceptance test) : task_8, 2026-11-07 21:13, 2026-11-08 13:49
Durability of the board (spike 6) : task_9, 2026-11-07 21:15, 2026-11-07 22:21
A second screen, joined by LAN pairing (spike 7) : task_10, 2026-11-07 21:20, 2026-11-07 22:51
Task 10's follow-up calls : bee_42_calls, 2026-11-07 21:35, 2026-11-08 12:26
Working-day surfaces Board, Poll, orphan decisions, history strip : task_11, 2026-11-08 12:44, 2026-11-08 13:59
(a) LatticeDotFun, a dot store that joins its payloads : kuilt_3132, 2026-11-07 17:27, 2026-11-07 20:29
(b) CausalMap, one shared context for a map and its nested stores : kuilt_3136, 2026-11-07 18:01, 2026-11-07 20:43
| Item | Started | Landed | Took | Links |
|---|---|---|---|---|
| Kotlin/wasm and the renderer in one page (spike 1) | 2026-11-06 19:59 EST | 2026-11-06 20:31 EST | 32 min | Plan, Task 1, bee#8, Spike 1 report |
| The board lattice and its projection (spike 2, part 1) | 2026-11-06 20:38 EST | 2026-11-06 21:02 EST | 24 min | Plan, Task 2, bee#9, Spike 2 report |
| The relay (spike 2, part 2) | 2026-11-06 21:13 EST | 2026-11-06 21:44 EST | 31 min | Plan, Task 3, bee#15, bee#29, deltas not whole boards |
| The browser driver and two browsers (spike 2, part 3) | 2026-11-06 21:55 EST | 2026-11-06 22:30 EST | 35 min | Plan, Task 4, bee#16 |
| Bridge mechanics (spike 3, first half) | 2026-11-06 20:47 EST | 2026-11-06 21:12 EST | 25 min | Plan, Task 5, bee#13, Spike 3 report |
| Claims (spike 4) | 2026-11-06 20:42 EST | 2026-11-07 19:00 EST | 22.3 h | Plan, Task 6, bee#10, bee#26, learner grace, Spike 4 report |
| Claims blocked by kuilt learner admission: fix kuilt first, or work around it in bee? | 2026-11-06 20:44 EST | 2026-11-07 09:43 EST | 13.0 h | bee#11 |
| Join, which completes spikes 3 and 4 | 2026-11-07 16:49 EST | 2026-11-07 21:17 EST | 4.5 h | Plan, Task 7 |
| Join the bridge, the board and claims | 2026-11-07 16:49 EST | 2026-11-07 21:01 EST | 4.2 h | bee#27 |
| Detect a dead board link from the claims link, or from a per-spoke view? | 2026-11-07 16:51 EST | 2026-11-07 18:53 EST | 2.0 h | bee#28 |
| Detect a crashed agent from its claims link | 2026-11-07 19:27 EST | 2026-11-07 21:10 EST | 1.7 h | bee#32 |
| A late win whose link dies is released only by a later wait on that surface | 2026-11-07 19:23 EST | 2026-11-07 21:17 EST | 1.9 h | bee#31 |
| Give back a late win whose claims link died, on the next link | 2026-11-07 20:18 EST | 2026-11-07 21:17 EST | 59 min | bee#33 |
| A wait's reserve can no longer fail, so make it fail loudly | 2026-11-07 21:10 EST | 2026-11-07 21:28 EST | 18 min | bee#37, bee#41 |
| Move kuilt to 0.7.0-dev.1696 | 2026-11-07 21:15 EST | 2026-11-07 21:19 EST | 4 min | bee#40 |
| A board change elsewhere may re-create the field someone is typing in | 2026-11-07 21:36 EST | 2026-11-08 14:00 EST | 16.4 h | bee#43, bee#63 |
| Decision: an agent that dies while the host is down keeps its claims forever | 2026-11-07 21:36 EST | 2026-11-08 12:26 EST | 14.8 h | bee#44, bee#62 |
| Any website open on the laptop can use the board: check Origin and Host on /ws/* | 2026-11-07 21:44 EST | 2026-11-07 23:40 EST | 1.9 h | bee#45, bee#51 |
| A tab left open across a host wipe pushes its old board, claim views included, into the new host | 2026-11-07 22:07 EST | 2026-11-07 23:49 EST | 1.7 h | bee#46, bee#52 |
| A Sketch can still reach the network through WebRTC, which CSP doesn't cover | 2026-11-07 22:41 EST | 2026-11-08 12:30 EST | 13.8 h | bee#49, bee#66, spec limit |
| ClaimsSmokeTest and FrameBoundTest fail intermittently in the smoke job | 2026-11-07 23:31 EST | 2026-11-08 00:27 EST | 56 min | bee#53, bee#57 |
| Refuse cross-site requests by Fetch Metadata: a no-Origin GET can still fill the pairing slots | 2026-11-07 23:40 EST | 2026-11-08 00:36 EST | 56 min | bee#54, bee#55 |
| The host can hang up on an over-bound frame without its 1009 close frame | 2026-11-08 00:15 EST | 2026-11-08 12:35 EST | 12.3 h | bee#58, bee#69 |
| Decision: a Sketch can forge the viewer's choice in Chromium, by focusing itself | 2026-11-08 01:01 EST | 2026-11-08 12:35 EST | 11.6 h | bee#60, bee#38 |
| Decision: any local process can admit a second screen by writing a human-attributed admit | 2026-11-08 12:33 EST | 2026-11-08 12:42 EST | 9 min | bee#64, bee#68 |
| Surface data semantics: merge or replace, concurrent card order, leaf encoding | 2026-11-06 20:51 EST | 2026-11-07 09:43 EST | 12.9 h | bee#14 |
| Sketch and the companion adapter (spike 5, the acceptance test) | 2026-11-07 21:13 EST | 2026-11-08 13:49 EST | 16.6 h | Plan, Task 8, bee#38 |
| Durability of the board (spike 6) | 2026-11-07 21:15 EST | 2026-11-07 22:21 EST | 1.1 h | Plan, Task 9, bee#39 |
| A second screen, joined by LAN pairing (spike 7) | 2026-11-07 21:20 EST | 2026-11-07 22:51 EST | 1.5 h | Plan, Task 10, bee#42 |
| Task 10's follow-up calls | 2026-11-07 21:35 EST | 2026-11-08 12:26 EST | 14.8 h | bee#42 |
| Working-day surfaces: Board, Poll, orphan decisions, history strip | 2026-11-08 12:44 EST | 2026-11-08 13:59 EST | 1.2 h | Plan, Task 11, bee#70, Notions Poll and Board, bee#75, orphan decisions |
| (a) LatticeDotFun, a dot store that joins its payloads | 2026-11-07 17:27 EST | 2026-11-07 20:29 EST | 3.0 h | kuilt#3132 |
| (b) CausalMap, one shared context for a map and its nested stores | 2026-11-07 18:01 EST | 2026-11-07 20:43 EST | 2.7 h | kuilt#3136 |
Open¶
Each estimate is a range of wall-clock time from start to merge, leaving out time waiting on Iain.
In flight¶
- A client whose FullState is over the frame bound redials and resends it forever. Started 2026-11-08 12:33 EST.
Links: bee#65, bee#76 - Shared causal context for JsonCrdt (epic). Started 2026-11-07 14:36 EST. Estimate: 1–3 days, low confidence.
Basis: From the issue being filed to the last slice merging. (a) and (b) each took about 3 h from PR open to merge. (c) waits on three design calls for Iain, with no PR yet, and (d)–(g) are not filed. What remains is a chain of three: (c), then (d), then (e)–(g) in parallel, at 3–12 h each.
Links: kuilt#3126 - kuilt-raft: prune a removed peer's replication state, and reset it at election. Started 2026-11-07 17:29 EST.
Links: kuilt#3133 - session: the RoomHost contract doesn't say whether onRoom ends when its connection tears. Started 2026-11-07 20:28 EST.
Links: kuilt#3129, kuilt#3141, slice 1
Waiting on Iain¶
- (c) A dot-store Rga. Started 2026-11-07 18:54 EST.
Links: kuilt#3137, Design gate - kuilt-raft: a node stops campaigning once its removal is committed. Started 2026-11-07 17:32 EST.
Links: kuilt#3134 - Pair a real phone over the LAN. Started 2026-11-08 12:26 EST.
Links: bee#42, Steps: Showing the board on another screen - Turn off auto-close in bee's settings. Started 2026-11-08 12:26 EST.
Links: Ruling on bee#6 - Contributor agreement text and a signing check
Links: Epic bee#6
Blocked¶
- Surface data semantics: object writes replace, card order is an Rga of ids. Started 2026-11-07 09:51 EST.
Links: bee#19 - ClaimTable: drop duplicate log entries through kuilt's ClientSessionTable. Started 2026-11-07 15:43 EST.
Links: bee#23
Next¶
- Give the host its own peer kind, and keep bee_clear off its surfaces. Started 2026-11-08 12:44 EST.
Links: bee#71 - The bridge refuses wait and list on the host's pairing surfaces. Started 2026-11-08 12:44 EST.
Links: bee#72 - Give each e2e spec that writes records its own host, and run two workers. Started 2026-11-08 12:44 EST.
Links: bee#74 - The bridge's board socket sends no pings, so a half-open link can outlast the boot grace. Started 2026-11-08 12:52 EST.
Links: bee#77 - Boot grace: two survivors holding different stale entries make a dead agent look seen. Started 2026-11-08 12:52 EST.
Links: bee#78 - A bee-notions edit can ship a stale bundle while webpack reports up to date. Started 2026-11-08 12:59 EST.
Links: bee#80 - The bridge can't append to an array, so agent Polls lose their options basis. Started 2026-11-08 13:10 EST.
Links: bee#81 - Fence an orphan decision's proposal by the orphan token. Started 2026-11-08 13:40 EST.
Links: bee#83 - Sketch Send bar: close the remaining arming gaps with aria-disabled and a click guard. Started 2026-11-08 13:49 EST.
Links: bee#84 - PairingChannelTest's hang-up case fails every time it runs alone. Started 2026-11-08 13:59 EST.
Links: bee#85 - (d) JsonCrdt v2 core and path API
- (e) Migration by re-seed, and a format tag
- (f) Quilter frontier wiring (kuilt#2177)
- (g) Writerside and sample rewrite, and the ORMap guard
- quilter: no signal that a replica has caught up with the peer it joined. Started 2026-11-07 21:25 EST.
Links: kuilt#3142 - store: IndexedDbDurableStore lets synchronous JS throws escape as JsException, which no catch (Exception) sees. Started 2026-11-07 21:41 EST.
Links: kuilt#3143 - Quilter drops a delta or FullState over the seam's payload budget without a word. Started 2026-11-07 21:58 EST.
Links: kuilt#3144 - WebSocket installs take no frame bound, so one header can allocate 2 GiB. Started 2026-11-07 22:25 EST.
Links: kuilt#3145 - Server looms accept a WebSocket handshake from any web page: no Origin or Host check. Started 2026-11-07 23:01 EST.
Links: kuilt#3146 - Quilter: a caller can't wait until its own write is acknowledged. Started 2026-11-08 10:02 EST.
Links: kuilt#3147, bee#38 - Star overlays: a spoke's Quilter can't sendTo another spoke, so a mid-stream joiner never heals its cursor. Started 2026-11-08 12:33 EST.
Links: kuilt#3148 - Relay: attest each record's author by the connection that first delivered it. Started 2026-11-08 12:42 EST.
Links: kuilt#3149, bee#68 - Move Ktor to 3.6.1: Netty and WebSocket drop a session's last frame on 3.5.2. Started 2026-11-08 13:00 EST.
Links: kuilt#3150
Later¶
- Serve the board over HTTPS on the LAN, so LAN pages are secure contexts. Started 2026-11-08 12:44 EST.
Links: bee#73 - Dogfood: bee as the board for its own development
Links: bee#21 - kuilt References policy: allow references to public tractat-us projects
Links: Epic bee#6