--- 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]} ``` %%