Skip to content

Preview - #941

Merged
1lck merged 17 commits into
mainfrom
preview
Sep 28, 2026
Merged

1lck merged 17 commits into
mainfrom
preview

Conversation

@1lck

@1lck 1lck commented Sep 27, 2026

Copy link
Copy Markdown
Owner

No description provided.

1lck and others added 16 commits September 27, 2026 14:23
…ent (Mac) (#894)

* feat(agent): add optional ACP conversation module

* fix(agent): restore permission UI and stop inactive project sessions

* feat(agent): per-project ACP connection with API-key gateway and session history

- One agent process and ACP connection per workspace, carrying many sessions;
  new/list/load sessions come from the agent (session/list, session/load).
- Sign in only through the agent's `gateway` auth method with the user's
  Responses endpoint and API key, sent over stdio; reject agents without it.
- Cancel like mainstream ACP clients: one session/cancel, report `cancelled`
  at once, drop the late reply, reject pending permissions (including ones
  registered while the cancel is queued). Removes the 5 s session kill.
- Detect agent exit via on_close, report stderr tail (key redacted), prepend
  the executable's directory to PATH, SIGTERM then SIGKILL the recorded tree.
- C ABI: replace prompt/cancel/permission with lithe_agent_send_json; stop
  reasons use ACP wire names; shared fixture covers commands and events.
- Opt-in real-agent end-to-end test; timing harness reports ignored tests
  as skipped instead of passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(agent): Mac conversation history, provider sign-in, and background sessions

- Feature model owns the project's connection: session list, new/switch/load
  conversations, ordered event delivery, streamed text batching, tool calls
  merged by toolCallId, and reload-before-prompt after the agent restarts.
- Agent sessions follow their project: switching tabs or windows no longer
  stops them; a background tab shows a dot while a permission is pending.
- Settings pick a Responses-protocol AI provider; the key comes from the
  existing credential resolver. Account logins are never used.
- Agent panel: history menu, connect/retry states, Markdown replies, tool
  status rows, permission bar.
- Agent Note and platform matrix updated for the new decisions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(agent): detect Node.js and install ACP adapters with the user's npm

- lithe-agent-host catalog of supported agents (Codex verified, Claude not yet
  verified) mirroring the official ACP registry ids, packages, and versions.
- Node.js/npm detection through the login shell's PATH (nvm/fnm visible to
  GUI apps); per-agent minimum Node versions reported as issues, never fixed.
- One-click adapter install into <data>/agents/<id> with the user's npm:
  staging directory, executable check, atomic swap, cancel and timeout.
- Launch by agentId from the managed install; key delivery per adapter
  (Codex gateway over stdio, Claude ANTHROPIC_* environment) and model
  delivery (CODEX_CONFIG / ANTHROPIC_MODEL). Custom command agents remain.
- Kill the child's process group as well, so descendants forked after the
  tree snapshot cannot survive and hold output pipes open.
- Rust Core commands agent.status / agent.install / agent.uninstall with a
  shared fixture; contracts updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(agent): Agents and AI Providers settings with per-agent panel selection

- Settings › Agents: enable toggle, Node.js/npm status, install / update /
  uninstall / cancel for each adapter, provider picker filtered by protocol,
  custom command agent.
- Settings › AI Providers: edit any provider without changing the one commit
  messages use; shows which features use each provider. AI & Commit keeps a
  "Commit messages use" picker.
- Agent panel switches between configured agents; one lazily created
  connection per agent, attention merged across agents.
- Agent Note and platform matrix updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(agent): run the user's Codex CLI instead of downloading a bundled copy

- Catalog: Codex adapter drives the user's `codex` (>= 0.156.0, the adapter's
  dependency range) through CODEX_PATH.
- agent.status reports the detected CLI with its version and minimum; a
  missing or too old CLI is an issue for the user, never installed by Lithe.
- Install with --omit=optional for CLI-driven adapters: 18 MB instead of
  ~390 MB, because Codex platform binaries are optional dependencies.
- Launch fails with an actionable message when the CLI is missing or old.
- Version parsing handles banners such as `codex-cli 0.156.1`; numeric
  version comparison. Swift contract type, Agents page row, fixture, tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(agent): move Rust Core agent commands into an owned package

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(agent): sign Claude in through the ACP gateway with the user's Claude Code

- All catalog agents now sign in through the ACP `gateway` method over stdio;
  headers follow the provider protocol (Bearer for Responses, x-api-key for
  Anthropic). Lithe no longer puts ANTHROPIC_API_KEY in the environment.
