Files
goodbuddy/docs/features/magic-notes/progress.md
T
mesalogo a8d1dbc11f
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
fix: give notes and todos dedicated workspace layouts
Replace the crowded note sidebar with a card overview and full note detail. Keep tasks in a stable split view with source content and AI comments, compact header navigation, and search-adjacent status filters. Preserve drafts and return context.

Validation: 93 focused tests, typecheck, lint, and isolated Electron renderer checks passed. Full suite was interrupted; renderer probes used in-memory APIs.

Release note: Notes now open from a card overview, while todos keep a stable task list beside their details. Compact view and filter controls leave more room for reading and editing.
2026-09-18 21:22:58 +08:00

111 lines
7.3 KiB
Markdown

# Magic Notes Progress
## 2026-09-18: Stable Todo Split View and Header Navigation
- Supersedes the inline task expansion described in the earlier entry below.
Wide containers now keep the grouped task list on the left and instructions,
source and AI in one right detail pane. Narrow containers retain the mounted
list and offer on-demand detail with an explicit return. Source-note return
preserves task context. Header tabs precede New note; filters follow search.
- Focused workspace, editor and shared-primitives suites passed all 93 tests.
`npm run typecheck` and targeted ESLint passed. No full `npm test` was run.
- Reused the temporary Electron renderer probe at 1280x820, 600x760,
600x520 dark and 420x640. The 134x36 header switch precedes New note at all
four sizes. Search/filter share a row at 1280 and 600; filters wrap at 420.
The wide list's width, top, scroll and adjacent row coordinates remain equal
before and after task selection/switching. Narrow returns preserve nonzero
list scroll and restore focus. No horizontal overflow or console errors.
- Also verified source-note round trips at all sizes, actual Quill draft
confirmation, note-card return, AI visibility, task completion/status filters,
AI fixture results, creation and Chromium keyboard activation.
- Visible-window capture initially failed with Electron `UnknownVizError`.
Final probe uses Electron offscreen rendering at scale 1, pointer input and
Chromium DevTools keyboard input. It runs production React/Quill/CSS with
in-memory API fixtures, not the full App/Main/SQLite/model path. Model calls: 0.
Evidence remains under the temporary `opencode` directory in
`magic-notes-render-results.json` and `magic-todos-*-expanded.png`.
## 2026-09-18: Independent Todo Task View
- Replaced todo full-page navigation with a grouped task list and one inline
expansion for instructions, source content and AI comments. Completion works
directly in each row. Search/status controls stay above the scrolling list;
source-note navigation retains expansion, filters and initiating focus.
- Kept the note-card overview and note editor/AI layout. Notes/To-dos PageTabs
now size to their contents at desktop and narrow widths. Source failures offer
an inline retry alongside the existing notification.
- Focused command: `npx vitest run src/renderer/src/MagicNotesWorkspace.test.tsx src/renderer/src/MagicNoteEditor.test.tsx src/renderer/src/WorkspacePrimitives.test.tsx`:
93 tests passed. `npm run typecheck` and ESLint on the workspace, its tests and
both changed locale modules passed. Full `npm test` was not rerun, as requested.
- Reused the isolated Electron renderer probe at requested content sizes
1280x820, 600x760, 600x520 (dark) and 420x640. All four todo views retained
18 tasks, inline expansion, independently scrolling lists and no horizontal
overflow or detail/AI sidebar. Tabs measured approximately 133x35 CSS pixels.
Note-card navigation, actual Quill draft confirmation, AI visibility, source
navigation, direct completion, status filters and inline AI fixture output passed;
the renderer reported no console errors.
- The probe uses production React, Quill and CSS with in-memory API fixtures and
isolated Electron sessions; it does not validate Main/SQLite or a live model.
Model calls: 0. Scripts, screenshots and JSON results remain in the existing
temporary `opencode/magic-notes-render-*` probe location.
## 2026-09-18: Card Overview and Detail Navigation
- Replaced the persistent inner list with a responsive card overview and explicit
detail navigation. Search, todo filters, overview scroll and initiating focus
survive a round trip. Creation opens the new note; todo source navigation returns
to the todo overview. Back navigation protects entry and title drafts.
- Kept AI visibility and resizing preferences, removed obsolete list resizing,
and capped stacked AI height so short windows retain usable editor space.
- Focused workspace, editor and shared UI suites passed 90 tests. Typecheck and
full lint passed. The first full test invocation exceeded its 200-second limit.
- Isolated Electron rendering exercised the actual workspace, Quill and CSS at
1280x820, 600x760, 600x520 (dark), and 420x640. Navigation, creation, todo-source
jumps, draft confirmation, AI visibility, scroll and focus restoration passed.
These checks used in-memory API fixtures, not Main/SQLite integration; no real
model calls were made. Canvas functionality is outside this layout change.
## 2026-09-17: Note List Action Menu
- Moved pin/unpin and whole-note deletion from the editor header to each note's
action menu, following the [UI design system](../../../UI-DESIGN.md#137-魔法笔记).
The menu uses existing update/delete IPC and shared destructive confirmation.
- Added regression coverage for menu keyboard behavior, portal placement,
dismissal, pin ordering, revision failures, deletion and retained drafts.
- The focused Magic Notes suite passed 42 tests. The combined Magic Notes,
conversation and shared-primitives suites passed 332 tests. Typecheck and
targeted ESLint passed.
- Full `npm test`: 370 files and 4,440 tests passed, 2 files and 3 tests failed,
9 files and 67 tests skipped. Two heartbeat migration fixtures relabel a current
database as an old version and fail on the existing `pinned` column. One
OpenCode runtime-reuse request timed out; its two tests passed on isolated rerun.
- Full lint reported 22 `document` no-undef errors in the unrelated, untracked
`docs/features/story-graph/demo.js`. No unrelated files were changed to resolve
these validation failures. Interactive Electron and touch verification remain
unperformed.
## 2026-09-15: Automatic External Refresh
- Implemented the shared-database notification and Main/preload subscription
described in [technical design](./technical-design.md).
- The open workbench reloads external changes while retaining current selection
and unsaved drafts. Deleted notes and edited entries retain drafts with an
explicit explanation. The cancelled manual-refresh proposal is not implemented.
- An initial completed `npm test` run passed 357 files and 4,201 tests, with
9 files and 67 tests skipped (680.45 seconds). The first invocation had exceeded
the command tool's 120-second limit.
- After three additional renderer race/retry tests, the final `npm test` run
reported 355 files and 4,202 tests passed, 9 files and 67 tests skipped, and two
unrelated timeout failures: the large offline dependency inventory test in
`tests/agent-package.test.ts` (60 seconds), and the two-project OpenCode case in
`src/main/agent/local-runtime-reuse.test.ts` (40-second request timeout).
- Rerunning those two files together passed 24 tests with one skipped in
103.71 seconds, without source or timeout changes. The final renderer/preload
focused run also passed all 38 tests. No Magic Notes regression failed.
- `npm run typecheck` and `npm run lint`: passed. The new required subscription
method is also present in the application test API fixture.
- Validation uses production SQLite and Agent/MCP gateway code, the production
preload with mocked Electron transport, and renderer interaction tests. An
interactive Electron window was not exercised. No deployed Agent code or
desktop-to-Agent protocol changed, so no separate Linux Host scenario applies.