Commit Graph

3 Commits

Author SHA1 Message Date
BenStullsBets 687f644ee5 feat(ux): unify Ask-Claude-to-Edit on a split-below multi-line webview
Operator feedback iteration on the Ask-Claude input. Replaces the inline
comment-thread box (and the top-center QuickInput before it) with ONE input for
both scopes: a multi-line webview in a split pane below the document.

- New `editInstructionInput.ts` (`promptEditInstruction`): a tall, resizable
  textarea + Send, opened via `newGroupBelow` so it sits under the document, not
  over it. Auto-focused; ⌘↵/Ctrl↵ sends; Esc cancels. Cancel/Esc confirms ONLY
  when there's text to lose (a webview can read its own textarea); closing the tab
  is an explicit dismiss. On submit/cancel the split collapses AND focus is handed
  back to the document, so the bottom panel (Output/Debug Console) no longer pops.
- Selection edits use the same box; the document above keeps the selection
  highlighted (inactive-selection style) so the user sees what Claude will edit —
  the selection is captured before the prompt, never touched.
- Removes the whole inline-comment mechanism: deletes `inlineAsk.ts`
  (InlineAskController), the `cowriting.askClaude.submit`/`.cancel` commands, their
  comment-thread menus, and the Escape keybinding — net deletion. One overridable
  seam `TrackChangesPreviewController.askEditInstruction` (used by editSelection
  and the preview), stubbed by the host E2E.

Sealed webview (INV-8/35): collects text only, no SDK/secret surface, no network.
242 unit + typecheck (src + e2e) + build green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 06:49:57 -07:00
benstull 9432300e3c feat(ux): unify "Ask Claude to Edit" + inline prompt at selection; fix keybindings (#62) 2026-06-26 12:11:43 +00:00
Ben Stull 9c3770d26a #42 (SLICE-1, reach): selection-aware Ask-Claude from editor body + tab
Document-edit flow SLICE-1 (specs/coauthoring-document-edit-flow.md §7.2,
INV-38): make "Ask Claude to Edit" reachable from the editor body AND the
editor tab, selection-aware — a selection routes to editSelection, no
selection to editDocument — both gated to markdown/authorable docs, both
flowing through the single runEditAndPropose path (no divergent edit code).

- package.json: add editSelection + editDocument to editor/context (selection-
  aware, markdown + file/untitled) and editor/title/context (selection-aware,
  resourceLangId == markdown). Markdown-gate the existing editor/context
  editSelection entry to match (its command handler is unchanged; the palette
  still reaches any authorable doc — see transcript Deferred decisions).
- trackChangesPreview.ts: cowriting.editDocument accepts the clicked tab's
  resource Uri (editor/title/context), targeting THAT document (opening it if
  needed) and falling back to the active editor when invoked with no arg —
  mirroring showTrackChangesPreview's #41 clicked-doc resolution.
- E2E (test/e2e/suite/f12Reach.test.ts): menu entries present, selection-aware,
  markdown-gated; editDocument(uri) targets the tab doc not the active editor;
  no-arg falls back to the active editor.
- docs/MANUAL-SMOKE-F12.md: SLICE-1 reach smoke steps.

208 unit + 65/5 host E2E green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 07:26:14 -07:00