4.0 KiB
4.0 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level | |||
|---|---|---|---|---|---|---|---|---|---|---|
| implementation/assembly-integration-suite | Assembly — the cross-cutting integration suite + docs sync | pending |
|
moderate | medium | phase | implementation |
Description
The batch-2 closing task (the core-integration-suite's assembly-layer analogue): the cross-cutting suite that pins the whole assembly story, plus the docs sync that records what landed. The per-component tasks own their verticals; this task owns the compositions and the spec-vs-implementation reconciliation.
Deliverables:
- Cross-cutting integration tests (
tests/assembly-integration.rs):- The full
-Dstory end to end: a vanilla tun2proxy-shaped client → the cred-bearing TCP door → the channels-native session → the producer withlocalproviders → real echo targets — CONNECT + UDP (the RFC-header'd datagram through the UDP door) + BIND (the vanilla BIND conversation through the door) all through one door process against one producer registration (the one-registration-three-commands regression, now through the doors). - The composed story end to end: the producer with
composed::direct_egress+composed::bindfirst_accept— CONNECT through the direct op, ASSOCIATE through the lazy table, BIND through the bind-first listener (the ADR-008 composed variant set, all three commands). - Mixed assembly: one producer registration serving channels-native sessions AND door clients AND composed seams concurrently (the producer/consumer-roles-not-sides posture — both shapes on one connection).
- Teardown matrix, assembly edition: door-client disconnect tears the association/channel down (no leaks — the channel count witnesses); the idle bounds fire; fresh sessions succeed immediately after each teardown (no connection poisoning).
- The wasm gates re-verified: default +
--features composedwasm checks green (thelocalfeature is non-wasm by design — verify it fails to build on wasm, the alktty posture, and record the observed error in Notes).
- The full
- Docs sync (the architecture-sync check):
docs/architecture/README.mdCurrent State + the doc statuses reflect the landed assembly layer (the "nolocal/composedcode exists yet" lines updated).lib.rscrate docs updated (the "not yet present" paragraph — the doors/providers are landed now).- Any spec drift the implementation surfaced reconciled in the same change — never silently diverged (the batch-1 discipline).
- Full verification sweep (the batch gate's input):
cargo test,cargo test --all-features, clippy--all-targets --all-features -- -D warnings,cargo fmt --check, both wasm checks (default + composed), andcargo doc --no-deps(docs changed).
Acceptance Criteria
- The full
-Dstory (vanilla client → door → session → producer → real target) pinned end to end for all three commands - The composed variant set pinned end to end (all three commands)
- Mixed assembly (doors + channels-native + composed) concurrent on one producer — pinned
- The assembly teardown matrix pinned (door disconnects, idle bounds, fresh-session-after-teardown)
- All four verification targets green (default, all-features, wasm default, wasm composed)
- Docs synced (README Current State, lib.rs crate docs, any drift reconciled)
References
- docs/architecture/overview.md (the feature gates + module map — the landed-shape check), consumer.md §The Front Doors, producer.md §Producer-Side Local Backend, §Wiring
- docs/architecture/decisions/005/007/008/009/014
- The batch-1 precedent:
tests/core-integration.rs(the suite shape),tasks/implementation/core-integration-suite.md(the task shape)
Notes
To be filled by implementation agent
Summary
To be filled on completion