mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-03 02:24:33 +00:00
Pebble's `SteeringBus` now owns the map of live sessions, the buffer for steers that arrive between sessions, fan-out of steers and interrupts, the close-the-door detach, and the hold that keeps a paired session open. The hub keeps what only fabro knows: pair records, principals, stage ids, and the run events that put bus activity on the run's stream in the order its consumers expect. `PebbleControlHandle` is gone, since the coding agent's control handle is a bus session natively; the ACP session joins the bus through a small adapter and carries pebble's steering message end to end, so a human steer keeps its author on the ACP `agent.steering.injected` event. A pair message that evicted an older steer is now accepted and the eviction recorded, where before it was queued and reported as refused. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
45 lines
1.2 KiB
TOML
45 lines
1.2 KiB
TOML
[package]
|
|
name = "fabro-acp"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
publish = false
|
|
license.workspace = true
|
|
description = "Agent Client Protocol backend support for Fabro"
|
|
|
|
[features]
|
|
default = ["runtime"]
|
|
runtime = [
|
|
"dep:fabro-sandbox",
|
|
"dep:fabro-types",
|
|
"dep:futures",
|
|
"dep:pebble-coding-agent",
|
|
"dep:tokio",
|
|
"dep:tokio-util",
|
|
"dep:tracing",
|
|
]
|
|
test-support = []
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
agent-client-protocol.workspace = true
|
|
agent-client-protocol-tokio.workspace = true
|
|
fabro-sandbox = { path = "../fabro-sandbox", optional = true }
|
|
fabro-types = { path = "../../foundation/fabro-types", optional = true }
|
|
fabro-util = { path = "../../foundation/fabro-util" }
|
|
pebble-coding-agent = { workspace = true, optional = true }
|
|
serde_json.workspace = true
|
|
shlex = "1"
|
|
thiserror.workspace = true
|
|
tokio = { workspace = true, optional = true }
|
|
tokio-util = { workspace = true, features = ["compat", "io"], optional = true }
|
|
futures = { workspace = true, optional = true }
|
|
tracing = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
fabro-sandbox = { path = "../fabro-sandbox", features = ["test-support"] }
|
|
tempfile = "3"
|