Verify rich/raw editor mode and command-capsule discoverability #18

Open
opened 2026-09-13 13:34:44 +00:00 by kayg · 6 comments
Owner

Request and current status

User previously opened a document in raw mode without a discoverable switch back. Implementation may exist; exact delivered behavior must be verified.

Acceptance

Correct fresh/reopened mode. Discoverable two-way command including commands capsule. Preserve edits/source/selection across switches; verify keyboard and accessibility.

Keep open until the user-facing outcome is verified in a delivered build. Source review or a successful build alone is not completion.

## Request and current status User previously opened a document in raw mode without a discoverable switch back. Implementation may exist; exact delivered behavior must be verified. ## Acceptance Correct fresh/reopened mode. Discoverable two-way command including commands capsule. Preserve edits/source/selection across switches; verify keyboard and accessibility. Keep open until the user-facing outcome is verified in a delivered build. Source review or a successful build alone is not completion.
Author
Owner

Bounded QA plan (not executed): launch a disposable note in fresh and reopened states; identify the rich/raw control and commands capsule; toggle both directions via pointer and keyboard; verify accessibility name/shortcut, text/source/selection continuity, and an edit survives mode switches.

Current blocker: the synthetic timeline route can launch but does not provide a token-materialized note/editor target. The Design review child has not navigated through the current driver path. No acceptance claim is made.

Bounded QA plan (not executed): launch a disposable note in fresh and reopened states; identify the rich/raw control and commands capsule; toggle both directions via pointer and keyboard; verify accessibility name/shortcut, text/source/selection continuity, and an edit survives mode switches. Current blocker: the synthetic timeline route can launch but does not provide a token-materialized note/editor target. The Design review child has not navigated through the current driver path. No acceptance claim is made.
Author
Owner

QA route update — this bounded 6ca85 run verified only sidebar selection. No mounted editor selection or visible image/HR caret was available, so there is no new result for image anchor/caret affinity. Evidence: .agents/native-break/sidebar-live-9153/6ca85-foreground/RESULT.md.

QA route update — this bounded 6ca85 run verified only sidebar selection. No mounted editor selection or visible image/HR caret was available, so there is no new result for image anchor/caret affinity. Evidence: `.agents/native-break/sidebar-live-9153/6ca85-foreground/RESULT.md`.
Author
Owner

Root source audit at integration 9e3a64b6: mode discoverability is implemented, runtime acceptance pending.

AppCommandCatalog defines editor.mode.rendered (Show Rendered Editor) and editor.mode.raw (Show Markdown Source). CapsuleCommandFeature routes the mode-appropriate command through active editor session. CalternalApp also supplies Toggle Rendered / Raw Markdown. installLoadedSource selects rendered unless renderingIssue returns an error; invalid/unclosed frontmatter or code fence preserves source via raw mode. setMode is gated on loaded, interactive, noncomposing session and prepares registry selection transfer before mounting.

Next: VM QA must demonstrate both capsule commands with real active-note focus, source preservation through a two-way switch, valid fresh/reopen default, and honest invalid-source error recovery. This source read is not a delivered interaction pass. No product change in this audit; #18 remains open.

Root source audit at integration 9e3a64b6: mode discoverability is implemented, runtime acceptance pending. AppCommandCatalog defines editor.mode.rendered (Show Rendered Editor) and editor.mode.raw (Show Markdown Source). CapsuleCommandFeature routes the mode-appropriate command through active editor session. CalternalApp also supplies Toggle Rendered / Raw Markdown. installLoadedSource selects rendered unless renderingIssue returns an error; invalid/unclosed frontmatter or code fence preserves source via raw mode. setMode is gated on loaded, interactive, noncomposing session and prepares registry selection transfer before mounting. Next: VM QA must demonstrate both capsule commands with real active-note focus, source preservation through a two-way switch, valid fresh/reopen default, and honest invalid-source error recovery. This source read is not a delivered interaction pass. No product change in this audit; #18 remains open.
Author
Owner

Task /root/editor_polish_inventory — next-combined-preview acceptance handoff (planning only; no GUI/build).

