|
2 | 2 |
|
3 | 3 | ## Status |
4 | 4 | - [x] Planned |
5 | | -- [ ] Assigned |
6 | | -- [ ] In Progress |
| 5 | +- [x] Assigned |
| 6 | +- [x] In Progress |
7 | 7 | - [ ] Blocked (reason: ...) |
8 | | -- [ ] Complete |
| 8 | +- [x] Complete |
9 | 9 |
|
10 | 10 | ## Priority |
11 | 11 | high |
@@ -41,15 +41,33 @@ STOP after Phase 2 docs (do not design or implement). |
41 | 41 | - `effect-native/.specs/crsql-mesh-runtime/requirements.md` |
42 | 42 |
|
43 | 43 | ## Acceptance Criteria |
44 | | -- [ ] All requirements use EARS notation. |
45 | | -- [ ] Requirements reference reuse of `@effect-native/crsql` schemas (no duplicate serialization types). |
46 | | -- [ ] `unhex()` requirement is explicit and includes fail-fast behavior (`UnhexUnavailable`). |
47 | | -- [ ] Node runtime requirements explicitly depend on `@effect/platform` capabilities. |
48 | | -- [ ] Each requirements.md has a short “Out of Scope” section aligned with Phase 1. |
| 44 | +- [x] All requirements use EARS notation. |
| 45 | +- [x] Requirements reference reuse of `@effect-native/crsql` schemas (no duplicate serialization types). |
| 46 | +- [x] `unhex()` requirement is explicit and includes fail-fast behavior (`UnhexUnavailable`). |
| 47 | +- [x] Node runtime requirements explicitly depend on `@effect/platform` capabilities. |
| 48 | +- [x] Each requirements.md has a short "Out of Scope" section aligned with Phase 1. |
49 | 49 |
|
50 | 50 | ## Progress Log |
51 | 51 | ### 2025-12-15 |
52 | 52 | - Task created from Tom-approved Phase 2 gate |
53 | 53 |
|
| 54 | +### 2025-12-14 |
| 55 | +- Completed Phase 2 requirements for all four packages |
| 56 | + |
54 | 57 | ## Completion Notes |
55 | | -[fill in when done] |
| 58 | +**Date:** 2025-12-14 |
| 59 | + |
| 60 | +**Summary:** Created Phase 2 `requirements.md` files for the node-first crsql-mesh slice using EARS notation. |
| 61 | + |
| 62 | +**Files Created:** |
| 63 | +1. `effect-native/.specs/crsql-mesh-protocol/requirements.md` - 7 FRs covering schema reuse, unhex() check, message types |
| 64 | +2. `effect-native/.specs/crsql-mesh-transport/requirements.md` - 7 FRs covering interface, in-memory transport, lifecycle |
| 65 | +3. `effect-native/.specs/crsql-mesh/requirements.md` - 12 FRs covering anti-entropy loop, version vectors, change pull/apply |
| 66 | +4. `effect-native/.specs/crsql-mesh-runtime/requirements.md` - 9 FRs covering Node runtime with @effect/platform |
| 67 | + |
| 68 | +**Key Decisions Encoded:** |
| 69 | +- Schema reuse from `@effect-native/crsql/CrSqlSchema` (no duplicate types) |
| 70 | +- `unhex()` fail-fast with `UnhexUnavailable` (FR-PROTO-002) |
| 71 | +- Node runtime depends on `@effect/platform` (FR-NODE-001) |
| 72 | +- InMemoryTransport for testing two-peer sync (FR-TRANS-002) |
| 73 | +- Bun support folded into Node runtime (FR-NODE-009) |
0 commit comments