You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[x] Schema diff table covers every legacy `INoteCollab` and `IArrowCollab` field.
279
-
-[ ] Every "Done" item has a passing automated test. **VIOLATED.**~15 UI/interaction rows marked "Done" still have "—" in the Test file column. Progress since last evaluation: `useCanvasActions.test.ts` (5 tests), `useCanvasContextMenu.test.ts` (6 tests), `note-geometry.test.ts` (10 tests), `useBoxSelection.test.ts` (6 tests), `arrow-geometry.test.ts` (5 tests), `useSpatialEditing.test.ts` (4 tests) added. `DisplayArrow.test.ts` (12 tests), `DisplayNote.test.ts` (21 tests), `MainToolbar.test.ts` (7 tests), `PageLayout.test.ts` (10 tests), `RecentPagesCard.test.ts` (5 tests), `FavoritePagesCard.test.ts` (5 tests), `SelectedPagesCard.test.ts` (5 tests), `useNoteContextMenu.test.ts` (5 tests) also added. Per-note context menu (12.18) implemented and tested. Remaining gaps: `SpatialPageView.vue` (no component/integration tests), drag/resize end-to-end interaction, arrow creation/reconnection flow, sidebar properties cards.
279
+
- [ ] Every "Done" item has a passing automated test. **VIOLATED.** ~8 UI/interaction rows marked "Done" still have "—" in the Test file column. Progress since last evaluation: `useCanvasActions.test.ts` (5 tests), `useCanvasContextMenu.test.ts` (6 tests), `note-geometry.test.ts` (10 tests), `useBoxSelection.test.ts` (6 tests), `arrow-geometry.test.ts` (5 tests), `useSpatialEditing.test.ts` (4 tests), `NotePropertiesCard.test.ts` (5 tests), `ArrowPropertiesCard.test.ts` (6 tests) added. `DisplayArrow.test.ts` (12 tests), `DisplayNote.test.ts` (26 tests), `MainToolbar.test.ts` (8 tests), `PageLayout.test.ts` (10 tests), `RecentPagesCard.test.ts` (5 tests), `FavoritePagesCard.test.ts` (5 tests), `SelectedPagesCard.test.ts` (5 tests), `useNoteContextMenu.test.ts` (5 tests), `SpatialPageView.test.ts` (13 tests) also added. Per-note context menu (12.18) implemented and tested. Note/Arrow properties cards (12.11/12.12) now expose all major editable fields with tests. Floating UI back/forward nav (12.25) implemented and tested. Remaining gaps: drag/resize end-to-end interaction, arrow creation/reconnection flow, screenshot/user avatars floating UI.
280
280
-[ ] Phase 6 is not declared done until ≥ 80% of rows are **Done**. **NOT MET.** Strict enforcement of the test rule would drop the true "Done" count well below 80%.
-**Left sidebar panels now load real data.**`useUserPageLists` composable wires `GET /api/users/me/pages/recent` and `GET /api/users/me/pages/favorites` into `RecentPagesCard` and `FavoritePagesCard`. Clear handlers call API-backed `clearRecent`/`clearFavorites`.
82
-
-**Right sidebar properties panels exist but lack depth.**`NotePropertiesCard.vue`, `ArrowPropertiesCard.vue`, `PagePropertiesCard.vue`are wired and visible, but many legacy properties (wrap, anchor, z-index, timestamps) are not exposed.
82
+
-**Right sidebar properties panels significantly improved.**`NotePropertiesCard.vue` now exposes all major container properties (spatial, wrapChildren, stretchChildren, forceColorInheritance) plus head/body wrap toggles. `ArrowPropertiesCard.vue`now exposes bodyStyle (solid/dashed/dotted) and readOnly toggle. `PagePropertiesCard.vue` remains basic. All wired through `PageEditorView.vue`.
83
83
-**`MainToolbar.vue` extracted as standalone component.**`PageLayout.vue` now delegates to `MainToolbar.vue` for the header shell. `PageToolbarActions.vue` provides insert note, insert arrow, zoom in/out, and fit-to-screen buttons. Still missing: alignment/formatting buttons, screenshot.
84
84
-**Arrow labels fixed.**`DisplayArrow.vue` now uses `NoteTiptapEditor` on `Y.XmlFragment` instead of raw `<input>`. Proper collaborative rich-text editing.
85
85
-**Arrow geometry and fitToScreen now read actual note heights.**`DisplayNote.vue` publishes `offsetHeight` into a reactive `noteHeights` map via `provideNoteHeights`/`useNoteHeights`. `DisplayArrow.vue` and `useCanvasActions.ts:fitToScreen` read heights from the map instead of hardcoding `80px`.
@@ -89,10 +89,10 @@ A criterion is **not met** until the verification command or check passes in CI.
89
89
-**Arrow geometry partially fixed.**`DisplayArrow.vue` now uses rectangle-edge intersection for `bodyType === 'line'` via `arrow-geometry.ts`. Interregional coordinate transforms and `fakePos`/`looseEndpoint` rendering remain missing.
90
90
-**No `PageElem` abstraction.** Legacy notes and arrows inherit from `PageElem`, sharing selected/active/editing/visible/region state. New code treats them as completely separate types.
91
91
-**`editing` state management implemented.**`useSpatialEditing.ts` tracks which note/arrow is being edited. Escape stops editing; canvas click stops editing; Delete/Backspace is suppressed while editing to avoid deleting selected elements.
92
-
-**Container rendering lacks legacy depth.**`stretchChildren`, `wrapChildren`, `originOffset`, and overflow detection are in the model but not enforced in rendering. Spatial vs non-spatial container distinction is not fully implemented.
92
+
-**Container rendering fully implemented.**`DisplayNote.vue` enforces spatial vs non-spatial layout, `stretchChildren`, and `wrapChildren`. `DisplayNote.test.ts` includes 5 dedicated container layout tests.
93
93
-**`SpatialPageView.vue` refactored.** Keyboard shortcuts extracted to `useSpatialKeyboard.ts`. Box selection, arrow drag, arrow reconnect, and note drag extracted to dedicated composables. Note geometry utilities extracted to `note-geometry.ts`. Canvas actions (double-click, fit-to-screen) extracted to `useCanvasActions.ts`. Context menu handlers extracted to `useCanvasContextMenu.ts`. Component reduced from ~740 lines to ~260 lines.
94
94
-**Selection partially improved.**`bringToTop` zIndex bump on selection is now implemented and tested. Formatting integration across selected editors, active element/region keyboard navigation, and `selectAll` including descendant arrows remain missing.
95
-
-**Missing floating UI:**back/forward nav, screenshot, user avatars on canvas.
95
+
-**Floating UI partially improved.**Back/forward nav buttons added to `SpatialPageView.vue`. Still missing: screenshot, user avatars on canvas.
Copy file name to clipboardExpand all lines: docs/restart-plan/phase-6-spatial-polish.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -130,5 +130,5 @@ Achieve parity with the legacy `/pages/:pageId` immersive spatial canvas experie
130
130
-[x] Per-note context menu (`NoteContextMenu.vue`) implemented with bring-to-front, send-to-back, and delete actions. Tested via `useNoteContextMenu.test.ts` (5 tests).
131
131
-[x]`SpatialPageView.vue` is refactored to avoid god-component anti-pattern. Keyboard shortcuts extracted to `useSpatialKeyboard.ts`; box selection extracted to `useBoxSelection.ts`; arrow drag extracted to `useArrowDrag.ts`; arrow reconnect extracted to `useArrowReconnect.ts`; note drag extracted to `useNoteDrag.ts`; note geometry extracted to `note-geometry.ts`; canvas actions extracted to `useCanvasActions.ts`; canvas context menu handlers extracted to `useCanvasContextMenu.ts`; per-note context menu handlers extracted to `useNoteContextMenu.ts`. Component reduced from ~740 to ~260 lines.
132
132
-[x] Selection implements `bringToTop`. Formatting integration and active element/region navigation remain missing.
133
-
-[] Container rendering enforces `stretchChildren`, `wrapChildren`, and spatial vs non-spatial layout modes.
133
+
-[x] Container rendering enforces `stretchChildren`, `wrapChildren`, and spatial vs non-spatial layout modes. (`DisplayNote.vue` + `DisplayNote.test.ts` 5 container layout tests)
134
134
-[ ] Manual QA session with 3+ users finds no blocking usability issues.
0 commit comments