- Claude drives the user's `claude` (>= 2.1.280, the SDK's claudeCodeVersion)
  via CLAUDE_CODE_EXECUTABLE and installs with --omit=optional.
- Fixture, tests, Agent Note, and contract updated. Claude is still marked
  not verified: the test gateway returned 503 for every model.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(agent): dock the Agent panel beside the editor

The Agent conversation moves from the bottom tool window to the right dock
shared with Maven, so the editor stays visible while chatting. The workbench
model now owns one right slot instead of a Maven-only flag, and the dock's
maximum width grows to 760 to fit the panel's list-plus-detail settings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* feat(agent): redesign the Agent panel and move its settings inside

Conversation panel: session header with new/history/settings actions, one
tab per open conversation, centered agent mark with version that switches
agents, Markdown replies with copyable code blocks, tool call rows, a
permission card, a Tasks/Running/Edits summary bar, and a bordered composer
with agent and model chips and a stop button. The full layout always renders;
sending validates the setup first and points to the in-panel settings.

Settings live in the panel (icon rail plus content) and only manage agents:
feature switch, segmented agent switcher with preflight status, version
status card, a PASS/WARN/FAIL preflight checklist with one-click fixes, and a
"fetch local configuration" card that follows the user's own Codex or Claude
CLI files instead of a separate provider editor. The global Settings › Agents
page is removed.

Rust: `agent.installCli` installs or updates the agent's CLI globally with
the user's npm on explicit request; catalog and status carry the CLI's npm
package. An outdated CLI no longer blocks installing the adapter.

Preflight and error copy is generated in Swift from the structured status so
it localizes; Simplified Chinese strings added for the panel. Management
tests wait on a clock deadline instead of a yield count.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* test(agent): wait on publications instead of real sleeps

The stability gate rejects real-time sleeps in tests. The management tests
now await the feature model's publications with the shared observable
waiter, and the test service resumes a continuation when the install is
entered, with a dispatch deadline as the only timeout arm.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* feat(agent): complete session controls and reliable ACP recovery

Expose upstream model, permission and reasoning options; render tool evidence and queued approvals; wait for cancellation acknowledgement with bounded recovery; preserve failed history loads; refine the chat panel and validate real development workflows.

* feat(agent): show live npm download progress

* fix(agent): update CLI through its installation owner

* fix(agent): verify CLI updates after installer retry failures

* fix(agent): refresh local default model and use vendor model icons

* fix(agent): resolve stale models using upstream recommendations

* feat(agent): add CC GUI style model and permission selectors

* feat(agent): support file references in conversations

* fix(ci): resolve Windows file URI and Maven width tests

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Mucheen <1528136628@qq.com>
* 修复:统一双端 Git 提交图分支颜色

* fix(ci): supplement Git graph platform feature matrix

---------

Co-authored-by: lick <2188718831@qq.com>
* fix(macos): align editor tab icons with project tree

* fix(macos): refresh editor tab icons after disk changes

---------

Co-authored-by: Lichenkang <2188718831@qq.com>
* fix(git): preserve Windows repository path identity (#627)

* test(git): verify explicit Windows long-directory startup failure

* test(git): use frontend-normalized worktree creation paths

* ci(git): reuse the runner Node runtime for path tests
…tion (#927)

Co-authored-by: lick <2188718831@qq.com>
* feat(agent): support local and custom provider configuration

* fix(agent): recreate unprompted sessions after reconnect

---------

Co-authored-by: lick <2188718831@qq.com>
* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* feat(windows): 在设置中新增 Maven 配置页并统一三处 Maven 配置

* fix: 补齐 Maven 设置矩阵并修复保存重试、检测竞态及仓库回退

* fix(windows): 恢复 Maven 生效配置解析

* fix(windows): make Maven settings detection bounded and accurate

---------

Co-authored-by: Jay <jay@sztus.com>
Co-authored-by: Lichenkang <2188718831@qq.com>
Co-authored-by: Jay <fan_jie@sonadora.com.cn>
Preserve spring.index endpoints, add a bottom-pane endpoint view, and expose local workspace navigation with lifecycle and failure states.

Co-authored-by: milestone <345198561@qq.com>
Co-authored-by: Lichenkang <2188718831@qq.com>
Co-authored-by: lick <2188718831@qq.com>
@ghfind-review ghfind-review Bot added the review: high ghfind author score; see https://ghfind.com label Sep 27, 2026
@1lck
1lck merged commit 269947b into main Sep 28, 2026
7 checks passed

This branch was successfully deployed

1 active deployment
github-pages — e50926ab Deployed Sep 28, 2026 by 1lck via deploy #129
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: high ghfind author score; see https://ghfind.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants