Skip to content

R0 — Redesign V1: from form to focused thinking tool (parent) #41

Description

@kiran-brahma

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

  1. 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.
  2. As a thinker, I want to capture a thought from anywhere at any time, so that momentum is never broken.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentDecision-complete and ready for an AFK agent

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions