You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #707 has extracted daemon, automation, store, host, protocol, and runtime concerns into dedicated crates, but the root crates/tracedecay crate still owns large amounts of product/runtime implementation.
Examples in crates/tracedecay/src/daemon/ include large modules such as automation_effect.rs, branch_admin.rs, broker_stream_transport.rs, bootstrap.rs, branch_add.rs, plus HTTP routing, LSP session management, remote query/protocol execution, shutdown orchestration, graph resolution, maintenance, and other runtime behavior.
At the same time the workspace already contains owners such as:
tracedecay-daemon-service
tracedecay-daemon-protocol
tracedecay-daemon-control
tracedecay-automation-runtime
tracedecay-agent-hosts
tracedecay-store-runtime
The extraction is therefore incomplete: the new crates exist, but the root still acts as a large implementation crate rather than a composition root.
Goal
Reduce crates/tracedecay to process composition, dependency construction/registration, startup, package/binary concerns, and top-level shutdown.
Work
Move automation-effect implementation to tracedecay-automation-runtime.
Move broker/connection serving and daemon transport implementation to tracedecay-daemon-service / tracedecay-daemon-protocol as appropriate.
Move HTTP application transport implementation to the API/daemon-service transport owner.
Move LSP session integration to the LSP/daemon-service boundary.
Collapse root remote query/protocol implementations onto the canonical application remote service plus a thin transport adapter.
Review branch administration/addition code and move business behavior to the relevant application/use-case owner, leaving only daemon adaptation in daemon-service.
Continue this audit for every root daemon module: if it owns business/runtime behavior rather than composition, move it to the owning vertical crate.
Do not replace moved implementation with compatibility shims in root.
Acceptance criteria
crates/tracedecay owns composition and process lifecycle, not subsystem implementations.
Root daemon modules are thin wiring/adaptation rather than large business/runtime implementations.
No product behavior is duplicated between root and extracted crates.
Dependency graph stays acyclic without introducing a common/shared junk-drawer crate.
Context
PR #707 has extracted daemon, automation, store, host, protocol, and runtime concerns into dedicated crates, but the root
crates/tracedecaycrate still owns large amounts of product/runtime implementation.Examples in
crates/tracedecay/src/daemon/include large modules such asautomation_effect.rs,branch_admin.rs,broker_stream_transport.rs,bootstrap.rs,branch_add.rs, plus HTTP routing, LSP session management, remote query/protocol execution, shutdown orchestration, graph resolution, maintenance, and other runtime behavior.At the same time the workspace already contains owners such as:
tracedecay-daemon-servicetracedecay-daemon-protocoltracedecay-daemon-controltracedecay-automation-runtimetracedecay-agent-hoststracedecay-store-runtimeThe extraction is therefore incomplete: the new crates exist, but the root still acts as a large implementation crate rather than a composition root.
Goal
Reduce
crates/tracedecayto process composition, dependency construction/registration, startup, package/binary concerns, and top-level shutdown.Work
tracedecay-automation-runtime.tracedecay-daemon-service/tracedecay-daemon-protocolas appropriate.Acceptance criteria
crates/tracedecayowns composition and process lifecycle, not subsystem implementations.common/sharedjunk-drawer crate.Related: #707.