-
Notifications
You must be signed in to change notification settings - Fork 0
Plan save ux and next
Current — the latest status report. Reports freeze once published; corrections appear in later reports.
date: 2026-07-29 slug: save-ux-and-next title: Save discoverability, new-note persistence E2E, and post-v0.1 follow-ups
v0.1.0 closed with a full validation loop (Playwright, client-bundle guard, real web filesystem, desktop build). Dogfooding immediately exposed product gaps:
-
Save is hard to find. After New Note, the file is created on disk with
a stub
# New Note, but further edits require Save. The control is an icon-only floppy button (aria-label/ tooltip "Save (⌘S)") — no visible "Save" text. Users who create a note cannot see how to keep edits. -
E2E covers create OR save, not create → edit → save → reload.
persistence.spec.tscreates a note and asserts it opens; another test edits an existing seeded file and saves. The journey a human just failed is untested. -
Dataset/SQL install failed in Tauri when the open folder lacked
sample-data.csv/sample-events.jsonl. Playwright now locks install when those files exist in the workspace (uncommittede2e/data.spec.ts); welcome still assumes demo files live in every workspace. - Sidebar is a flat markdown list; users want tree + sort + in-file search.
- Definition of Done is Playwright-only; a final agent-browser pass is still manual discipline, not scripted.
-
Branch protection still does not require CI checks on
main.
| Step | What happens |
|---|---|
| Open Folder | Sets workspace; New Note / Synthesize enable. |
| New Note | Immediately writeFiles untitled-<timestamp>.md with # New Note\n\n, selects it. |
| Edit | WYSIWYG updates rawMarkdown via turndown on every change. |
| Save | Toolbar floppy icon or ⌘S / Ctrl+S → writeFile(filePath, rawMarkdown). Status: Saving… / Saved / Save failed. |
| No path | Save is a no-op (if (!filePath) return) — welcome doc before any file is selected cannot be saved. |
Immediate (build now): make Save discoverable, add the missing E2E, land the dataset/SQL Playwright coverage already drafted, leave everything else as open follow-ups so the roadmap is not empty again.
-
(P1) Make the Save control discoverable Icon-only Save is why a user can create a note and not see how to keep edits. Show a visible "Save" label (or text button) next to the icon; keep ⌘S / Ctrl+S; keep the live status region (Saving… / Saved / Save failed). Accessible name must stay matchable as /^Save/.
-
(P1) E2E: create a new note, edit, save, reload — content survives Open folder → New Note → type a unique marker in the editor → click Save (assert write 200) → full page reload → open the same untitled-* note → marker present. Locks the path the human just could not complete by eye. Extend e2e/persistence.spec.ts (or adjacent).
-
(P1) Land Playwright coverage for dataset/SQL install Commit e2e/data.spec.ts and aligned seed (public/demo-shaped sample-data / sample-events): welcome datasets show rows without error banners; welcome JOIN returns rows; two-table JOIN in a real note; missing source surfaces an error (not a silent empty table).
-
(P2) Welcome / demo datasets resolve when the open folder is not Motion In Tauri, opening an arbitrary project folder leaves welcome pointing at sample-data.csv / sample-events.jsonl that are not in that folder → red "Failed to load dataset" and SQL catalog errors. Fix options: ship demo fixtures as app resources with a known source path, or degrade welcome demo blocks when files are missing with a clear "demo data not in this workspace" message and no false Catalog Error.
-
(P2) Sidebar: directory tree view alongside flat markdown list Flat list of all .md files is useful; also need a tree of directories so large workspaces are navigable. Toggle or split pane acceptable.
-
(P2) Sidebar: sort by name or date Default name is fine; date (mtime) helps "what did I touch last?". Persist the choice in local UI state for the session at minimum.
-
(P2) Search inside file contents (grep/glob UX) Filename search already works. Add content search: query + optional glob, results list with path + line snippet, open file on select. Prefer workspace jail APIs (no shelling out from the webview); web can use server-side walk, desktop Tauri command.
-
(P2) Agent-browser final pass in Definition of Done Keep Playwright as the CI hard gate. Add bin/agent-pass.sh (or documented agent-browser dogfood steps) and a DoD line in Agents.md/CLAUDE.md: before handoff, run agent-browser against localhost welcome + one real workspace. Not required in CI (flake risk).
-
(P3) Require branch protection on main for verify + rust checks Human/ops: GitHub branch protection requiring the CI jobs
typecheck, guards, unit, e2eandcargo test + clippy. Until then anyone can merge red. Document exact check names from a green run. -
(P2) Write or update design docs for post-v0.1 dogfood work and publish to wiki Refresh
docs/designs/current_design_doc.md(and code walkthrough if flows changed) for Save label, new-note persistence, dataset/SQL install E2E, and synthesis as shipped. Publish via the wiki pipeline so https://github.com/SpillwaveSolutions/motion/wiki/Design-Doc matchesdocs/. -
(P2) Update user guide for current behaviour and publish to wiki Save is a labeled button (not icon-only); create → edit → save → reload works; dataset/SQL install behaviour and known gaps (demo files only in workspaces that contain them). Publish User-Guide wiki page from
docs/user_guide/user-guide.md. -
(P2) Keep README feature list and known limitations current README.md Features + Known limitations must match shipped behaviour (blocks round-trip, desktop build, demo SQL, labeled Save, Synthesize). This is the public feature list; do not leave fixed bugs listed as open limitations.
- Replacing Playwright with agent-browser in CI.
- Full redesign of the toolbar.
- Real ImageGen backend (already scoped elsewhere historically).
- A person can create a note, see how to save, save, and find the content after reload.
- Playwright proves that path and the dataset/SQL install path.
- Follow-ups exist as open work items on the roadmap (not only chat history).
- Design docs, user guide, and README feature list match the product; wiki pages are published from those sources.
- CLAUDE.md / AGENTS.md require unit + Playwright E2E for every feature (policy).
- Index-Releases
- Latest snapshot: Roadmap-2026-07-28_v0.1.0-release
- Index-Status
- Index-Decisions