Add an Open in Claude split button to the page actions - #3350
Merged
Conversation
The primary half opens Claude with a prompt pointing at the page's .md URL. The caret opens a menu with Open in Claude and Open in ChatGPT. It is the SplitButton component, so the halves, divider, menu and positioning come from there. Gemini is absent because gemini.google.com ignores prompt parameters, so the entry could only prefill by pointing at AI Studio, which is not where "Open in Gemini" says it is going. The prompt carries an absolute URL, because the assistant fetches the page itself rather than following a link from this site. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Pull request environment is available at https://stoctodocspr3350.z22.web.core.windows.net. You can view the ephemeral environment status in Octopus Deploy. This environment will be automatically deprovisioned when the pull request is closed, or after 7 days of inactivity. |
enf0rc3
marked this pull request as ready for review
August 13, 2026 05:23
rosslovas
approved these changes
Aug 13, 2026
rosslovas
left a comment
Contributor
There was a problem hiding this comment.
Looks good! In the design it looks like the full non-compact menu, I'm assuming you've chosen to go with compact deliberately
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.
Adds an Open in Claude split button to the page actions row, between Copy as markdown and Edit on GitHub, per the Figma ordering.
Implements the Open in LLM design, using the
SplitButtoncomponent from #3340.Replaces #3330, which carried stack metadata from when it was based on
wl/split-button. Same branch, same commit, no content change.The primary half opens Claude with a prompt pointing at the page's
.mdURL. The caret opens a menu with Open in Claude and Open in ChatGPT, as link-styled rows with a provider logo and an external-link icon. The prompt carries an absolute URL, because the assistant fetches the page itself rather than following a link from this site.Gemini is deliberately absent:
gemini.google.comignores prompt parameters, so the entry could only prefill by pointing at AI Studio, which is not where "Open in Gemini" says it is going.Four files, additions only — the component, its strings, one line in the layout, and its tests. The icons and
getPageMarkdownPath()both come from what has already landed.Carried over from #3330: the per-component icon masks here would be better as a global
icons.css, deliberately left for a follow-up.Testing
Clean
astro build, 2674 pages, 1253.mdemitted. 36 passed acrossopen-in-llm,split-button,copy-buttonandllm-endpoints. Playwright is not wired into CI, so that is a local run.The positioning tests wait for the menu's open animation to settle, the same way
split-button.spec.tsdoes — measured mid-animation the icon box reads 12x9 rather than the 16x16 it lands on.Measured where the menu ends up, to confirm those tests hold something down:
430 is where the row wraps and the fallback fires, which is the case
split-button.spec.tscould not reach on its own: the component gallery gives the control room on both sides at every width.🤖 Generated with Claude Code