# kuilt work

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

kuilt work bee depends on, grouped under its epic. A gap in kuilt is a kuilt issue, never a local patch.

## Shared causal context for JsonCrdt (epic)

[Shared causal context for JsonCrdt (epic)](https://github.com/tractat-us/kuilt/issues/3126). In flight. Began as an ORMap.remove bug; ruled reset-and-replace, re-seed migration, and every nested use on a shared-context CausalMap. Split into (a)–(g).

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.

| Item                                                                                                               | Status          | Summary                                                                                                                          | bee waits on it                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------ | --------------- | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [(a) LatticeDotFun, a dot store that joins its payloads](https://github.com/tractat-us/kuilt/pull/3132)            | Done            | Published in kuilt 0.7.0-dev.1696.                                                                                               | [Move kuilt to 0.7.0-dev.1696](https://github.com/tractat-us/bee/pull/40)                                               |
| [(b) CausalMap, one shared context for a map and its nested stores](https://github.com/tractat-us/kuilt/pull/3136) | Done            | Published in kuilt 0.7.0-dev.1696.                                                                                               | [Move kuilt to 0.7.0-dev.1696](https://github.com/tractat-us/bee/pull/40)                                               |
| [(c) A dot-store Rga](https://github.com/tractat-us/kuilt/issues/3137)                                             | Waiting on Iain | A design gate is posted, with three calls for Iain before implementation. bee#19 and Task 11 wait on the chain that starts here. | —                                                                                                                       |
| (d) JsonCrdt v2 core and path API                                                                                  | Next            | Drafted, not filed. bee#19 waits on it.                                                                                          | [Surface data semantics: object writes replace, card order is an Rga of ids](https://github.com/tractat-us/bee/pull/19) |
| (e) Migration by re-seed, and a format tag                                                                         | Next            | Drafted, not filed.                                                                                                              | —                                                                                                                       |
| (f) Quilter frontier wiring (kuilt#2177)                                                                           | Next            | Drafted, not filed.                                                                                                              | —                                                                                                                       |
| (g) Writerside and sample rewrite, and the ORMap guard                                                             | Next            | Drafted, not filed.                                                                                                              | —                                                                                                                       |

## Outside an epic

| Item                                                                                                                                                              | Status          | Summary                                                                                                                                                | bee waits on it                                                                                                          |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| [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 | A spec-critical engine change that departs from the issue's suggested fix; needs Iain's review before merge.                                           | —                                                                                                                        |
| [session: the RoomHost contract doesn't say whether onRoom ends when its connection tears](https://github.com/tractat-us/kuilt/issues/3129)                       | In flight       | The tear signal bee needs to close a claims session when its learner leaves (bee#23). Slice 1, the conformance suite, is in review.                    | [ClaimTable: drop duplicate log entries through kuilt's ClientSessionTable](https://github.com/tractat-us/bee/issues/23) |
| [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            | Found in bee#39. bee works around it with a decorator, so it doesn't wait on the fix.                                                                  | —                                                                                                                        |
| [Quilter drops a delta or FullState over the seam's payload budget without a word](https://github.com/tractat-us/kuilt/issues/3144)                               | Next            | bee hit it on its board link in #38, and works around it with WireBudget for now.                                                                      | —                                                                                                                        |
| [WebSocket installs take no frame bound, so one header can allocate 2 GiB](https://github.com/tractat-us/kuilt/issues/3145)                                       | Next            | Found in the review of bee#42. bee works around it in the host's socket gate, so it doesn't wait on the fix.                                           | —                                                                                                                        |
| [Server looms accept a WebSocket handshake from any web page: no Origin or Host check](https://github.com/tractat-us/kuilt/issues/3146)                           | Next            | bee checks Origin and Host itself since bee#51, so it doesn't wait on the fix.                                                                         | —                                                                                                                        |
| [Quilter: a caller can't wait until its own write is acknowledged](https://github.com/tractat-us/kuilt/issues/3147)                                               | Next            | Quilter.mutate doesn't return its sequence number, so bee counts writes against universalAckFlow instead. Filed as kuilt#3147 and named in #38's KDoc. | —                                                                                                                        |
| [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            | A spoke that joins mid-stream sees another spoke's edits only at the next anti-entropy round.                                                          | —                                                                                                                        |
| [Relay: attest each record's author by the connection that first delivered it](https://github.com/tractat-us/kuilt/issues/3149)                                   | Next            | Behind bee#60 and bee#64; needed before a second person or a keyed agent attaches, and bee states the limit for v1.                                    | —                                                                                                                        |
| [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            | bee moved itself to 3.6.1 in #69, so it doesn't wait on this.                                                                                          | —                                                                                                                        |
