7f432138df
Inventory of the 29 core plugins (22 done, 2 partial, 5 missing), 80 community plugins with a verdict each, a ranked roadmap with 8 ready briefs, the Bases spec (D1-D13) and 20 tasks, ASCII wireframes of the Bases screens (PaperCraft was not running). crates/bases is registered at layer L2. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
60 lines
5.0 KiB
Markdown
60 lines
5.0 KiB
Markdown
# Inventory: Obsidian core plugins vs NotesCraft (2026-10-21)
|
|
|
|
Sources: `docs/CODE-MAP.md`, crate rustdoc, `ROADMAP.md`, the engine command ids (`CommandSpec::new`),
|
|
`views/`, `panels/`, `views/settings_view/categories.rs` (`core_plugins()` shows only Calendar, Templates,
|
|
Diagrams, Whiteboard as toggleable cards; the rest are always-on features). DONE = usable end to end;
|
|
PARTIAL = part exists; MISSING = nothing.
|
|
|
|
| # | Obsidian core plugin | Status | Where in NotesCraft / gap |
|
|
|---|---|---|---|
|
|
| 1 | Audio recorder | MISSING | SPEC 6.1 defers it. Playback exists (`views/media_view`); no capture (needs a mic crate: owner approval). |
|
|
| 2 | Backlinks | DONE | `crates/backlinks`, `panels/right/backlinks_panel.rs`, `links.backlinks`, unlinked mentions |
|
|
| 3 | Bases | MISSING | Deferred in SPEC 6.1. `query` embeds (obsidian-basics 19) and the Properties view are the nearest. See `bases/spec.md` |
|
|
| 4 | Bookmarks | DONE | `bookmarks.add/list/remove`, `panels/bookmarks_view.rs`, `vault/bookmarks.rs` |
|
|
| 5 | Canvas | DONE | `crates/canvas`, `views/canvas_view`, `slash.canvas` |
|
|
| 6 | Command palette | DONE | `widgets/palette.rs`; everything is an engine command (SPEC 10) |
|
|
| 7 | Daily notes | DONE | `vault/daily.rs`, `crates/templates` (`daily_note_path`), calendar crate, sidebar mini calendar |
|
|
| 8 | File recovery | DONE | `engine/vault/snapshots`, `history.list/read`, `views/versions_view`, git history |
|
|
| 9 | Format converter | MISSING | No importer (Roam/Notion/Evernote/Bear/HTML). Roadmap R7 |
|
|
| 10 | Graph view | DONE | `crates/graph`, `views/graph_view` (forces, colour groups, timelapse, 6.5k notes) |
|
|
| 11 | Note composer | DONE | `note.extract`, `note.merge`, toolbar button, Explorer "Merge into..." |
|
|
| 12 | Outgoing links | DONE | `links.outgoing`, `links.unresolved` |
|
|
| 13 | Outline | DONE | `panels/right/outline.rs` (count, filter, folding, active heading) |
|
|
| 14 | Page preview | DONE | link hover card (`driven_features.rs`), heading/block links |
|
|
| 15 | Properties view | PARTIAL | Per-note editor `views/properties_view` + `note.property_*` done. No vault-wide "All properties" pane (keys, types, counts, rename everywhere): `base.properties` of the Bases spec provides the data |
|
|
| 16 | Publish | DONE (own) | `publish.*` + `apps/notescraft-sync-server/src/publish` (our server, not Obsidian Publish) |
|
|
| 17 | Quick switcher | DONE | palette, headings and blocks |
|
|
| 18 | Random note | DONE | `note.random` |
|
|
| 19 | Search | DONE | `crates/index/search` (BM25, operators, `/regex/`), `search_panel`, vault-wide replace |
|
|
| 20 | Slash commands | DONE | `slash.*`, `builtin/slash_commands.rs`, slash menu with preview |
|
|
| 21 | Slides | MISSING | SPEC 6.1. Roadmap R9 |
|
|
| 22 | Sync | DONE (own) | `crates/sync`, `engine/sync`, `apps/notescraft-sync-server` (not Obsidian Sync) |
|
|
| 23 | Tags view | DONE | `panels/tags_panel.rs`, `tags.list`. No rename/merge (see Tag Wrangler) |
|
|
| 24 | Templates | DONE | `crates/templates`, `template.list`, `slash.template`, `{{title}}/{{date:FMT}}/{{time}}` |
|
|
| 25 | Unique note creator | DONE | obsidian-basics (`note.create` with timestamp name) |
|
|
| 26 | Web viewer | MISSING | No webview by design (AGENTS.md: no Tauri/Electron/webview). A "reader mode" fetch-and-convert is the only honest variant (Web Clipper deferred) |
|
|
| 27 | Word count | DONE | `shell/statusbar.rs` (words, characters, approximate tokens); selection counts partial |
|
|
| 28 | Workspaces | DONE | `workspace.save/load/list/delete`, `engine/vault/workspaces` |
|
|
| 29 | Footnotes view | PARTIAL | Footnote rendering/refs done (`note_view/blocks/footnotes.rs`); no sidebar pane listing a note's footnotes |
|
|
|
|
**Counts: 29 plugins. DONE 22 (two of them own-server equivalents), PARTIAL 2, MISSING 5**
|
|
(Audio recorder, Bases, Format converter, Slides, Web viewer).
|
|
|
|
Also built beyond the Obsidian core list: Calendar (events, recurrence, ICS/Google), Diagrams
|
|
(Mermaid subset), Whiteboard (Excalidraw-compatible `.draw/.excalidraw`), Vault knowledge (RAG), in-app AI
|
|
assistant + MCP, Lint + batch formatter, Git (`git.*`: commit/log/diff/stage, no remotes), Live
|
|
co-editing, Comments/suggestions/mentions/activity, Vim mode, Pop-out windows, Split view.
|
|
|
|
## What plugins can do today (`crates/plugins`, SPEC 7)
|
|
|
|
Wasm (wasmi) modules in `<vault>/.notescraft/plugins/<id>/` with `manifest.json` (commands, permissions
|
|
`vault.read`, `vault.write`, `editor`). Host calls: `log vault_read vault_write vault_list search links
|
|
backlinks active_note insert_text notice now`. Limits: fuel, memory cap, deadline, result size, rate; 3
|
|
failures auto-disable. **No UI contribution (no panel, view, widget, settings), no network, no clock but
|
|
`now`, no selection/cursor API, no event hooks.** Consequences for this roadmap:
|
|
|
|
1. Only *command-style* plugins fit today (run on demand, read notes, write notes or insert text).
|
|
2. Anything with a view (Kanban, Map, Heatmap, Charts, Mind map) is an in-tree feature, optionally behind a
|
|
core-plugin card, until a UI-contribution ABI exists (roadmap P-ABI).
|
|
3. No first-party wasm plugin ships yet; the first one (roadmap item 6) doubles as the SDK proof.
|