# Dependencies

What waits on what. Rendered by the docs site from [plan.yaml](https://tractat-us.github.io/bee/project/plan.yaml).

A solid arrow points from what must finish to what waits on it. A box holds an item's parts. Colour shows status. Finished work that nothing open waits on is folded into one **Done (27)** node; an item with a GitHub link opens it.

```mermaid
flowchart LR
    done_folded["Done (27)"]:::done
    task_7["Join, which completes spikes 3 and 4"]:::done
    bee_14["Surface data semantics: merge or replace, concurrent card order, leaf encoding"]:::done
    bee_19["Surface data semantics: object writes replace, card order is an Rga of ids"]:::blocked
    bee_23["ClaimTable: drop duplicate log entries through kuilt's ClientSessionTable"]:::blocked
    task_8["Sketch and the companion adapter (spike 5, the acceptance test)"]:::done
    task_9["Durability of the board (spike 6)"]:::done
    task_11["Working-day surfaces: Board, Poll, orphan decisions, history strip"]:::done
    bee_21["Dogfood: bee as the board for its own development"]:::later
    subgraph kuilt_3126["Shared causal context for JsonCrdt (epic)"]
        kuilt_3136["(b) CausalMap, one shared context for a map and its nested stores"]:::done
        kuilt_3137["(c) A dot-store Rga"]:::waiting_on_iain
        kuilt_3126_d["(d) JsonCrdt v2 core and path API"]:::next
        kuilt_3126_e["(e) Migration by re-seed, and a format tag"]:::next
        kuilt_3126_f["(f) Quilter frontier wiring (kuilt#35;2177)"]:::next
        kuilt_3126_g["(g) Writerside and sample rewrite, and the ORMap guard"]:::next
    end
    style kuilt_3126 fill:#bbdefb,stroke:#1565c0,color:#1b1b1b
    kuilt_3129["session: the RoomHost contract doesn't say whether onRoom ends when its connection tears"]:::in_flight
    done_folded --> task_7
    bee_14 --> bee_19
    kuilt_3126_d --> bee_19
    kuilt_3129 --> bee_23
    done_folded --> task_8
    done_folded --> task_9
    task_7 --> task_11
    task_7 --> bee_21
    task_8 --> bee_21
    task_9 --> bee_21
    task_11 --> bee_21
    done_folded --> kuilt_3136
    kuilt_3136 --> kuilt_3126_d
    kuilt_3137 --> kuilt_3126_d
    kuilt_3126_d --> kuilt_3126_e
    kuilt_3126_d --> kuilt_3126_f
    kuilt_3126_d --> kuilt_3126_g
    click bee_14 href "https://github.com/tractat-us/bee/issues/14" _blank
    click bee_19 href "https://github.com/tractat-us/bee/pull/19" _blank
    click bee_23 href "https://github.com/tractat-us/bee/issues/23" _blank
    click task_8 href "https://github.com/tractat-us/bee/pull/38" _blank
    click task_9 href "https://github.com/tractat-us/bee/pull/39" _blank
    click task_11 href "https://github.com/tractat-us/bee/pull/70" _blank
    click bee_21 href "https://github.com/tractat-us/bee/issues/21" _blank
    click kuilt_3136 href "https://github.com/tractat-us/kuilt/pull/3136" _blank
    click kuilt_3137 href "https://github.com/tractat-us/kuilt/issues/3137" _blank
    click kuilt_3129 href "https://github.com/tractat-us/kuilt/issues/3129" _blank
    classDef done fill:#c8e6c9,stroke:#2e7d32,color:#1b1b1b
    classDef in_flight fill:#bbdefb,stroke:#1565c0,color:#1b1b1b
    classDef waiting_on_iain fill:#ffe0b2,stroke:#ef6c00,color:#1b1b1b
    classDef blocked fill:#ffcdd2,stroke:#c62828,color:#1b1b1b
    classDef next fill:#fff9c4,stroke:#f9a825,color:#1b1b1b
    classDef later fill:#eeeeee,stroke:#757575,color:#1b1b1b
```

| Colour | Status          |
| ------ | --------------- |
|        | Done            |
|        | In flight       |
|        | Waiting on Iain |
|        | Blocked         |
|        | Next            |
|        | Later           |

**Done (27)** holds: [Kotlin/wasm and the renderer in one page (spike 1)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-1-kotlinwasm-and-the-renderer-in-one-page-spike-1-plus-all-build-wiring), [The board lattice and its projection (spike 2, part 1)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-2-the-board-lattice-and-its-projection-spike-2-part-1), [The relay (spike 2, part 2)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-3-the-relay-spike-2-part-2), [The browser driver and two browsers (spike 2, part 3)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-4-the-browser-driver-and-two-browsers-spike-2-part-3), [Bridge mechanics (spike 3, first half)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-5-bridge-mechanics-spike-3-first-half), [Claims (spike 4)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-6-claims-spike-4), [Claims blocked by kuilt learner admission: fix kuilt first, or work around it in bee?](https://github.com/tractat-us/bee/issues/11), [Join the bridge, the board and claims](https://github.com/tractat-us/bee/pull/27), [Detect a dead board link from the claims link, or from a per-spoke view?](https://github.com/tractat-us/bee/issues/28), [Detect a crashed agent from its claims link](https://github.com/tractat-us/bee/pull/32), [A late win whose link dies is released only by a later wait on that surface](https://github.com/tractat-us/bee/issues/31), [Give back a late win whose claims link died, on the next link](https://github.com/tractat-us/bee/pull/33), [A wait's reserve can no longer fail, so make it fail loudly](https://github.com/tractat-us/bee/issues/37), [Move kuilt to 0.7.0-dev.1696](https://github.com/tractat-us/bee/pull/40), [A board change elsewhere may re-create the field someone is typing in](https://github.com/tractat-us/bee/issues/43), [Decision: an agent that dies while the host is down keeps its claims forever](https://github.com/tractat-us/bee/issues/44), [Any website open on the laptop can use the board: check Origin and Host on /ws/\*](https://github.com/tractat-us/bee/issues/45), [A tab left open across a host wipe pushes its old board, claim views included, into the new host](https://github.com/tractat-us/bee/issues/46), [A Sketch can still reach the network through WebRTC, which CSP doesn't cover](https://github.com/tractat-us/bee/issues/49), [ClaimsSmokeTest and FrameBoundTest fail intermittently in the smoke job](https://github.com/tractat-us/bee/issues/53), [Refuse cross-site requests by Fetch Metadata: a no-Origin GET can still fill the pairing slots](https://github.com/tractat-us/bee/issues/54), [The host can hang up on an over-bound frame without its 1009 close frame](https://github.com/tractat-us/bee/issues/58), [Decision: a Sketch can forge the viewer's choice in Chromium, by focusing itself](https://github.com/tractat-us/bee/issues/60), [Decision: any local process can admit a second screen by writing a human-attributed admit](https://github.com/tractat-us/bee/issues/64), [A second screen, joined by LAN pairing (spike 7)](https://tractat-us.github.io/bee/superpowers/plans/2026-11-06-bee-v1/#task-10-a-second-screen-spike-7), [Task 10's follow-up calls](https://github.com/tractat-us/bee/pull/42), [(a) LatticeDotFun, a dot store that joins its payloads](https://github.com/tractat-us/kuilt/pull/3132).

No recorded dependencies: [A client whose FullState is over the frame bound redials and resends it forever](https://github.com/tractat-us/bee/issues/65) (In flight), [Give the host its own peer kind, and keep bee_clear off its surfaces](https://github.com/tractat-us/bee/issues/71) (Next), [The bridge refuses wait and list on the host's pairing surfaces](https://github.com/tractat-us/bee/issues/72) (Next), [Serve the board over HTTPS on the LAN, so LAN pages are secure contexts](https://github.com/tractat-us/bee/issues/73) (Later), [Give each e2e spec that writes records its own host, and run two workers](https://github.com/tractat-us/bee/issues/74) (Next), [The bridge's board socket sends no pings, so a half-open link can outlast the boot grace](https://github.com/tractat-us/bee/issues/77) (Next), [Boot grace: two survivors holding different stale entries make a dead agent look seen](https://github.com/tractat-us/bee/issues/78) (Next), [A bee-notions edit can ship a stale bundle while webpack reports up to date](https://github.com/tractat-us/bee/issues/80) (Next), [The bridge can't append to an array, so agent Polls lose their options basis](https://github.com/tractat-us/bee/issues/81) (Next), [Fence an orphan decision's proposal by the orphan token](https://github.com/tractat-us/bee/issues/83) (Next), [Sketch Send bar: close the remaining arming gaps with aria-disabled and a click guard](https://github.com/tractat-us/bee/issues/84) (Next), [PairingChannelTest's hang-up case fails every time it runs alone](https://github.com/tractat-us/bee/issues/85) (Next), [kuilt-raft: prune a removed peer's replication state, and reset it at election](https://github.com/tractat-us/kuilt/pull/3133) (In flight), [kuilt-raft: a node stops campaigning once its removal is committed](https://github.com/tractat-us/kuilt/pull/3134) (Waiting on Iain), [quilter: no signal that a replica has caught up with the peer it joined](https://github.com/tractat-us/kuilt/issues/3142) (Next), [store: IndexedDbDurableStore lets synchronous JS throws escape as JsException, which no catch (Exception) sees](https://github.com/tractat-us/kuilt/issues/3143) (Next), [Quilter drops a delta or FullState over the seam's payload budget without a word](https://github.com/tractat-us/kuilt/issues/3144) (Next), [WebSocket installs take no frame bound, so one header can allocate 2 GiB](https://github.com/tractat-us/kuilt/issues/3145) (Next), [Server looms accept a WebSocket handshake from any web page: no Origin or Host check](https://github.com/tractat-us/kuilt/issues/3146) (Next), [Quilter: a caller can't wait until its own write is acknowledged](https://github.com/tractat-us/kuilt/issues/3147) (Next), [Star overlays: a spoke's Quilter can't sendTo another spoke, so a mid-stream joiner never heals its cursor](https://github.com/tractat-us/kuilt/issues/3148) (Next), [Relay: attest each record's author by the connection that first delivered it](https://github.com/tractat-us/kuilt/issues/3149) (Next), [Move Ktor to 3.6.1: Netty and WebSocket drop a session's last frame on 3.5.2](https://github.com/tractat-us/kuilt/issues/3150) (Next), [Pair a real phone over the LAN](https://github.com/tractat-us/bee/pull/42) (Waiting on Iain), [Turn off auto-close in bee's settings](https://github.com/tractat-us/bee/issues/6#issuecomment-6724665300) (Waiting on Iain), [Contributor agreement text and a signing check](https://github.com/tractat-us/bee/issues/6) (Waiting on Iain), [kuilt References policy: allow references to public tractat-us projects](https://github.com/tractat-us/bee/issues/6) (Later).
