Files
notescraft/ROADMAP.md
T
Marcos Paulo ada48c50c8
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
chore: drop agent-process notes and a debug test from the repo
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 23:01:01 -03:00

6.1 KiB
Raw Blame History

NotesCraft roadmap

Stage: pre-alpha · spec approved 2026-10-13 · phase 0 done · pure crates for phases 1, 2, 6, 7, 8, 9 built; engine in progress

Last updated: 2026-10-14 (after views-wire merge: typed tabs, canvas/whiteboard/graph/settings views, Windows/Linux title bar, redesigned sidebar panels) · Target: Obsidian-compatible vault, native egui, see SPEC.md

One-page summary of where NotesCraft stands. The contract is SPEC.md; the definition of done per feature is its section 12. One PR per phase, each reviewed before merge.

Phases

# Phase Crates Status
0 Foundation workspace, xtask, AGENTS.md, architecture doc done (CI workflow 0.9 and craftrules 0.10 pending)
1 Vault + markdown vault, markdown, testkit vault and markdown done; testkit empty
2 Index + links index, backlinks, diagrams, whiteboard parsers whiteboard done; diagrams done (all 7 kinds, 102 tests); index done (links, tags, search); backlinks done (L2)
3 Engine + app shell engine, ui-egui shell, i18n app shell and read-only views built and the app window opens; engine registry, Session, buffers, 25 commands, search, daily notes, themes and config done (88 tests); craft-settings, plugins and control channel wiring pending; i18n done (47 tests); app shell done (first cut)
4 Editor editor, properties panel, slash menu, image paste, recovery editing, save, autosave, recovery, autocomplete wired; properties panel, slash menu, image paste pending
5 Search, tags, palette search UI, tag tree, command palette, outline, bookmarks, breadcrumbs search tab, tags tab, palette, outline, breadcrumbs done; bookmarks pending; git versioning (Source tab) done
6 Graph graph + renderer graph layout done (525 ms for 5000 nodes); renderer not started
7 Daily notes, calendar, templates, themes templates, themes both crates done; UI not started
8 Canvas, whiteboard, diagrams UI canvas, renderers canvas model done; renderers not started
9 Plugins plugins (wasmi host) host crate and engine bridge done; settings UI lists them; plugin-tool toggles pending
10 MCP, CLI, control channel, assistant panel mcp, notescraft-cli mcp, notescraft-cli and its mcp subcommand done; control channel and assistant panel pending
11 PDF export, packaging, i18n coverage, hardening packaging/, release not started

Implemented so far

15 crates plus the CLI have real code (about 30 000 source lines, about 800 tests): mcp, i18n, engine, backlinks, vault, markdown, index, plugins, canvas, templates, themes, graph, whiteboard, diagrams (flowchart). cargo xtask ci is green on develop. Per-crate API and numbers: docs/ARCHITECTURE.md.

Next up

  1. diagrams ER/gantt/pie part.
  2. Wire the finished views (note view, palette, backlinks, outline) into NotesApp; switch the app to wgpu; then the editor widget (phase 4).
  3. engine: plugins and craft-settings wiring, control channel; mcp and notescraft-cli front ends; then the editor widget, graph and canvas renderers.
  4. Housekeeping: Index::remove_file, README (0.7), CI (0.9), craftrules (0.10), regex dependency decision for search.

Known issues and review findings

  • craft-atomic is the only write path; canvas/whiteboard only produce strings so far (writing is the engine's job).
  • vault: \ is treated as a path separator on every OS, so a file literally named a\b.md cannot be addressed on unix.
  • themes: several Latte colours deviate from stock Catppuccin for contrast (SPEC 8.2 to be updated).
  • Disk: each agent's target/agent-* is about 600 MB; the volume hit 100% once and broke a build (a corrupted incremental cache needed cargo clean -p). Delete agent target dirs after merging.

Phase 0: foundation (ordered tasks)

Goal: an empty but green workspace that enforces the rules in SPEC section 3 before any feature code exists.

# Task Done when Status
0.1 Root Cargo.toml: resolver 3, edition 2024, [workspace.dependencies] with the pinned craft-libs rev and every notescraft-* crate, workspace lints (unsafe_code = "forbid", clippy pedantic) cargo metadata succeeds done
0.2 16 stub crates under crates/ plus apps/notescraft and apps/notescraft-cli, each with package metadata, module doc, #![deny(...)] never-crash lints, one TODO(phase N) and one test cargo test --workspace passes done
0.3 clippy.toml, rustfmt.toml, .cargo/config.toml (xtask alias), .gitignore, licence files cargo fmt --check passes done
0.4 cargo xtask verify: fmt check, clippy -D warnings, test, stops at the first failure green on the empty workspace done
0.5 cargo xtask layers: the L0–L5 dependency rules, no egui below L5, unregistered crate is an error, with unit tests green; rejects a deliberate upward dependency in its tests done
0.6 cargo xtask ci = verify + layers green done
0.7 AGENTS.md and README.md for contributors (never-crash rules, how to add a crate, how to add a command) reviewed done (AGENTS.md, docs/ARCHITECTURE.md, README.md)
0.8 Design reference recorded: PaperCraft project NotesCraft (tokens, 9 screens) linked from the README link present done (README Design section)
0.9 CI workflow running cargo xtask ci on macOS, Linux and Windows green on all three workflow written (.github/workflows/ci.yml), not run: needs the remote, a runner and the CRAFT_LIBS_TOKEN secret
0.10 Reconcile with craftrules standards once the repository is available open question in SPEC section 14 closed pending (craftrules not on disk)

Tasks 0.1–0.6 are committed on phase-0/foundation and merged work continues on develop. 0.9 and 0.10 wait on the owner (remote, CI host, craftrules).

Not started, deliberately deferred

Sync, mobile, publish, version-history diff UI, Bases, built-in model hosting, JS plugin compatibility, web build, TeX rendering, Web Clipper, additional languages. See SPEC section 6.1.