Files
Marlin/roadmap.md
thePR0M3TH3AN e6d22ba605 update
2025-05-15 17:14:40 -04:00

37 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Heres a slimmed-down, re-organized roadmap that groups related work into bigger milestones, highlights key deliverables (including a “demo” command and grep-style context snippets), and stages integrations for maximal developer velocity:
| Phase / Sprint | Timeline | Focus & Rationale | Key Deliverables |
| ---------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| **Sprint α: Bedrock & Metadata Domains** | **2025-Q2 (now6/01)** | Stabilize core schema, migrations, CI, and introduce the first metadata domains **with discoverability**. | - **CI:** `cargo test` + SQL migration dry-run coverage<br>- **Migrations:** |
* `links(src,dst,type)`
* `collections(name)+collection_files`
* `views(name,query)`<br>- **CLI stubs** for `marlin link|unlink|list|backlinks`, `marlin coll`, `marlin view`<br>- **`marlin demo`** command that walks you through a mini-drive-by tutorial of link/coll/view flows |
\| **Epic 1: Scale & Reliability** | **2025-Q2** | Prototype “dirty-row” FTS to avoid per-row triggers, benchmark at 100 k files, and shore up CI for edge cases. | - Dirty-flag + `scan --dirty` reindex only changed rows<br>- Replace per-row triggers with periodic FTS rebuild<br>- End-to-end benchmarks on \~100 k files<br>- CI tests for dirty-scan edge-cases |
\| **Epic 2: Live Mode & Self-Pruning Backups** | **2025-Q2** | Automate continuous indexing & backup hygiene so Marlin “just works” in a real workspace. | - `marlin watch [dir]` via `notify` crate (create/modify/delete/rename)<br>- `backup --prune <N>` flag + post-scan auto-prune to latest N<br>- Daily/pr-merge auto-prune automation in CI |
\| **Phase 3: Content FTS & Annotations** | **2025-Q3** | Go beyond metadata—index file bodies, provide grep-style context, and add annotation support. | - New `files.content` column + migration<br>- Extend `files_fts` to include `content` and emit context snippets (`-C` style)<br>- `annotations` table + FTS triggers<br>- CLI: `marlin annotate add|list` |
\| **Phase 4: Versioning & Deduplication** | **2025-Q3** | Enable history, diffs, and duplicate detection with content hashing. | - Compute & store `files.hash` (SHA256)<br>- `scan --rehash` to refresh hashes<br>- CLI: `marlin version diff <file>` to show changes between revisions |
\| **Phase 5: Tag Aliases & Semantic Enhancements** | **2025-Q3** | Tame tag sprawl and seed AI-powered suggestions via embeddings. | - Enforce `canonical_id` on `tags`; CLI: `marlin tag alias add|ls|rm`<br>- `embeddings` table + `scan --embed` to generate vectors<br>- CLI: `marlin tag suggest`, `marlin summary <file>`, `marlin similarity scan` |
\| **Phase 6: Search DSL v2 & Smart Views** | **2025-Q4** | Offer a robust query grammar and “virtual folders” powered by views. | - Swap ad-hoc parser for a `nom`-based grammar with `AND`, `OR`, parentheses, wildcards…<br>- CLI: `marlin view save|list|exec` with aliases and pagination |
\| **Phase 7: Structured Workflows** | **2025-Q4** | Unlock full task, state, reminder & event workflows directly on files. | - `templates` + `template_fields` + validation engine<br>- CLI:
* `marlin state set|transitions add|state log`
* `marlin task scan|task list`
* `marlin remind set <file> <ts> "<msg>"`
* `marlin event add <file> <date> "<desc>"` + `marlin timeline` |
\| **Phase 8: Lightweight Integrations** | **2026-Q1** | Surface Marlin inside your editor/terminal before diving into a full GUI. | - **VSCode & terminal UI extension**: file-tree sidebar showing tags/attrs/links/annotations |
\| **Phase 9: Dolphin Sidebar Plugin (MVP)** | **2026-Q1** | Prototype a read-only Qt sidebar for Linux file managers—peek metadata without leaving your file browser. | - Qt plugin showing tags, attributes, links, and annotations alongside files |
\| **Phase 10: Full Edit UI & Multi-Device Sync** | **2026-Q2** | Ship an in-place metadata editor and optional sync layer for distributed workflows. | - Tag & view editors, task/reminder/event dialogs in GUI<br>- Choose/implement sync backend (rqlite, Litestream or custom) for optional read-only remote mounts |
---
### Why this order?
1. **Lock down core schema & domains** (links, collections, views) **with a “demo” helper** so users can explore right away.
2. **Scale & CI** unlocks safe indexing at volume, then
3. **Live mode & auto-prune** keep your index fresh without manual steps.
4. **Content FTS + annotations** builds on an efficient, reliable plumbing layer—youll love grep-style context snippets.
5. **Versioning & semantic layers** ride atop a stable full-text index and annotation system.
6. **Advanced queries & workflows** expand power users toolsets before branching into GUIs and sync.
This grouping ensures every new layer rests on a solid, tested foundation—maximizing both developer speed and user delight.