The empty-state create surface can now launch the claude CLI in a…#217
Merged
Conversation
…#1985)
* [US-001] Section Open with AI menu into Desktop and Terminal groups
Add 'Desktop' and 'Terminal' section labels to OpenInAgentMenuContent. Installed app launchers sit under Desktop; the docked-terminal launcher sits under Terminal as a 'Claude' row whose accessible name stays 'Claude CLI' (WCAG 2.5.3). The separator renders only when both sections are present.
Export OpenInAgentMenuContent so its DOM test can resolve it. The terminal-row test's SKIP_IN_CI 'render anomaly' was actually a missing export plus the autoOpen prop removed in #1945, not a CI-only issue; restore the export, drop the dead prop, and let the test run in CI. Extend both handoff DOM tests for the section labels and gating, and regenerate the Lingui catalogs for the new strings.
* [US-002] Section Open-in-Agent submenus into Desktop and Terminal groups
Apply the section layout established for the header menu to the two
sibling Open-in-Agent submenus.
- OpenInAgentContextSubmenu (file-tree right-click, DropdownMenuSub*):
add a Desktop DropdownMenuLabel over installed agents and a Terminal
label over the CLI row; the separator renders only when both sections
are present.
- OpenInAgentEmptySpaceSubmenu (sidebar empty space, ContextMenu*): same
treatment with ContextMenuLabel/ContextMenuSeparator. The
hide-entire-submenu early-return is rewritten in terms of the section
flags with identical behavior.
The CLI row visible text changes from 'Claude CLI' to 'Claude'; its
accessible name stays 'Claude CLI' (WCAG 2.5.3), and the existing
data-testids plus No-workspace hint behavior are unchanged. Catalogs
regenerated (only new source-location references; no new strings). DOM
tests extended in both files for both-sections-present, per-section
gating, and the terminal launch path.
* [US-003] Add empty-state Terminal Claude CLI launch row
Bring the empty-state create composer to parity with the Open-in-Agent
menus: the chevron dropdown now groups the agent-selection items under a
Desktop label and, on desktop hosts, adds a Terminal section with a
Claude row that launches the docked-terminal CLI.
- Call useTerminalLaunch() and gate the Terminal section on a non-null
launcher (absent on the web host). The separator renders only when both
the Desktop and Terminal sections are present.
- The Claude row builds its handoff input with buildCreateHandoffInput,
the same builder the app Create button uses, so the CLI launch carries
the typed brief and scenario with no new prompt logic. It is disabled
when the input is null (workspace unresolved) and does not write the
preferred agent, keeping select-default and launch distinct.
- Visible text is 'Claude'; the accessible name stays 'Claude CLI' (WCAG
2.5.3). Catalogs regenerated (only new source-location references; no
new strings).
Add CreatePromptComposer.dom.test.tsx covering both-sections rendering,
web-host gating, the launch path carrying the typed brief, the disabled
no-launch case, and that Desktop items still select the default.
* [US-004] Add changeset for empty-state Claude CLI launch + menu sectioning
Release-notes changeset ("@inkeep/open-knowledge": patch) covering the new
empty-state "Terminal -> Claude" CLI launch row (parity with "Open with AI")
and the Desktop/Terminal sectioning of the Open-in-Agent menus and create
composer dropdown.
* docs(prd-7139): spec for empty-state Claude CLI launch + menu sectioning
* fixup! local-review: address findings (pass 1)
* fixup! local-review: address findings (pass 2)
* fix(prd-7139): empty-state Terminal Claude selects CLI create mode instead of launching on click
* fix(prd-7139): host the docked terminal on the empty state so the create CLI launch opens it
* feat(prd-7139): collapse empty state to a downward-gazing mascot while the terminal is open
* fix(prd-7139): use plain section divs in the Open with AI popover (a11y lint)
* fix(prd-7139): fieldset/legend menu sections, +CSS size budget, composer test coverage
* fix(prd-7139): match docked-terminal kill-strip background to the xterm canvas
---------
GitOrigin-RevId: 1da14ce3ee9ab3b08967c31b430c8d70efc62c9b
Contributor
There was a problem hiding this comment.
Automated approval from agents-private public-mirror-sync (run: https://github.com/inkeep/agents-private/actions/runs/27803998423). Source of truth is the monorepo; direct edits on inkeep/open-knowledge are overwritten on next sync.
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The empty-state create surface can now launch the
claudeCLI in a docked terminal. Alongside the existing app agents, the agent-picker dropdown now offers a Terminal → Claude option. Selecting it switches the primary button to Create with Claude CLI; clicking Create then opens the docked terminal with the same create-scope prompt built from your typed brief — bringing the new-file empty state to parity with the editor's "Open with AI" menu (desktop only; absent on the web host).The Open-in-Agent menus ("Open/Edit with AI", the file-tree right-click submenu, and the sidebar empty-space submenu) and the empty-state agent picker are now organized into labeled Desktop (app launches) and Terminal (CLI launch) sections, so the two launch modes are visually distinct. The CLI row's visible label is now "Claude" (its accessible name remains "Claude CLI"). Section labels render only for non-empty sections, and existing launch behavior is unchanged.