thePR0M3TH3AN e9b9606c9a Clarify saved_views naming and add note on deferred tag aliases
* Rename `views` table references to `saved_views` for consistency.
* Update migration step 3 to create `saved_views` instead of `views`.
* Add a note that tag aliases (`canonical_id`) are deferred to DP-006 (v1.5).
* Ensure all PRAGMA statements (`foreign_keys`, `journal_mode=WAL`) apply to every migration.
* Adjust ER diagram section to reflect `saved_views` entity and its relationship.
2025-05-18 22:02:28 -04:00
2025-05-14 16:32:08 -04:00
2025-05-18 16:02:48 -04:00
2025-05-18 21:28:05 -04:00
2025-05-18 21:28:05 -04:00
2025-05-18 16:02:48 -04:00
2025-05-14 15:10:34 -04:00
2025-05-14 17:51:17 -04:00
2025-05-18 21:28:05 -04:00
2025-05-18 16:02:48 -04:00
2025-05-18 21:28:05 -04:00
2025-05-18 14:25:38 -04:00

Marlin ― Delivery Roadmap v3.2

Engineeringready revised 20250518

Legend△ engineering artefact✦ uservisible deliverable


0 · Methodology primer  (what “Done” means)

Theme Project ruleofthumb
Branching Trunkbased. Feature branch → PR → 2 reviews → squashmerge.
Spec first Each epic begins with a Design Proposal (DPxxx) in /docs/adr/ containing schema diffs, example CLI session, perf targets.
Coverage Tarpaulin gate ≥ 85% on lines touched this sprint (checked in CI).
Perf gate Coldstart P95 ≤ 3 s on 100k files unless overridden in DP. Regressions fail CI.
Docs CLI flags & examples land in README.md same PR. Docs tables (CLI cheatsheet, TUI keymap) are autogenerated during the build.
Demo Closing each epic yields a ≤2min asciinema or GIF in docs/demos/.

1 · Birdseye table (engineering details + deliverables)

