Files
glm-5.3-flash 23893d6236 re-baseline the four pending remediation tasks against the ADR-007/008 tree
The tasks were decomposed (d7db6b1) before 49d4432/ac440f3 landed;
both commits touched exactly the areas the tasks reference. Fixes
grounded in verified sources (vendored rustls-acme 0.12.1, rustls-pemfile
2.2.0, rustls-native-certs 0.8.4) and a fresh cargo llvm-cov run:

- acme-event-loop-test: the termination assertion was impossible —
  rustls-acme's Stream for AcmeState never yields None
  (state.rs:407-412, poll_next_infinite + 2^16s backoff); the review's
  U-1 exit-condition premise is withdrawn and corrected in place.
  Replaced with timeout-bounded event collection, a reachable-arm
  inventory (Order warn, AccountCacheStore, Load/Parse error arms,
  DeployedCachedCert/CertCacheStore via deterministic DirCache file
  pre-seeding), and an explicit mark for the full-fake-CA arms.
  server.rs:135 flagged as unreachable dead code (delete or accept).
- coverage-cheap-closes: re-baselined per-line ground truth — original
  groups 1 and 5 are already closed by the handshake suites; group 2's
  TLS 1.3 half is covered, leaving the TLS 1.2 else-arm (client.rs:316);
  new group added for VerifyPresentedCertVerifier::verify_tls12_signature
  (server.rs:349-366, opened by ADR-008; required for the >=98% bar);
  AcceptAnyCertVerifier refs moved to server.rs:468-475 with the stale
  OQ-TLS-09 coordination caveat retired.
- docs-pin-c1-c4-n3-n4: N-4 re-scoped (the mechanism analysis already
  lives in ADR-007 + the resolver doc block; what remains is a short
  server-verifier note covering both verifiers); C-4 updated for
  ADR-007's negotiation-earlier failure point; added the
  FingerprintPinVerifier pop cross-ref update (post-ADR-008 the default
  verifier does verify possession).
- config-validation-and-trivia: added the feature-gate mechanics note
  for the C-3 test (a non-gated test passes vacuously under default
  features); refreshed drifted line refs with a re-grep advisory.
- review 001: Status block records OQ-TLS-09/-10 resolutions; U-1
  carries the termination correction; U-2 carries the supersession
  note. ADR-008 gains the suite-number-to-test-name mapping.

Verification: taskgraph validate 14 tasks; cargo doc --no-deps
warning-free; all edits docs-only (no code paths touched).
2026-09-12 02:42:20 +00:00
..

status, last_updated
status last_updated
reviewed 2026-09-10

alktls — Architecture

The authoritative architecture spec for the alktls crate (Phase 1 of the SDD process). The spec docs advanced Draft → Reviewed at the Phase 2 implementation review gate (see the lifecycle note at the end); statuses update here as docs advance.

All docs follow the SDD process conventions: specs reference ADRs and OQs by number, ADRs explain WHY, open-questions.md tracks what is unresolved.

Documents

Doc Status Scope
overview.md Reviewed Purpose, transport picture, API surface, ADR/OQ index
server.md Reviewed TlsServerConfig, resolvers, ACME path, server invariants
client.md Reviewed TlsClientConfig, verifier selection, client auth, root-store fallback
open-questions.md live The authoritative OQ tracker (all Phase 0 OQs resolved at entry)

ADRs

ADR Status Decision
001 Accepted Inherit the alknet TLS design as the baseline; deviations recorded as alktls ADRs
002 Accepted TlsError: the ADR-088 six-variant shape from day one; config-construction scope boundary
003 Accepted The QUIC feature is noq (iroh's extracted fork), not quinn; iroh stays key-not-config
004 Accepted Complete accessors: for_tcp_tls() adopted; server borrows, client consumes
005 Accepted Identity + credentials + fingerprint types move into alktls; auth layer stays out
006 Accepted Eight-module layout; seed tests + integration invariant pins
007 Accepted RFC 7250 cert-type negotiation: the offer follows the identity (deviation from alknet; resolves OQ-TLS-10)
008 Accepted Server-path proof-of-possession: the verifying verifier is the default on every path (resolves OQ-TLS-09)

Lifecycle

Docs move DraftReviewed when their open questions are resolved and the architecture review reports zero critical issues; ADRs are Accepted at write time and never revert (supersede instead). open-questions.md is the authoritative tracker; the Phase 0 doc's OQ statuses are the historical record.

API-freeze note (2026-09-10): the Phase 2 implementation review gate (tasks/review-impl.md) passed with zero un-pinned divergences (two ADR amendments recorded — 002's verifier-error path, 003's noq provider feature). The public API surface — the lib.rs re-export block per ADR-004/005/006 — is frozen as of that review; the alknet rewrite compiles against it. Additive evolution only.

Phase status

  • Phase 0 (complete, 2026-09-10): docs/research/phase-0.md — extraction inventory, verified invariants, gaps, noq investigation, OQ-TLS-01..08.
  • Phase 1 (this directory): all Phase 0 OQs resolved at entry — six via ADR-001..006, two as documented behavior (OQ-TLS-02, OQ-TLS-06). Reviewed 2026-09-10 at the Phase 2 gate.
  • Phase 2 (complete, 2026-09-10): decomposition into tasks/ + execution — the eight-task port graph landed crate-init → port-identity/fingerprint/pem-signing → port-server/port-client → integration-suite → this review gate. The crate is ready for the rewrite to consume.