Skip to content

Add embed module for Tauri hosts, release 1.2.0 - #13

Merged
setoelkahfi merged 1 commit into
developmentfrom
feature/embed-host
Oct 13, 2026
Merged

setoelkahfi merged 1 commit into
developmentfrom
feature/embed-host

Conversation

@setoelkahfi

Copy link
Copy Markdown
Contributor

ed-acp-tauri 1.3.0 now carries the app-neutral half of embedding the agent in a Tauri app: the in-process ACP client, sessions, permissions and the key store. The SplitFire-only pieces it deliberately leaves out move into this crate, behind a new off-by-default embed feature so the plain library and the splitfire-agent binary don't pull in reqwest.

splitfire_agent::embed:

  • fetch_key(url, access_token, app_identifier) asks the SplitFire API for the signed-in user's Onde key, rejecting with SIGN_IN_REQUIRED or UNAVAILABLE.
  • splitfire_mcp(url, access_token, app_identifier) builds the SplitFire API's MCP server for a session (nothing without a token).
  • trim drops run_command and swaps the stems paragraph on platforms that can't start processes (iOS).

All three came from the splitfire_agent_host crate in the splitfire monorepo, which this change retires. The module has no tauri dependency: anything that took an AppHandle now takes the app identifier as a &str. The NO_STEMS_START / NO_STEMS_END markers trim::replace_no_stems keys off now live in prompt.rs, which writes the paragraph, so the prompt and the replacement can't drift.

The ed SDKs (ed-acp, ed-mcp, ed-acp-tui, ed-acp-testkit) go to 1.3.0. The move from 1.2.2 is additive for a Profile, so SplitFire builds unchanged. The crate version and registry/agent.json go to 1.2.0.

Tests cover fetch_key's status mapping (200/401/403/503) against a local stub and splitfire_mcp (no token, headers present), plus a check that the prompt's "no stems" paragraph still sits between the two markers.

Checks

  • cargo fmt -- --check
  • cargo clippy --locked --all-targets -- -D warnings (plus --all-features and --no-default-features --features embed)
  • cargo test --all-features
  • cargo check --no-default-features (the embeddable library alone)

Publishing 1.2.0 to crates.io follows once this merges; the three apps in splitfire depend on it.

ed-acp-tauri now carries the app-neutral half of embedding the agent in a
Tauri app. The SplitFire-only pieces it leaves out move here, behind a new
off-by-default `embed` feature so the plain library and the binary don't pull
in reqwest:

- embed::fetch_key, the SplitFire /agent/key call, with SIGN_IN_REQUIRED and
  UNAVAILABLE
- embed::splitfire_mcp, the SplitFire API's MCP server for a session
- embed::trim, which drops run_command and swaps the stems paragraph on
  platforms that can't start processes

These came from the splitfire_agent_host crate in the splitfire monorepo,
which this retires. The module has no tauri dependency; the app identifier
comes in as a &str. The NO_STEMS_START/NO_STEMS_END markers trim keys off now
live in prompt.rs, which writes the paragraph, so the two can't drift.

Bump ed-acp, ed-mcp, ed-acp-tui and ed-acp-testkit to 1.3.0 (the SplitFire
profile builds unchanged against it), and the crate plus registry agent.json
to 1.2.0.

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

@sigit-code-review sigit-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change introduces the embed module (behind the new embed feature) for Tauri hosts, providing SplitFire-specific embedding glue: fetch_key (fetches the Onde key from SplitFire's API), splitfire_mcp (builds the SplitFire MCP server), and trim (removes run_command and swaps the stems paragraph for platforms like iOS). The module is dependency-light and does not require tauri, taking the app identifier as a &str. The stems paragraph markers are now constants in prompt.rs, ensuring prompt and replacement can't drift. The SDK dependencies are bumped to 1.3.0, and the crate version and registry entry are set to 1.2.0. Tests cover all new logic, including HTTP status mapping and prompt marker integrity. No unresolved earlier findings remain; all changes are additive and backward compatible for embedding apps.


Automated review by siGit Code Review · commit 77691fa · see the review dashboard

@setoelkahfi setoelkahfi self-assigned this Oct 13, 2026

@keypair34 keypair34 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@setoelkahfi
setoelkahfi merged commit fbd7651 into development Oct 13, 2026
2 checks passed
@setoelkahfi
setoelkahfi deleted the feature/embed-host branch October 13, 2026 10:43
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.

3 participants