80 Commits

Author SHA1 Message Date
Marcos Paulo c78fd488cc feat: registry core (model, guard, verify, store, net, install, commands), registry browser UI, signing tool, size profile and font dedupe, lazy Hebrew/Arabic fonts, htmlmd/srs/textdiff crates
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 17:28:10 -03:00
Marcos Paulo eb1245bd20 fix: tab switch freeze (unlinked scan off the UI thread); assistant: vault MCP wiring, preamble, wrapping choices, presets; 23 grammars incl. Twig; Tasks query, Templater include, icon picker
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 13:36:33 -03:00
Marcos Paulo 179a5cdc47 feat: task recurrence rules, tp.date and durations, Lucide icon catalogue and decor snapshot (MiniMax M3.1 Flash)
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 10:23:34 -03:00
Marcos Paulo 22b43c1254 feat: task-line parser, Templater segmenter, icon/banner property resolver (MiniMax M3.1 Flash)
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 07:03:19 -03:00
Marcos Paulo b9d21de5b2 feat: Bases tab with the Table view, popovers and the Maps tile service
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
.base files open as a tab: view switcher (add, duplicate, rename, delete, reorder), toolbar, status line, a raw-YAML fallback card with the parse-error line; virtualised table (only visible rows painted, pages fetched on demand) with sticky header, sort arrows, resizable columns persisted to columnSize, grouping with counts and folding, summary row, typed cells, links that open notes; Properties popover (search, reorder, formulas), Sort and Group menus and a filter builder that round-trips the docs' expression forms (Bases tasks 14-16, Claude Sonnet). Maps tile service: https-only fetcher with the project User-Agent, 5 s timeout, 256 KiB cap, image/png check, burst 8 then 1 request per second and 2 in flight, disk cache with a 7-day floor and size cap, maps.status / maps.clear_cache / maps.tile commands, maps.* settings off by default, nothing runs while disabled (task 12, MiniMax M3.1 Flash, OpenCode Zen free route). Verified with the full cargo xtask ci on a copy of the working tree (4572 tests, clippy -D warnings, layers, tree, i18n). Gaps: no Summarize menu, no cards/list/map views yet, view edits bypass base.view.*.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 03:54:54 -03:00
Marcos Paulo 224ae2718a feat: index keeps note properties, size and times; base.* engine commands
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Index: frontmatter properties (200 per note, 4 KiB per value, 500 list items, 3 levels), size and times; persistent cache format version 2 (old caches are replaced). Engine: base.list, base.read, base.properties, base.query over the index (limit 200 default, over 2000 is an error), base.write (validated; never replaces an unreadable file), base.create, base.view.add|remove|rename|duplicate|reorder, base.row.set (types.json, one undo step in an open buffer, file.name renames with links; other file.* and formula.* are read-only). Bases tasks 9, 10, 11 (Claude Sonnet). Verified with the full cargo xtask ci on a copy of the tree (4526 tests, clippy -D warnings, layers, tree, i18n). Gaps: no result cache keyed by index generation, no 15k-note perf test, base.row.set writes numbers as 5.0.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 03:23:00 -03:00
Marcos Paulo 7f432138df docs: Obsidian plugin parity research, Bases spec and tasks, empty notescraft-bases crate
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
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>
2026-10-21 00:30:28 -03:00
Marcos Paulo 2e23fd09a1 feat: paste images and files from the clipboard, more image formats, scripts without boxes, code font without ligatures
arboard (image-data) approved for clipboard paste: image bytes become a PNG attachment, copied files inside the vault are linked without copying, outside files are copied; works in Visual and Source. image crate gains jpeg, gif, webp, bmp decoders. Lazy system-font fallbacks for 28 scripts (Bengali, Indic, Thai, CJK, Khmer...) and the math font as last resort. JetBrains Mono copy with calt emptied (SIL OFL, renamed). Big embedded images are shrunk to the texture limit off the UI thread (fixes a crash).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:59:14 -03:00
Marcos Paulo 79b61756d2 feat: Explorer lists every file type with its icon; non-text files open a placeholder card
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
TabKind gains Image, Video, Audio, Pdf, Code, Other; sidecars of existing images are hidden; Settings > Files toggles show_all_types and show_annotation_files. hidden_extensions has no Settings row yet. No viewers for the new kinds yet.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 15:03:48 -03:00
Marcos Paulo 9d20cf3fd4 fix: register the annotate crate in the workspace and the layer map
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
The previous commit added crates/annotate and an engine dependency on it but left out the root Cargo.toml entry, Cargo.lock and the layers table, so that commit did not build by itself.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 14:38:55 -03:00
Marcos Paulo 181aad91e6 feat: sync, accounts, live editing, vault launcher, compact layout
Sync and the server
- crates/sync: revision ledger (stale writers conflict, edit beats delete), client planner, three-way merge, conflict names, path and hash gates
- apps/notescraft-sync-server: pairing, device tokens, change log with long poll, blobs, accounts with many vaults, roles, invites, audit log, quota, GC, readiness, request ids
- server history (revisions, restore, retention), chunked resumable uploads, live editing endpoints (SSE rooms, presence, flush through the ledger)
- engine: HttpRemote, sync_once, SyncWorker, sync.* commands, share.* and server.* commands, live session client, note.capture, vault catalog and vaults.* commands

