Skip to content

refactor(core,tools): box large LoopbackEvent variants and remove async-trait from zeph-tools#1757

Merged
bug-ops merged 3 commits intomainfrom
arch-phase-3
Mar 14, 2026
Merged

refactor(core,tools): box large LoopbackEvent variants and remove async-trait from zeph-tools#1757
bug-ops merged 3 commits intomainfrom
arch-phase-3

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented Mar 14, 2026

Summary

Files changed

  • crates/zeph-core/src/channel.rs — struct definitions, enum variant changes, LoopbackChannel send methods
  • crates/zeph-core/src/lib.rs — re-export new public types
  • crates/zeph-acp/src/agent/helpers.rs, mod.rs, tests.rs — update all match/construction sites
  • crates/zeph-core/src/agent/tool_execution/mod.rs — update test match sites
  • src/daemon.rs — update wildcard match
  • crates/zeph-tools/src/search_code.rs — native async trait signatures
  • src/agent_setup.rsBox::pin(async move { ... }) implementations
  • crates/zeph-tools/Cargo.toml — remove async-trait dependency

Test plan

  • cargo +nightly fmt --check — pass
  • cargo clippy --workspace --features full -- -D warnings — pass (0 warnings)
  • cargo nextest run --config-file .github/nextest.toml --workspace --features full --lib --bins — 5427 passed, 0 failed, 12 skipped

Closes #1737, closes #1733. Part of epic #1741 (arch phase 3).

…nc-trait from zeph-tools

Extract ToolStartData and ToolOutputData owned structs and box them in
LoopbackEvent::ToolStart/ToolOutput variants, reducing the base enum size
from ~200+ bytes to a single pointer per boxed variant. Update all six
construction and match sites across zeph-core, zeph-acp, and the daemon.

Replace async-trait macro usage in SemanticSearchBackend and LspSearchBackend
with native Pin<Box<dyn Future<...> + Send + 'a>> return types for object
safety. Update all implementations in agent_setup.rs. Remove async-trait
from zeph-tools/Cargo.toml (zeph-acp retains it, required by the ACP SDK).

Closes #1737, closes #1733.
@github-actions github-actions bot added documentation Improvements or additions to documentation rust Rust code changes core zeph-core crate dependencies Dependency updates refactor Code refactoring without functional changes size/XL Extra large PR (500+ lines) labels Mar 14, 2026
@bug-ops bug-ops enabled auto-merge (squash) March 14, 2026 15:52
@bug-ops bug-ops disabled auto-merge March 14, 2026 15:53
@bug-ops bug-ops enabled auto-merge (squash) March 14, 2026 16:04
@bug-ops bug-ops merged commit 4848ffb into main Mar 14, 2026
15 checks passed
@bug-ops bug-ops deleted the arch-phase-3 branch March 14, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core zeph-core crate dependencies Dependency updates documentation Improvements or additions to documentation refactor Code refactoring without functional changes rust Rust code changes size/XL Extra large PR (500+ lines)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Box large LoopbackEvent variants to reduce enum size Replace async-trait with native async traits in zeph-tools/search_code.rs

1 participant