thePR0M3TH3AN 83eaf6fe6e Clean up build artifacts and update .gitignore for Rust project
Remove unnecessary build artifacts from the target directory, including various fingerprint files and cached information. Update the .gitignore to ensure these files are not tracked in the future, streamlining the project and reducing clutter.
2025-05-20 22:58:11 -04:00
2025-05-14 16:32:08 -04:00
2025-05-20 14:38:51 -04:00
2025-05-18 16:02:48 -04:00
2025-05-14 15:10:34 -04:00
2025-05-20 15:18:49 -04:00
2025-05-18 21:28:05 -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

CLI Cheatsheet

The full command reference is generated during the build of the CLI. See docs/cli_cheatsheet.md.

Description
Your Personal Digital Librarian
Readme MIT 62 MiB
Languages
Rust 89.9%
Shell 10.1%