Phase / Sprint Timeline Focus & Rationale ✦ Key UX Deliverables △ Engineering artefacts / tasks Definition of Done
Sprint0 — Bootstrap & CI Baseline 2025Q2
(now → 30 May)
CI scaffolding, coverage, crate split • Split repo into libmarlin (core) + cli-bin + tui-bin
• Tarpaulin coverage + Hyperfine perf jobs wired
build.rs renders CLI cheatsheet from commands.yaml
• Docs / cheatsheet autogen step in GitHub Actions
cargo test --all passes with coverage gate ≥ 85%; docs artefacts appear in build; crates compile.
Sprintα — Bedrock & Metadata Domains 31 May → 13 Jun 2025 Lock schema v1.1, first metadata objects • CLI stubs: marlin link / coll / view
marlin demo interactive tour
DP001 Schema v1.1 (ER + migration scripts)
• Unit tests (escape_fts, determine_scan_root)
• GitHub Action for SQL dryrun
100% migrations green; demo prints ; logo badge shows schema version.
Epic1 — LiveWatch Mode & Backup Prune 2025Q2 Continuous indexing via FS events; backups never explode marlin watch <dir> (inotify / FSEvents)
backup --prune N (autoprune pre and postcommand)
DP002 filewatch lifecycle & debounce strategy
• Changetable schema storing dirty file IDs
• Nightly prune CI job
8h stresswatch alters 10k files → <1% missed; backup dir size ≤ N; watch CPU idle <3%.
Epic2 — Dirtyscan optimisation 2025Q2 Reindex only paths marked dirty by watch table scan --dirty • Reuse changetable from watch; Hyperfine benchmark script committed Dirtyscan runtime ≤15% full scan on 100k corpus; bench job passes.
Phase3 — Content FTS + Annotations 2025Q3 Grep snippets, inline notes search -C3 grepstyle context
annotate add/list
DP004 contentblob strategy (inline vs exttable)
syntect highlight PoC
Indexes 1GB corpus ≤30min; snippet CLI golden tests pass.
Phase4 — Versioning & Deduplication 2025Q3 Historic diffs, SHA256 dedupe scan --rehash
version diff <file>
DP005 hash column + Bloomdedupe research Diff on 10MB file ≤500ms; duplicate sets emitted by CLI.
Phase5 — Tag Aliases & Semantic Booster 2025Q3 Tame tag sprawl; start AI hints tag alias add/ls/rm
tag suggest, summary
DP006 embeddings size & kNN search bench 95% alias lookups resolved in one hop; suggest query ≤150ms.
Phase6 — Search DSL v2 & Smart Views 2025Q4 AND/OR, ranges, structured grammar; smart folders • New nom grammar
• Legacy parser behind --legacy-search (warn on use)
DP007 BNF + 30acceptance strings
• Lexer fuzz tests (cargofuzz)
Old queries keep working; 0 panics in fuzz run ≥1M cases.
Phase7 — Structured Workflows & Templates 2025Q4 State graph, relationship templates state set/log
template apply
DP008 workflow tables & YAML template spec
• Sample template e2e tests
Create template, apply to 20 files → all attrs/link rows present; illegal transitions blocked.
Phase8 — TUIv1 + Lightweight Integrations 2026Q1 Keyboard UI, VS Code sidebar marlintui binary (tiling panes, keymap)
• Readonly VS Code sidebar
DP009 TUI redraw budget & keymap
• Crate split fully consumed
TUI binary ≤2MB; scroll redraw ≤4ms; VS Code extension loads index.
Phase9 — Dolphin Sidebar (MVP) 2026Q1 Peek metadata inline in KDE Dolphin • Qt/KIO sidebar DP010 DB/IP bridge (DBus vs UNIX socket)
• CMake packaging script
Sidebar opens ≤150ms; passes KDE lint.
Phase10 — Full GUI & Multidevice Sync 2026Q2 Visual editor + optional sync backend • Electron/Qt hybrid explorer UI
• Select & integrate sync (LiteFS / Postgres)
DP011 sync backend tradestudy
• Busytimeout/retry strategy for multiwriter mode
CRUD roundtrip <2s between two nodes; 25 GUI e2e tests green.

2 · Feature crossmatrix (quick lookups)

Capability Sprint / Phase CLI / GUI element Linked DP
Crate split & docs autogen S0
Tarpaulin coverage gate S0
Watch mode (FS events) Epic1 marlin watch . DP002
Backup autoprune Epic1 backup --prune N
Dirtyscan Epic2 scan --dirty DP002
Grep snippets Phase3 search -C3 … DP004
Hash / dedupe Phase4 scan --rehash DP005
Tag aliases Phase5 tag alias commands DP006
Search DSL v2 Phase6 new grammar, --legacy-search flag DP007
Relationship templates Phase7 template new/apply DP008
TUI v1 Phase8 marlintui DP009

3 · Milestone acceptance checklist

Before a milestone is declared shipped:

  • Spec DPxxx merged with schema diff, ASCIIcast demo
  • Tests Tarpaulin ≥85% on changed lines; all suites green
  • Perf guard script passes on CI matrix (Ubuntu 22, macOS 14)
  • Docs autoregenerated; README & cheatsheet updated
  • Demo asciinema/GIF committed and linked in release notes
  • Release tag pushed; Cargo binary uploaded to GitHub Releases

4 · Next immediate actions

# Task Owner Due
1 Crate split + CI baseline @alice 26May 25
2 Tarpaulin + Hyperfine jobs @bob 26May 25
3 DP001 Schema v1.1 draft @carol 30May 25
4 backup prune CLI + nightly job @dave 05Jun 25
Description
Your Personal Digital Librarian
Readme MIT 62 MiB
Languages
Rust 89.9%
Shell 10.1%