Editing together
- crates/collab: operational transformation core (TextOp, transform, client state machine, room, presence)
- ui-egui: Settings > Sync, sync pill, conflicts, Share dialog, live pill and remote carets, launcher Connect and Join flows

App shell
- vault launcher (desktop and phone layouts) wired into the app host (--launcher, File > Vaults...)
- compact (phone) layout with a bottom tab bar

Verified with cargo xtask ci (fmt, clippy -D warnings, workspace tests, layers, tree, i18n). Android and iOS shells are not built: the build machine has no NDK or Xcode.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 07:46:24 -03:00
Marcos Paulo 302164b7ed feat: RTL reading view, note composer commands, round 3 audit tasks
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Right-to-left rows (unicode-bidi, owner approved): whole-line ordering, right alignment, system
Hebrew/Arabic fallback fonts. Engine commands note.extract and note.merge (assistant gate: writes,
merge also needs allow_delete). Round 3 tasks 25-30 added to specs/obsidian-basics/tasks.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:54:38 -03:00
Marcos Paulo 5e8020aa38 feat: Obsidian basics, editor previews, graph rework, query blocks, stacked tabs, pop-out windows
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Editor previews (colour swatches, arrows, embeds), the 18 obsidian-basics tasks (find and replace
with regex, back/forward, auto-pair, footnotes, folding, search operators, split view, PDF/audio/
video embeds, spelling, drag and drop, pinned tabs, settings) and round 2: ```query blocks, stacked
tabs, pop-out windows, tasks ticked inside embeds, text around an embed, embeds that follow edits,
block menu shortcut. New crates: notescraft-regex (linear-time engine) and notescraft-syntax.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 11:21:19 -03:00
Marcos Paulo 15d7f5e873 feat: editor blocks and lint, vault knowledge, calendar plugin, macOS menu
- notescraft-lint (rules, safe fixes, learned style) and notescraft-blocks (block model and edits); engine lint.* and block.* commands with CLI and MCP parity
- Lint tab, underlines, slash menu with preview in Source and Visual, block grip and menu, Settings > Editor and lint, Vim block keys
- Visual view: tables, note embeds, %% comments, wrapping property chips
- Vault knowledge (Related tab, assistant sources, Settings) and calendar plugin
- Sidebar top padding fixed, dot grid follows PaperCraft spacing, right-card tabs no longer cover the collapse button

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 12:36:00 -03:00
Marcos Paulo 9cd5f6cf70 wip: assistant overhaul (codex part) 2026-10-16 21:09:00 -03:00
Marcos Paulo cd43ea488e feat: notescraft-lottie player crate, egui lottie_icon painter, icon_sheet review example, first icon animation set
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 19:42:57 -03:00
Marcos Paulo 2609923f84 chore: register the notescraft-lottie crate skeleton (L0)
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 19:23:31 -03:00
Marcos Paulo d381884ae1 feat(i18n): move all UI copy into the i18n catalogue (252 keys); i18n --strict joins ci
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 16:28:43 -03:00
Marcos Paulo 7db396618e feat(release): packaging for macOS, Windows and Linux; app icon; xtask version/ico; plain launch reopens the last vault or asks for a folder; --version
Packaging lint / lint (push) Has been cancelled
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
Packaging is ported from the Craft family (effectcraft): DMG built and smoke-tested on
macOS aarch64, MSI/deb/rpm scripts adapted, thin release.yml and packaging-lint.yml callers.
rfd 0.17 added (native folder dialog; same version the other Craft apps use).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 12:48:09 -03:00
Marcos Paulo 4806209761 feat: whiteboard upgrade (.draw format, zoom bar, layers, SVG export) and vault-only engine exports
Whiteboard: zoom bar and dot grid, layers panel, appear motion, sound cues, focus rings
and AccessKit labels; .draw files with legacy .excalidraw still readable;
notescraft-cli export whiteboard.

Security: export.pdf and file.export_whiteboard_svg accept vault-relative out paths only
(they are reachable by the assistant and the control channel). The CLI places absolute
--out files itself via the new notescraft_engine::render_pdf; the UI export worker renders
and the live session writes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 11:12:33 -03:00
Marcos Paulo 82c818bc73 merge wip 2026-10-15 14:36:41 -03:00
Marcos Paulo 83ab501ef2 feat: assistant panel 2026-10-15 14:36:16 -03:00
Marcos Paulo 8ba8beebb3 merge wip 2026-10-15 14:24:24 -03:00
Marcos Paulo be3293a89d feat: properties panel, slash popup, attachment drop 2026-10-15 14:24:17 -03:00
Marcos Paulo 90441ce5da feat: pdf include properties 2026-10-15 12:48:15 -03:00
Marcos Paulo 02136c8078 feat: pdf-export 2026-10-15 02:24:15 -03:00
Marcos Paulo b9a986570a spec: ACP bridge and write gating; scaffold acp (L0) and pdf (L1) crates
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 00:05:44 -03:00
Marcos Paulo 439872d6c3 feat: math-wire 2026-10-14 22:39:13 -03:00
Marcos Paulo 01eada017d wip: math-engine 2026-10-14 20:41:43 -03:00
Marcos Paulo 5a8439933b spec: LaTeX math (item 30), scaffold math crate (L0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 18:06:21 -03:00
Marcos Paulo e2c70edbf1 wip: vim-wire 2026-10-14 17:42:43 -03:00
Marcos Paulo 72026ec7c0 spec: vim mode (item 29), scaffold vim crate (L0)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 14:29:22 -03:00
Marcos Paulo f3a0f7c7c6 feat(ui-egui): sidebar tabs, git source panel (partial)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 08:40:19 -03:00
Marcos Paulo f3f1f51d9e feat(git): git versioning crate and engine commands
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 01:05:06 -03:00
Marcos Paulo 63b74eae59 Wave 10 setup: git crate stub, selection fix, spec items 27-28, prompts
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 00:38:30 -03:00
Marcos Paulo 39d72e88ec fmt after wave 9 merges 2026-10-14 00:34:14 -03:00
Marcos Paulo 874f53f56a Merge branch 'feat/cli-mcp' into develop 2026-10-14 00:32:04 -03:00
Marcos Paulo f893c85a18 feat(cli-mcp): wave 9
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 00:32:04 -03:00
Marcos Paulo e26672c98c feat(engine-plugins): wave 9
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 00:32:04 -03:00
Marcos Paulo ea86d50a03 Merge branch 'feat/cli' into develop 2026-10-14 00:00:21 -03:00
Marcos Paulo ae29caa8cc Merge branch 'feat/mcp' into develop 2026-10-14 00:00:21 -03:00
Marcos Paulo 7a70adc7ac feat(cli): wave 8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 00:00:21 -03:00
Marcos Paulo 50e6ce5ed0 feat(mcp): wave 8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 00:00:21 -03:00
Marcos Paulo cd3d113b91 feat(engine-settings): wave 8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 00:00:20 -03:00
Marcos Paulo bef9c780a3 Wave 8 setup: ui-egui is L6, prompts (editor wiring, graph view, diagrams D, settings, mcp, cli)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 23:26:59 -03:00
Marcos Paulo 154be8d24b feat(ui): animations and pop sounds (motion, synthesised cues, cpal sink)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 21:38:49 -03:00
Marcos Paulo 2feadd9760 feat(ui): PaperCraft visual pass (fonts, icons, sidebar, tabs, cards), offscreen snapshot example
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 21:11:03 -03:00
Marcos Paulo f049b3fb63 Merge branch 'feat/ui-polish' into develop 2026-10-13 20:47:41 -03:00
Marcos Paulo 8e3f79aad8 feat(ui-polish): wave 7
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 20:47:41 -03:00
Marcos Paulo 5036ec2dbb feat(editor): wave 7
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 20:47:40 -03:00