diff --git a/roadmap.md b/roadmap.md index bf9d82e..5efe6dc 100644 --- a/roadmap.md +++ b/roadmap.md @@ -3,17 +3,18 @@ | Phase | Focus | Why now? | Key deliverables | | --------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | **1. 2025-Q2 – “Bedrock”** | Migrations + CI baseline | We’ve landed versioned migrations and removed runtime column hacks – ensure it stays solid. | • CI job runs `cargo test` + `cargo sqlx migrate run --dry-run` | -| **2. 2025-Q2** | Leaner FTS maintenance | Per-row triggers don’t scale past ~100 k files. | • Replace triggers with “dirty” flag + periodic rebuild
• Benchmark on 100 k files | -| **2.1 2025-Q2** (adjunct) | Dirty-row FTS + CI | Prep for both scale and live-watcher—avoid full rebuilds on every change. | • `scan --dirty` reindexes only files whose SHA-256 hash has changed | -| **2.2 2025-Q2** | Live file watching | Offer a true “working-dir” mode—auto-scan on FS events, zero manual rescans. | • New `marlin watch [dir]` subcommand using `notify` crate
• Incremental scans on create/delete/modify/rename events | -| **2.3 2025-Q2** | Self-pruning backups | Instant protection and bounded storage—no manual snapshot cleanup. | • `marlin backup --prune ` flag
• Hook post-scan (when rows change) to auto-prune to latest 10
• Daily cron/automation to keep last 7 | -| **3. 2025-Q3** | Content hashing & dedup | Detect duplicates, enable future integrity checks. | • SHA-256 in `files.hash`
• `scan --rehash` option | -| **4. 2025-Q3** | Tag aliases / canonicals | Control tag sprawl before users accumulate thousands. | • `canonical_id` enforcement
• `tag alias add|ls|rm` CLI | -| **5. 2025-Q4** | Search DSL v2 | Power users want grouping, boolean ops, quoted phrases. | • Replace ad-hoc parser with `nom` grammar
• Unit-tested examples | -| **6. 2025-Q4** | Attribute templates | Structured metadata unlocks real workflows. | • `templates` + `template_fields` tables
• Validation on `attr set` | -| **7. 2026-Q1** | Dolphin read-only plugin | Browse tags/attrs inside the default file manager. | • Qt sidebar showing metadata | -| **8. 2026-Q1** | Full edit UI | After read-only proves stable, add editing. | • Tag editor widget, attribute dialog | -| **9. 2026-Q2** | Multi-device sync | Final frontier: optional sync/replication layer. | • Choose between rqlite / Litestream / bespoke
• Read-only mode for network mounts | +| **2. 2025-Q2** | Leaner FTS maintenance | Per-row triggers don’t scale past ~100 k files. | • Replace triggers with “dirty” flag + periodic rebuild
• Benchmark on 100 k files | +| **2.1 2025-Q2** (adjunct) | Dirty-row FTS + CI | Prep for both scale and live-watcher—avoid full rebuilds on every change. | • `scan --dirty` reindexes only files whose SHA-256 hash has changed | +| **2.2 2025-Q2** | Live file watching | Offer a true “working-dir” mode—auto-scan on FS events, zero manual rescans. | • New `marlin watch [dir]` subcommand using `notify` crate
• Incremental scans on create/delete/modify/rename events | +| **2.3 2025-Q2** | Self-pruning backups | Instant protection and bounded storage—no manual snapshot cleanup. | • `marlin backup --prune ` flag
• Hook post-scan (when rows change) to auto-prune to latest 10
• Daily cron/automation to keep last 7 | +| **3. 2025-Q3** | FTS5 content indexing | Extend beyond path/tags/attrs to full file bodies for true on-disk search. | • Add `files.content` column
• New migration to include `content` in `files_fts`
• Update triggers to populate it | +| **4. 2025-Q3** | Content hashing & dedup | Detect duplicates, enable future integrity checks. | • SHA-256 in `files.hash`
• `scan --rehash` option | +| **5. 2025-Q3** | Tag aliases / canonicals | Control tag sprawl before users accumulate thousands. | • `canonical_id` enforcement
• `tag alias add|ls|rm` CLI | +| **6. 2025-Q4** | Search DSL v2 | Power users want grouping, boolean ops, quoted phrases. | • Replace ad-hoc parser with `nom` grammar
• Unit-tested examples | +| **7. 2025-Q4** | Attribute templates | Structured metadata unlocks real workflows. | • `templates` + `template_fields` tables
• Validation on `attr set` | +| **8. 2026-Q1** | Dolphin read-only plugin | Browse tags/attrs inside the default file manager. | • Qt sidebar showing metadata | +| **9. 2026-Q1** | Full edit UI | After read-only proves stable, add editing. | • Tag editor widget, attribute dialog | +| **10. 2026-Q2** | Multi-device sync | Final frontier: optional sync/replication layer. | • Choose between rqlite / Litestream / bespoke
• Read-only mode for network mounts | --- @@ -30,4 +31,3 @@ * **Local-first** – every feature must work offline. * **Zero manual migrations** – shipping code *is* the migration. * **Instrumentation first** – every new command logs trace spans and timings. -```