Project¶
Where bee stands, rendered by the docs site from plan.yaml. The v1 plan says what each task is; this section says where each one is.
Waiting on Iain (5)
- (c) A dot-store Rga: A design gate is posted, with three calls for Iain before implementation. bee#19 and Task 11 wait on the chain that starts here.
- kuilt-raft: a node stops campaigning once its removal is committed: A spec-critical engine change that departs from the issue's suggested fix; needs Iain's review before merge.
- Pair a real phone over the LAN: The e2e never binds off loopback, so mDNS, the macOS firewall, Wi-Fi isolation and mobile Safari or Chrome are unproven.
- Turn off auto-close in bee's settings: Settings, General, Issues; a UI toggle only, to match the rest of tractat-us.
- Contributor agreement text and a signing check: A lawyer writes it, not an agent. Needed before the repo accepts outside contributions.
As of 2026-11-08 14:02 EST, when the plan was last reconciled with GitHub. Times are in America/New_York (ET).
Sources: v1 plan, Epic: bee v1 (bee#6), Merged pull requests.
Counts¶
| Status | Items |
|---|---|
| Done | 33 |
| In flight | 4 |
| Waiting on Iain | 5 |
| Blocked | 2 |
| Next | 23 |
| Later | 3 |
| All | 70 |
Board¶
-
Done · 33
- Kotlin/wasm and the renderer in one page (spike 1)
- The board lattice and its projection (spike 2, part 1)
- The relay (spike 2, part 2)
- The browser driver and two browsers (spike 2, part 3)
- Bridge mechanics (spike 3, first half)
- Claims (spike 4)
- Claims blocked by kuilt learner admission: fix kuilt first, or work around it in bee?
- Join, which completes spikes 3 and 4
- Join the bridge, the board and claims
- Detect a dead board link from the claims link, or from a per-spoke view?
- Detect a crashed agent from its claims link
- A late win whose link dies is released only by a later wait on that surface
- Give back a late win whose claims link died, on the next link
- A wait's reserve can no longer fail, so make it fail loudly
- Move kuilt to 0.7.0-dev.1696
- A board change elsewhere may re-create the field someone is typing in
- Decision: an agent that dies while the host is down keeps its claims forever
- Any website open on the laptop can use the board: check Origin and Host on /ws/*
- A tab left open across a host wipe pushes its old board, claim views included, into the new host
- A Sketch can still reach the network through WebRTC, which CSP doesn't cover
- ClaimsSmokeTest and FrameBoundTest fail intermittently in the smoke job
- Refuse cross-site requests by Fetch Metadata: a no-Origin GET can still fill the pairing slots
- The host can hang up on an over-bound frame without its 1009 close frame
- Decision: a Sketch can forge the viewer's choice in Chromium, by focusing itself
- Decision: any local process can admit a second screen by writing a human-attributed admit
- Surface data semantics: merge or replace, concurrent card order, leaf encoding
- Sketch and the companion adapter (spike 5, the acceptance test)
- Durability of the board (spike 6)
- A second screen, joined by LAN pairing (spike 7)
- Task 10's follow-up calls
- Working-day surfaces: Board, Poll, orphan decisions, history strip
- (a) LatticeDotFun, a dot store that joins its payloads
- (b) CausalMap, one shared context for a map and its nested stores
-
In flight · 4
-
Waiting on Iain · 5
-
Blocked · 2
-
Next · 23
- Give the host its own peer kind, and keep bee_clear off its surfaces
- The bridge refuses wait and list on the host's pairing surfaces
- Give each e2e spec that writes records its own host, and run two workers
- The bridge's board socket sends no pings, so a half-open link can outlast the boot grace
- Boot grace: two survivors holding different stale entries make a dead agent look seen
- A bee-notions edit can ship a stale bundle while webpack reports up to date
- The bridge can't append to an array, so agent Polls lose their options basis
- Fence an orphan decision's proposal by the orphan token
- Sketch Send bar: close the remaining arming gaps with aria-disabled and a click guard
- PairingChannelTest's hang-up case fails every time it runs alone
- (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
- store: IndexedDbDurableStore lets synchronous JS throws escape as JsException, which no catch (Exception) sees
- Quilter drops a delta or FullState over the seam's payload budget without a word
- WebSocket installs take no frame bound, so one header can allocate 2 GiB
- Server looms accept a WebSocket handshake from any web page: no Origin or Host check
- Quilter: a caller can't wait until its own write is acknowledged
- Star overlays: a spoke's Quilter can't sendTo another spoke, so a mid-stream joiner never heals its cursor
- Relay: attest each record's author by the connection that first delivered it
- Move Ktor to 3.6.1: Netty and WebSocket drop a session's last frame on 3.5.2
-
Later · 3