R0 — Redesign V1: from form to focused thinking tool (parent)
Triage label: ready-for-agent
Children: R1–R15 (this issue tracks them)
Problem Statement
Nodepad's V0 interface presents a rich model — fourteen Note Types, Relationships, three arrangements, and quiet AI — as a single vertically-stacked settings form in one ~760px column. The thinker scrolls past a workspace switcher, a capture box, AI configuration, and search before reaching their Notes, each of which shows ~11 controls at rest. The three arrangements that are the product's premise sit behind a plain toggle below the fold. It reads as a prototype, not a place to think.
Solution
A full visual and structural overhaul that keeps the durable SQLite model, the domain language, and the local-first privacy posture unchanged, and changes how the thinker meets them: a three-pane shell with a workspace rail, a spatial canvas of Notes at the centre, a persistent capture bar, calm Notes whose controls reveal on demand, the three views promoted to first-class peers, and AI kept to a whisper. Built on the Modernist visual system (flat, architectural, Archivo, 2px rules, zero radius, single red accent).
User Stories
- As a thinker, I want to open a Workspace and land inside it — a canvas of my Notes filling the frame — so that thinking feels like a place, not a form.
- As a thinker, I want to capture a thought from anywhere at any time, so that momentum is never broken.
- As a thinker, I want each Note to show the thought first and its controls only when I reach for them, so that reading is not drowned by machinery.
- As a thinker, I want to arrange and connect Notes by hand on a canvas, so that spatial memory does some of the work of thinking.
- As a thinker, I want the three arrangements to be equal, first-class views, so that I can read the same Notes the way that suits the moment.
- As a thinker, I want AI to work in the background and surface suggestions I can accept or ignore, so that I stay in control of the space.
- As a maintainer, I want the overhaul delivered as thin, decision-complete slices over the existing durable seam, so that smaller models can implement each safely.
Implementation Decisions
- Six phases, fifteen slices. A: app shell & layout (R1–R3). B: the Note, calmed (R4–R5). C: spatial canvas (R6–R8). D: views as peers (R9–R10). E: quiet AI (R11–R13). F: navigation & polish (R14–R15).
- No model rewrite. Every slice reads and writes the existing
thinkingWorkspace command surface. Only R6 adds a durable column (Note canvas position) with a numbered migration.
- Ship A→F in order. Phase A alone retires the "one long form" problem before any new capability lands.
- Visual system: Modernist. Every surface uses its tokens/classes; no invented colors, type, spacing, or radius.
Testing Decisions
Test seam. The single durable seam is the thinkingWorkspace client (src/workspace-client.ts) over the Rust command surface; the React section/view components are tested at that seam, mirroring the existing note-views.test.ts, graph-view.test.tsx, and *-controller.test.ts prior art. Prefer the existing seam; do not open new ones. Each child slice carries its own focused tests at that seam. This parent adds no tests of its own.
Out of Scope
Any change to the durable schema beyond R6's position column; any change to AI prompt contracts (Prompt A / Prompt B); any new provider; long-form composition; mobile or web targets. The redesign is presentation and interaction only.
Further Notes
Sequence and dependencies are shown in Nodepad Design Review (the design-review document this parent was derived from). Cross-references between children use R-numbers; replace them with real issue numbers at publish time.
R0 — Redesign V1: from form to focused thinking tool (parent)
Problem Statement
Nodepad's V0 interface presents a rich model — fourteen Note Types, Relationships, three arrangements, and quiet AI — as a single vertically-stacked settings form in one ~760px column. The thinker scrolls past a workspace switcher, a capture box, AI configuration, and search before reaching their Notes, each of which shows ~11 controls at rest. The three arrangements that are the product's premise sit behind a plain toggle below the fold. It reads as a prototype, not a place to think.
Solution
A full visual and structural overhaul that keeps the durable SQLite model, the domain language, and the local-first privacy posture unchanged, and changes how the thinker meets them: a three-pane shell with a workspace rail, a spatial canvas of Notes at the centre, a persistent capture bar, calm Notes whose controls reveal on demand, the three views promoted to first-class peers, and AI kept to a whisper. Built on the Modernist visual system (flat, architectural, Archivo, 2px rules, zero radius, single red accent).
User Stories
Implementation Decisions
thinkingWorkspacecommand surface. Only R6 adds a durable column (Note canvas position) with a numbered migration.Testing Decisions
Test seam. The single durable seam is the
thinkingWorkspaceclient (src/workspace-client.ts) over the Rust command surface; the React section/view components are tested at that seam, mirroring the existingnote-views.test.ts,graph-view.test.tsx, and*-controller.test.tsprior art. Prefer the existing seam; do not open new ones. Each child slice carries its own focused tests at that seam. This parent adds no tests of its own.Out of Scope
Any change to the durable schema beyond R6's position column; any change to AI prompt contracts (Prompt A / Prompt B); any new provider; long-form composition; mobile or web targets. The redesign is presentation and interaction only.
Further Notes
Sequence and dependencies are shown in
Nodepad Design Review(the design-review document this parent was derived from). Cross-references between children use R-numbers; replace them with real issue numbers at publish time.