Skip to content

Commit 7269440

Browse files
committed
TASK-195: Record validation and mark public HTTP2 integration complete
1 parent 8ddc264 commit 7269440

3 files changed

Lines changed: 29 additions & 2 deletions

File tree

‎specs/tasks/M14-v3-release-repairs/TASK-195.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@
2626
- Blocks: TASK-196, TASK-198, TASK-185
2727
**Related Requirements:** PRD-V3N-REQ-005, PRD-V3N-REQ-006, PRD-V3N-REQ-009, PRD-V3N-REQ-011, PRD-V3N-REQ-012, PRD-V3N-REQ-013, PRD-V3N-REQ-015, PRD-V3N-REQ-017, PRD-V3N-REQ-021, PRD-V3N-REQ-023, PRD-V3N-REQ-024, PRD-V3N-REQ-025, PRD-V3N-REQ-026, PRD-V3N-REQ-027, PRD-V3N-REQ-031, PRD-V3N-REQ-032, PRD-V3N-REQ-033, PRD-V3N-REQ-038.
2828
**Related Decisions:** DR-V3-001, DR-V3-003, DR-V3-004, DR-V3-005, DR-V3-006, DR-V3-008.
29-
**Status:** In Progress
29+
**Status:** Complete
30+
31+
**Completion evidence:** [Implementation receipts](../../architecture/v3/TASK-195-implementation-evidence.md). Groundwork validation passed in one iteration with zero fixes and four approved nonblocking items persisted, session `85783280823cc035461552e47569369c`; all eight reviewers approve and 678 identity/hash checks have zero mismatches. Required local normal/ASan/UBSan/TSan suites, independent installed Python-h2/Node shared/static managed/external public matrices, package checks and 145 pinned h2spec cases passed. Immutable archives: `build/task195-evidence/implementation-8ddc2644` and `build/task195-evidence/validation-85783280823cc035461552e47569369c`, each with SHA256 manifests. Nonlocal platform execution remains assigned to CI and the v3 PR.

‎specs/tasks/_index.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ Nominally: **13 sequential tasks**, each S–XL. Most other tasks parallelize of
342342
| TASK-192 | [Implement owned v3 cookie helpers and parity witnesses](M14-v3-release-repairs/TASK-192.md) | M14 | Complete | TASK-191 |
343343
| TASK-193 | [Install public credentials and serve native TCP TLS](M14-v3-release-repairs/TASK-193.md) | M14 | Complete | TASK-192 |
344344
| TASK-194 | [Complete public TLS profiles, live rotation and ACME selection](M14-v3-release-repairs/TASK-194.md) | M14 | Complete | TASK-193 |
345-
| TASK-195 | [Route negotiated public HTTP/2 streams through native listeners](M14-v3-release-repairs/TASK-195.md) | M14 | In Progress | TASK-190, TASK-194 |
345+
| TASK-195 | [Route negotiated public HTTP/2 streams through native listeners](M14-v3-release-repairs/TASK-195.md) | M14 | Complete | TASK-190, TASK-194 |
346346
| TASK-196 | [Add production UDP QUIC ownership and public HTTP/3 routing](M14-v3-release-repairs/TASK-196.md) | M14 | Not Started | TASK-191, TASK-193, TASK-195 |
347347
| TASK-197 | [Complete public HTTP/3 lifecycle, policy and WebSocket parity](M14-v3-release-repairs/TASK-197.md) | M14 | Not Started | TASK-194, TASK-196 |
348348
| TASK-198 | [Provide native public throughput and latency benchmarks](M14-v3-release-repairs/TASK-198.md) | M14 | Not Started | TASK-195, TASK-197 |
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Unworked Review Issues
2+
3+
**Run:** 2026-10-10 19:12:10
4+
**Task:** TASK-195
5+
**Total:** 4 (0 critical, 2 major, 2 minor)
6+
7+
## Major
8+
9+
1. [ ] **housekeeper** | `README.md:32` | documentation-stale
10+
The capability table says 'TLS / HTTP/2 / HTTP/3 listeners' return typed not_supported, although TASK-195 now enables public certificate and initial-mTLS HTTP/2 listeners. The same stale claim appears in docs/native-tls-build.md at lines 62 and 251 and examples/README.md at lines 42-43, contradicting the new H2 guidance later in those docs.
11+
*Recommendation:* Update the capability table and remaining later-task statements to distinguish supported certificate/mTLS HTTP/2 from unsupported HTTP/3 and TLS-off HTTP/2.
12+
13+
2. [ ] **test-quality-reviewer** | `test/unit/http2_dispatch_test.cpp:24` | missing-test
14+
The overflow test claims to verify capture destruction outside the lock, but every queued lambda captures only references. Re-entry occurs from the terminal callback, which exercises a different lifetime boundary. Destroying abandoned queued handlers under the scheduler mutex would still pass this test, leaving the TASK-195 design invariant about destruction of user captures unprotected against a deadlocking regression.
15+
*Recommendation:* Add a focused overflow regression whose queued handler owns the last reference to a destructor probe that re-enters the dispatcher; verify destruction occurs once and completes. Keep terminal-callback re-entry as its own assertion, and use a bounded test timeout for the deadlock discriminator.
16+
17+
## Minor
18+
19+
3. [ ] **code-simplifier** | `scripts/lib/v3_public_http2_inventory.py:90` | code-structure
20+
The nested conditional expression combines client selection with dictionary union, making the required scenario inventory harder to scan than the surrounding validation logic.
21+
*Recommendation:* Use an explicit client-to-inventory mapping (or a short if/elif) and select from it here; this keeps the exact fail-closed inventory unchanged while making the three client cases visible.
22+
23+
4. [ ] **housekeeper** | `NEWS:1` | changelog-missing
24+
The current v3.0.0 release notes describe the native engine but do not mention that public HTTP/2 over TLS ALPN is now available.
25+
*Recommendation:* Add a concise v3.0.0 NEWS entry for public certificate/mTLS HTTP/2 availability and its TLS-off limitation.

0 commit comments

Comments
 (0)