ADR-0001: Workspace dependencies and application ownership

Date: 2026-09-19 Status: Accepted (Foundation implementation within specification 0.4)

Context

The baseline names crates but leaves concrete ownership and build choices open.

Decision

Use Rust 2024 with a pinned 1.97.0 toolchain and workspace version 0.1.0 (unreleased). Put CPIR/lifecycle in planner, execution and ledger ports in integrations, and a thin synchronous facade in core. Types/temporal remain independent of higher layers. API and Node import core. Metadata-only ml does not participate in planning. Enforce a dependency allowlist in scripts/check-repository.mjs.

Alternatives

One large crate would hide boundaries; putting all domain types in types would create a god module; placing execution inside core would widen its trusted surface.

Consequences

More crates, but dependency direction is inspectable. Ports are synchronous until a real I/O adapter justifies async. Research is outside workspace membership.

Migration / Compatibility

No stable bootstrap API compatibility is promised. No Master rule is superseded.

References

Master sections 17–19, 31; Agent Implementation Boundary.

Master · Foundation reference

2026-09-20 follow-up

The initial 0.1.0 Foundation was unreleased. The completed Temporal milestone uses workspace 0.2.0; the pinned Rust toolchain is unchanged.