@@ -9,17 +9,28 @@ If you're asking "what's left?" start here:
99 - Specs: ` effect-native/.specs/ `
1010 - Packages: ` effect-native/packages-native/ `
1111
12- ## Current Status (2025-12-22 )
12+ ## Current Status (2025-12-23 )
1313
14- ** MVP is complete:**
14+ ** Zig parity is essentially complete:**
1515- Oracle parity: 18/18 passing
1616- Cross-open parity: 24/24 passing
1717- rows_impacted: 18/18 passing
1818- ALTER tests: 6/6 passing
1919- Cross-platform compat: ALL passing
20+ - Resurrection parity: 25/25 passing
21+ - Sentinel parity: 6/6 passing
22+ - Multinode sync: 6/6 passing
23+ - Savepoint sync: 16/16 passing
24+ - ATTACH CRR: 15/15 passing
25+ - Site ID collision: 13/13 passing
26+ - Trigger CRR: 31/31 passing
27+ - VACUUM CRR: 17/17 passing
28+ - Wide table: 13/13 passing (64-col limit fixed, now 2000)
29+ - Schema mismatch: 11/12 passing (1 intentional divergence)
2030- Browser tests: 30/30 passing (includes sqlite-vec, FTS5, JSONB)
2131- Mesh tests: 81/81 passing
2232- TypeScript: clean
33+ - ** Test scripts: 63 total**
2334
2435** Scratchpad demos work:**
2536- ` bun run scratch/bun-scratchpad/index.ts ` — CR-SQLite with bun: sqlite
@@ -30,28 +41,34 @@ If you're asking "what's left?" start here:
3041
3142## Remaining Backlog
3243
33- ** 8 parallelizable test tasks ** ready for pickup (gap analysis 2025-12-22):
44+ ### Needs Decision (1 item)
3445
35- | Task | Test File | Priority |
36- | ------| -----------| ----------|
37- | TASK-161 | ` test-resurrection-parity.sh ` | HIGH |
38- | TASK-166 | ` test-sentinel-parity.sh ` | HIGH |
39- | TASK-170 | ` test-fk-crr.sh ` | HIGH |
40- | TASK-172 | ` test-error-handling.sh ` | HIGH |
41- | TASK-173 | ` test-schema-mismatch.sh ` | MEDIUM |
42- | TASK-174 | ` test-partial-sync.sh ` | HIGH |
43- | TASK-177 | ` test-default-merge.sh ` | HIGH |
44- | TASK-179 | ` test-multinode-sync.sh ` | HIGH |
46+ | Task | Summary | Blocker |
47+ | ------| ---------| ---------|
48+ | ** TASK-186** | Schema mismatch: unknown column behavior | Design decision: error vs ignore |
4549
46- All 8 can run simultaneously (no file conflicts).
50+ Current divergence: When source has column destination doesn't know:
51+ - Zig: ERROR (strict)
52+ - Rust/C: IGNORED (lenient)
4753
48- Plus 8 lower-priority items in triage :
49- - TASK-175: Savepoints, TASK-176: ATTACH, TASK-178: VACUUM
50- - TASK-180: Site ID collision, TASK-181: crsql_sha(), TASK-182: Triggers
51- - TASK-183: Wide tables, TASK-156: Linux CI
54+ Options :
55+ 1 . Align with Rust/C (ignore) — maximizes compatibility
56+ 2 . Keep strict (error) — catches schema drift early
57+ 3 . Make configurable — ` crsql_config_set('ignore-unknown-columns', 1) `
5258
53- Other:
54- - Effect-TS scratchpad (spec-gated) — see ` .wishes/blocked-on-tom/effect-bun-scratchpad.md `
59+ ### Low Priority (1 item)
60+
61+ | Task | Summary | Notes |
62+ | ------| ---------| -------|
63+ | ** TASK-156** | Linux CI parity | CI-only, not blocking local dev |
64+
65+ ### Blocked on Tom (TypeScript)
66+
67+ See ` .wishes/blocked-on-tom/ ` :
68+ - Effect-TS scratchpad (spec-gated)
69+ - Implementation-agnostic spec suite
70+ - Browser spec naming
71+ - Upstream feedback scope
5572
5673## Rules of the game (thing-golf)
5774
0 commit comments