Already established: source audit at 9e3a64b6 found the two command-catalog routes and mode-appropriate capsule behavior. No mounted VM interaction has run.

Remaining VM checks, owned by /root on the next exact combined build: open the valid disposable note fresh and after restart and require rendered mode by default. Place a distinctive selection/caret, use the capsule command “Show Markdown Source”, verify exact Markdown and mapped selection, make a small raw edit, then use “Show Rendered Editor” by capsule/keyboard and verify rendered content, selection, save, and reopen. Confirm command names, accessibility, shortcuts, and mode-appropriate availability. In a snapshotted copy only, create an invalid/unclosed construct, require honest raw/error recovery with source preserved, repair it, and return to rendered mode. Keep #18 open.

Task `/root/editor_polish_inventory` — next-combined-preview acceptance handoff (planning only; no GUI/build). Already established: source audit at `9e3a64b6` found the two command-catalog routes and mode-appropriate capsule behavior. No mounted VM interaction has run. Remaining VM checks, owned by `/root` on the next exact combined build: open the valid disposable note fresh and after restart and require rendered mode by default. Place a distinctive selection/caret, use the capsule command “Show Markdown Source”, verify exact Markdown and mapped selection, make a small raw edit, then use “Show Rendered Editor” by capsule/keyboard and verify rendered content, selection, save, and reopen. Confirm command names, accessibility, shortcuts, and mode-appropriate availability. In a snapshotted copy only, create an invalid/unclosed construct, require honest raw/error recovery with source preserved, repair it, and return to rendered mode. Keep #18 open.
Author
Owner

User report 2026-09-15 (bc3ace0): clicking the ⋯ block button also shows the formatting toolbar. Required model: distinct TEXT-EDITING mode (caret/text selection → formatting toolbar allowed) vs BLOCK mode (block selected via unfocused click / handle / ⋯ → no formatting toolbar). Multi-block formatting is done from the right Inspector like Craft (Format tab: Titles / Content / Groups / inline styles / lists / decorations / color / font), not from the floating toolbar.

User report 2026-09-15 (bc3ace0): clicking the ⋯ block button also shows the formatting toolbar. Required model: distinct TEXT-EDITING mode (caret/text selection → formatting toolbar allowed) vs BLOCK mode (block selected via unfocused click / handle / ⋯ → no formatting toolbar). Multi-block formatting is done from the right Inspector like Craft (Format tab: Titles / Content / Groups / inline styles / lists / decorations / color / font), not from the floating toolbar.
Author
Owner

Implemented on branch wave19/block-editor-craft, commit 1de08bd.

#18: BlockEditorView now exposes explicit text/block modes with modeDidChangeNotification and a host callback; whole-block selection paths enter block mode, text editing/double-click/typing return to text mode, Esc promotes a text caret to its current block, and formatting UI is gated to non-empty text selections. NoteEditorSession mirrors the mode for Inspector consumers.

#12: Standalone image blocks no longer receive the paragraph hover slide used for text blocks. Native attachment geometry remains stable; block handle and actions are placed in the leading/trailing gutter outside the image when possible.

Proof: Scripts/build-mbp.sh block-editor-craft package succeeded (existing Swift actor-isolation warnings only). Craft visual references captured locally: craft-editor-reference.png and craft-image-hover-reference-3.png (the latter shows gutter controls without image deformation).

Implemented on branch wave19/block-editor-craft, commit 1de08bd. #18: BlockEditorView now exposes explicit text/block modes with modeDidChangeNotification and a host callback; whole-block selection paths enter block mode, text editing/double-click/typing return to text mode, Esc promotes a text caret to its current block, and formatting UI is gated to non-empty text selections. NoteEditorSession mirrors the mode for Inspector consumers. #12: Standalone image blocks no longer receive the paragraph hover slide used for text blocks. Native attachment geometry remains stable; block handle and actions are placed in the leading/trailing gutter outside the image when possible. Proof: Scripts/build-mbp.sh block-editor-craft package succeeded (existing Swift actor-isolation warnings only). Craft visual references captured locally: craft-editor-reference.png and craft-image-hover-reference-3.png (the latter shows gutter controls without image deformation).
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-macos#18
No description provided.