Skip to content

Dependencies

What waits on what. Rendered by the docs site from 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.

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), 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 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, A second screen, joined by LAN pairing (spike 7), Task 10's follow-up calls, (a) LatticeDotFun, a dot store that joins its payloads.

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