Skip to content

Use built in claude sdk bins - #3215

Merged
abose merged 19 commits into
mainfrom
ai
Sep 25, 2026
Merged

abose merged 19 commits into
mainfrom
ai

Conversation

@abose

@abose abose commented Sep 23, 2026

Copy link
Copy Markdown
Member

No description provided.

A URL a program marks up as a hyperlink (as `claude auth login` does with
its sign-in URL) is handled by xterm itself, not the web-links addon. With
no linkHandler set, xterm's fallback runs a confirm() and window.open(),
which Electron shows as a dialog and then a new app window. Both kinds of
link now go through one helper to the default browser, for http(s) only.
The Claude Agent SDK ships a Claude Code for each OS and CPU, and each
platform build carries its own, so nothing needs installing to use the
built-in chat. The locator now finds it and applies this rule: the system
Claude Code is used unless it is missing or older than the bundled one; a
configured path still wins outright. Reported as source "bundled".

The Node test helper simulates both copies at chosen versions so the
rule is checked without either being installed.
- Set up on the Claude Code row while it is not signed in, and the input
  placeholder that says so
- the folded CLI line shown when the user has installed no CLI
- the old sign-in screen's strings go with the screen
A found binary was cached for the whole session, so when `claude update`
replaced a native install with an npm one (removing ~/.local/bin/claude),
the next prompt was sent to a path that no longer existed and the SDK
failed with "executable not found". The bundled fallback never got a look.

A cached path is now checked for existence on every lookup; a missing one
starts a fresh discovery, which finds the moved install or falls back to
the bundled copy.
Shorten the notice to "Project switched to {0}" and "Restart all
terminals in {0}", rename the action to "Restart All Terminals", and
replace the "Keep Terminals" button with a top-right × that dismisses
the notice and keeps terminals running.
Lay the Claude Code CLI and Codex CLI rows out in a two-column grid that
stacks when the panel is narrow, and add a hover arrow on installed tools.
The fold now hides the whole grid.
Style the header Back button shown in Claude Code CLI and Codex CLI:
it fades in with the other header actions on hover or keyboard focus,
joins the flow on narrow panels and keeps only its arrow below 320px.
Add its label and tooltip strings.
- Show Back in the chat once it has started, before the model switcher,
  in a left header group so the switcher moves over while Back is there.
  Below 380px the chat's Back keeps only its arrow.
- Home lays the start screen over a running chat and hides its messages,
  input, status and model switcher. Surprise Me is not offered there.
- Mark live sessions with a sage dot on the card's icon, ringed in the
  card's colour. Their status text shows on hover or focus and stays
  available to screen readers. The chat's card ends in an arrow at home.
- Drop the header title ring and the dimmed row of the CLI hand-off
  animation, which is gone.
- Strings: Back to start, In progress, Running; rename the Back keys and
  drop the switch hint.
…inishes last

Opening a project reloads its preferences file in the background without
waiting. When two projects opened close together, the earlier project's
reload could finish last and point the project preferences back at the
project that had just closed, leaving settings like spaceUnits at their
defaults. This made the PreferencesManager integration tests flaky on CI.

The reload now stops if the project root changed while it read the
files. A regression test holds one project's reads while the next
project opens, and fails without the fix.
Transparent images, such as a dark logo, nearly vanished on the dark
panel. A quiet two-grey checkerboard now sits behind images in the
attachment previews, queued and sent message thumbnails, the viewer's
overview and the full-size viewer, the way image editors show
transparency. Opaque images cover it completely.
… reports

The md viewer flushes its own debounced edit when the same file is
switched to again, and that report could reach Phoenix just after the
next CM edit. MarkdownSync applied it, silently undoing the CM change,
and the viewer then synced back the reverted text. This made the
"editing code block content in CM sync to viewer" test flaky on CI.

While a CM change is still waiting to be sent to the iframe, the iframe
has not seen it, so its content reports are stale: ignore them and let
the pending update bring the iframe up to date.
…tests

- Hiding the panel stops Live Preview when no preview client is
  connected, and in a test window showing it again does not reopen it.
  The md close/reopen test and the pin open/hide test now reopen it as
  the app does, and the md cache group restarts it before each test so
  one test cannot fail every later one.
- Related-CSS tests wait for the stylesheet's live document and read the
  browser copy until the edit arrives, instead of reading once.
- Linked-CSS code hints follow the colors the menu offers instead of
  guessing the order, which depends on colors used earlier.
- forRemoteExec only compares once a reply has arrived. It used to pass
  on the first poll with no result, so the resize test captured no
  width and the reload tests did not really check the reload. The
  resize test also looks up the preview iframe after it loads.
- Replace fixed awaits() with condition waits in the touched tests.
@sonarqubecloud

Copy link
Copy Markdown

@abose
abose merged commit 20b9194 into main Sep 25, 2026
14 of 21 checks passed
@abose
abose deleted the ai branch September 25, 2026 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant