|
1 | 1 | # 92-gap-backlog |
2 | 2 |
|
3 | | -> **Last Updated**: 2025-12-14 (Round 10) |
| 3 | +> **Last Updated**: 2025-12-14 (Round 13) |
4 | 4 |
|
5 | 5 | ## Status Summary |
6 | 6 |
|
|
9 | 9 | - Browser WASM tests: 10/10 PASS |
10 | 10 | - E2E sync tests: ALL PASS |
11 | 11 |
|
| 12 | +--- |
| 13 | + |
| 14 | +## Recent Progress (Rounds 10-13) |
| 15 | + |
| 16 | +### Round 10: CI Infrastructure |
| 17 | +- ✅ GitHub Actions CI workflow (`.github/workflows/zig-tests.yaml`) |
| 18 | +- Automated native tests on Linux and macOS |
| 19 | +- WASM build verification |
| 20 | + |
| 21 | +### Round 11: Performance Infrastructure |
| 22 | +- ✅ Statement caching infrastructure (`zig/src/stmt_cache.zig`) |
| 23 | +- Generic cache with configurable capacity |
| 24 | +- Reset-on-schema-change support |
| 25 | +- Foundation for query optimization |
| 26 | + |
| 27 | +### Round 12: Multi-tab Web Architecture |
| 28 | +- ✅ SharedWorker coordinator (`zig/browser-test/src/SharedWorkerCoordinator.ts`) |
| 29 | +- ✅ Provider worker (`zig/browser-test/src/ProviderWorker.ts`) |
| 30 | +- ✅ DbClient interface (`zig/browser-test/src/DbClient.ts`) |
| 31 | +- ✅ Multi-tab test infrastructure (`zig/browser-test/tests/multi-tab.spec.ts`) |
| 32 | +- Web Locks for exclusive provider access |
| 33 | +- RPC interface (exec, query) |
| 34 | +- OPFS storage integration ready |
| 35 | + |
| 36 | +### Round 13: Oracle Validation Foundation |
| 37 | +- ✅ C oracle harness scaffolding (`zig/harness/c-oracle/`) |
| 38 | +- ✅ esbuild bundling configuration (`zig/browser-test/esbuild.config.mjs`) |
| 39 | +- Foundation for cross-validating Zig extension against C reference |
| 40 | + |
| 41 | +--- |
| 42 | + |
12 | 43 | ## Completed Items (Rounds 1-9) |
13 | 44 |
|
14 | 45 | ### ✅ SQLite API Scaffolding |
|
35 | 66 | ### 1. Performance Optimizations |
36 | 67 | **Source**: `research/zig-cr/11-performance-hotspots.md` |
37 | 68 | **Priority**: Medium |
38 | | -**Status**: Not started |
| 69 | +**Status**: Infrastructure complete, integration pending |
39 | 70 |
|
40 | | -- [ ] Statement caching for frequently-used queries (union query, clock writes) |
| 71 | +- [x] Statement caching infrastructure (`zig/src/stmt_cache.zig`) |
| 72 | +- [ ] Integrate stmt_cache into union query generation |
| 73 | +- [ ] Integrate stmt_cache into clock writes |
41 | 74 | - [ ] Schema version invalidation caching (`PRAGMA schema_version`) |
42 | 75 | - [ ] `PRAGMA data_version` check amortization (per-transaction flag) |
43 | 76 | - [ ] Prepared statement persistence (`SQLITE_PREPARE_PERSISTENT`) |
|
54 | 87 | ### 3. Multi-tab Web Architecture |
55 | 88 | **Source**: `research/zig-cr/96-proposal-multitab-wasm-sqlite-crsqlite.md` |
56 | 89 | **Priority**: High (for production web use) |
57 | | -**Status**: Not started |
| 90 | +**Status**: Core infrastructure complete |
58 | 91 |
|
59 | | -- [ ] SharedWorker coordinator for provider election |
| 92 | +- [x] SharedWorker coordinator for provider election (`zig/browser-test/src/SharedWorkerCoordinator.ts`) |
| 93 | +- [x] Web Locks for exclusive provider access |
| 94 | +- [x] RPC interface (exec, query) (`zig/browser-test/src/DbClient.ts`) |
| 95 | +- [x] Provider worker (`zig/browser-test/src/ProviderWorker.ts`) |
| 96 | +- [x] Browser test coverage for multi-tab scenarios (`zig/browser-test/tests/multi-tab.spec.ts`) |
60 | 97 | - [ ] Service Worker fallback for environments without SharedWorker |
61 | | -- [ ] Web Locks for exclusive provider access |
62 | | -- [ ] RPC interface (exec, query, subscribe) |
| 98 | +- [ ] Subscribe/reactive queries in RPC interface |
63 | 99 | - [ ] OPFS storage integration (`opfs-sahpool` VFS) |
64 | 100 | - [ ] Provider migration safety (idempotent writes) |
65 | | -- [ ] Browser test coverage for multi-tab scenarios |
66 | 101 |
|
67 | 102 | ### 4. C Test Harness (Oracle Validation) |
68 | 103 | **Source**: `research/zig-cr/10-test-oracle.md` |
69 | 104 | **Priority**: Medium |
70 | | -**Status**: Not started |
| 105 | +**Status**: Scaffolding complete |
71 | 106 |
|
72 | | -- [ ] Build harness to load Zig `.so`/`.dylib` via `sqlite3_load_extension()` |
| 107 | +- [x] Build harness scaffolding (`zig/harness/c-oracle/`) |
| 108 | +- [ ] Load Zig `.so`/`.dylib` via `sqlite3_load_extension()` in harness |
73 | 109 | - [ ] Run original C tests (`core/src/*.test.c`) against Zig extension |
74 | 110 | - [ ] Validate byte-for-byte codec compatibility |
75 | 111 |
|
76 | 112 | ### 5. Cross-platform Packaging & CI |
77 | 113 | **Source**: `research/zig-cr/93-phased-execution-proposal.md` (Phase 7) |
78 | 114 | **Priority**: Medium |
79 | | -**Status**: Partial (local builds work) |
| 115 | +**Status**: CI complete, packaging pending |
80 | 116 |
|
81 | | -- [ ] GitHub Actions CI for Zig extension (Linux x86_64/aarch64) |
| 117 | +- [x] GitHub Actions CI for Zig extension (`.github/workflows/zig-tests.yaml`) |
| 118 | + - Linux x86_64 native tests |
| 119 | + - macOS arm64 native tests |
| 120 | + - WASM build verification |
82 | 121 | - [ ] macOS universal binary (aarch64 + x86_64) |
83 | 122 | - [ ] Windows `.dll` build |
84 | 123 | - [ ] iOS/Android static embedding guide |
|
0 commit comments