Files
alksocks/tasks/implementation/assembly-integration-suite.md
T

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
implementation/door-udp
implementation/local-backend-producer
implementation/composed-accept
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:

  1. Cross-cutting integration tests (tests/assembly-integration.rs):
    • The full -D story end to end: a vanilla tun2proxy-shaped client → the cred-bearing TCP door → the channels-native session → the producer with local providers → 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 composed wasm checks green (the local feature is non-wasm by design — verify it fails to build on wasm, the alktty posture, and record the observed error in Notes).
  2. Docs sync (the architecture-sync check):
    • docs/architecture/README.md Current State + the doc statuses reflect the landed assembly layer (the "no local/composed code exists yet" lines updated).
    • lib.rs crate 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).
  3. 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), and cargo doc --no-deps (docs changed).

Acceptance Criteria

  • The full -D story (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