2026-02-23 20:12:10 -06:00

73 lines
4.5 KiB
Markdown

---
kanban-plugin: board
---
# Migration Kanban Board
Last updated: 2026-02-24
## Architecture Lock
- AI remains Python backend (local sidecar/service). C# AI surface is bridge-only (`IAiService` adapter + contracts), not model runtime.
- Non-AI backend migration target remains C# system-of-record (vault/entries/search/fragments/config/transport).
## Doing
- `PH6-001` (Cutover Prep): Keep `migration-gate.ps1` green while running hybrid soak/pilot.
## Ready Next
## Blocked
## Done
- `PH4-009` (DB-001/DB-002): C# SQLCipher runtime parity completed with NuGet packages (`Microsoft.Data.Sqlite.Core`, `SQLitePCLRaw.bundle_e_sqlcipher`) and sidecar DB actions (`db.status`, `db.initialize_schema`, `db.hydrate_workspace`).
- `PH4-010` (DB Cutover slice): Hybrid vault-load now routes DB hydration handoff to C# sidecar action `db.hydrate_workspace` (schema bootstrap + hydration metadata), removing Python-side post-load hydration in hybrid mode.
- `CFG-002` (UX): Settings UI exposes runtime-configurable backend/AI/speech values (backend mode, sidecar path, NLP backend, model endpoints, model names, timeouts, speech engine/device/compute).
- `PH1-001` (DOM-001): Fragment model/service parity with validation + trim behavior.
- `PH1-002` (Persistence): File-backed fragment repository replaces in-memory default.
- `PH1-003` (API-001): Sidecar transport stability with fixture-backed line-delimited JSON envelope tests.
- `PH2-001` (DOM-002): C# `JournalEntry`/`ParsedSection` domain skeleton with smoke coverage.
- `PH2-002` (PAR-001): Date extraction parity for `**Date:**` / `Date:` with file-stem fallback.
- `PH2-003` (PAR-002): Canonical section parsing parity with section content capture.
- `PH2-004` (PAR-003): Checkbox parsing parity with per-section checked state capture.
- `PH2-005` (PAR-004): Fragment block parsing parity (`!TYPE @time #tags` + multiline boundaries).
- `PH2-006` (MRG-001): Merge semantics parity for section updates and fragment de-dup append.
- `PH2-007` (MRG-002): Markdown reconstruction parity (`to_markdown()` equivalent).
- `PH3-001` (VLT-001): Vault crypto format compatibility (`salt + nonce + tag + ciphertext`, AES-256-GCM).
- `PH3-002` (VLT-002): PBKDF2-HMAC-SHA256 compatibility (salt/key size + iterations).
- `PH3-003` (VLT-003): Monthly vault naming parity (`YYYY-MM.vault`).
- `PH3-004` (VLT-004): Load-all-vault workflow parity.
- `PH3-005` (VLT-005): Wrong-password handling parity with no vault-file corruption.
- `PH3-006` (VLT-007): Current-month optimized save path parity.
- `PH3-007` (VLT-008): Full monthly rebuild save flow parity.
- `PH3-008` (DAT-001): Decrypted workspace cleanup parity.
- `PH3-009` (VLT-006): Legacy `_init_vault.vault` compatibility handling.
- `PH4-001` (SCH-001): Entry-content search parity.
- `PH4-002` (SCH-002): Search filter parity (date/section/tag/type/checkbox).
- `PH4-003` (CLI-001): Vault CLI parity actions and password UX.
- `PH4-004` (CLI-002): Search CLI parity actions/options.
- `PH4-005` (CFG-001): Config parity surface for backend/runtime keys.
- `PH4-006` (Hybrid): Route Python app non-AI backend paths (`entries/*`, `vault/*`, `search.entries`) to C# sidecar in `csharp-hybrid` mode.
- `PH4-007` (Hybrid): Add Python CLI fragment commands routed to C# `fragments.*` actions for user-side backend validation.
- `PH5-001` (AI-001): Summarize bridge parity via optional Python sidecar contract.
- `PH5-002` (AI-003): Cloud chat request/response parity via Python sidecar bridge (`ai.chat`).
- `PH5-003` (AI-002): Embeddings parity contract via Python sidecar bridge (`ai.embed`).
- `PH4-008` (API-002): HTTP API parity contract lock completed (`/api/command` envelope + `/health`/`/healthz` + API contract tests).
- `FIX-001` (Global): Shared fixture corpus completed with generated vault binaries + manifest (`fixtures/vaults/manifest.json`) and expanded entry/search cases.
- `HAR-001` (Global): Parity harness expanded to search expected IDs, vault hash matrix, wrong-password invariants, and sanitizer parity with report output.
- `PH5-004` (SPC-001): Speech parity completed with Python-executed speech bridge actions (`speech.devices.list`, `speech.transcribe`) orchestrated by C#.
- `OBS-001` (Observability): Structured redacted logging envelope implemented in C# sidecar (`timestamp`, `level`, `component`, `action`, `correlation_id`, `outcome`) with redaction tests.
## Notes
- Source criteria: `MIGRATION_ACCEPTANCE_CRITERIA.md`
- C# migration path: `journal-master/journal/`
%% kanban:settings
```
{"kanban-plugin":"board","list-collapse":[false]}
```
%%