426333eeda
Mark fix/token-bucket-nanosecond as completed
2026-06-12 04:22:35 +00:00
f9d7b8112b
Decompose implementation review fixes into 14 atomic tasks with post-fix review
...
Break down findings from review #002 into dependency-ordered fix tasks:
Critical/High:
- fix/acme-contact-and-challenge (C1+C2): Add acme_contact field, wire to
ACME, remove unused challenge_config, add validation rule 19
- fix/remove-health-and-hardcode-https (W5+W14+ADR-022): Remove /health
from main listener, hardcode X-Forwarded-Proto to https
- fix/config-reload-static-drift (C4): Use ArcSwap<StaticConfig> so reload
diffs against last config, not startup config
- fix/access-logging (W13): Wire up log_request! macro for every proxied
request with client_ip, host, method, path, status, upstream, duration_ms
Medium:
- fix/graceful-shutdown (W1+W7): Join HTTPS tasks with timeout instead of
abort, add shutdown signal to admin socket and eviction task
- fix/connect-timeout (W4): Wire upstream_connect_timeout_secs to enforce
separate connect timeout
Low/Independent:
- fix/token-bucket-nanosecond (W6): Use as_nanos() instead of as_millis()
- fix/normalize-host-ipv6 (S3): Handle IPv6 bracket notation in normalize_host
- fix/http-port-validation (S1): Validate http_port in range 0 or 1-65535
- fix/integration-test-toml (S10): Fix double-nested listeners.listeners.sites
- fix/logging-test-global-subscriber (W9): Use try_init() to avoid test conflicts
- fix/fragile-error-detection (W3): Add typed error matching or documented string match
- fix/add-code-comments (C3,W8,W10,W11,S9): Document correct-but-non-obvious behaviors
- fix/request-timeout-scope (S8): Document full-request timeout scope
- fix/clean-dead-code (S4+S2): Remove dead_code annotations, add #[non_exhaustive]
Review gate:
- review/post-fix-review: Verify all fixes against architecture spec
2026-06-12 04:08:45 +00:00
57cb071ff2
Fix task status: 'complete' -> 'completed' for taskgraph compatibility
2026-06-11 14:06:20 +00:00
cf002cc40f
Fix spec deviations and implement graceful shutdown drain
...
- Replace determine_if_https() with ProxyState.is_https field so X-Forwarded-Proto
reflects the listener's protocol instead of guessing from the Host header
- Return ProxyError::BadGateway with host/upstream context for non-connect upstream
errors instead of bare StatusCode::BAD_GATEWAY
- Implement InFlightCounter with RAII guard for tracking in-flight connections
- Add drain_in_flight() to wait for connections to complete on shutdown, with
configurable timeout before forcing exit
- Mark review/core-components and review/integration-readiness as complete
2026-06-11 14:01:55 +00:00
9e11e755ea
Mark integration/startup-orchestration as complete
2026-06-11 13:46:46 +00:00
3754b40904
Mark deploy/systemd-and-container as complete
2026-06-11 13:42:57 +00:00
5d1e29fde9
Mark tls/tls-listener-setup as complete
2026-06-11 13:40:14 +00:00
eb13c8cd9b
Mark ops/signals-and-shutdown as complete
2026-06-11 13:34:48 +00:00
ecdfac1a1f
Mark proxy/headers-and-forwarding as complete
2026-06-11 13:24:50 +00:00
134cb53de0
Mark ops/admin-socket as complete
2026-06-11 13:20:40 +00:00
bb33dc18e9
Mark tls/http-redirect as complete
2026-06-11 13:18:56 +00:00
f3ee0b7a97
Mark config/cli-parsing as complete
2026-06-11 13:16:58 +00:00
05b720eb7a
Mark proxy/error-responses as complete
2026-06-11 13:13:59 +00:00
91f76e9646
Mark ops/body-size-limit as complete
2026-06-11 13:12:50 +00:00
4b4ff838fe
Mark ops/rate-limiting as complete
2026-06-11 13:03:30 +00:00
f1cada010f
Mark proxy/host-routing as complete
2026-06-11 12:59:48 +00:00
994ce0fb66
Mark config/validation as complete
2026-06-11 12:49:46 +00:00
07fb4ce411
Mark ops/logging as complete
2026-06-11 12:49:05 +00:00
30d391b353
Mark config/dynamic-config as complete
2026-06-11 12:48:10 +00:00
5ca658e8f3
Mark ops/health-check as complete
2026-06-11 12:41:29 +00:00
468adb21de
Mark tls/manual-tls as complete
2026-06-11 11:59:12 +00:00
ff5112e4d5
Mark tls/acme-tls as complete
2026-06-11 11:56:31 +00:00
33a448505e
Mark setup/test-infrastructure as complete
2026-06-11 11:49:37 +00:00
dc12e75bdf
Mark config/static-config as complete
2026-06-11 11:46:38 +00:00
9b4cabc4d6
Mark setup/project-init as complete
2026-06-11 11:36:51 +00:00
309878c561
Decompose architecture into 23 atomic tasks across 7 parallel generations
...
Task graph covers all Phase 1 concerns: config system, TLS termination,
proxy handler, operations (rate limiting, logging, health check, admin
socket, signals, shutdown, body size limit), deployment artifacts, and
two review checkpoints.
No circular dependencies. Critical path length of 7. Risk distribution:
3 high-risk (ACME, TLS listener setup, startup orchestration), 7 medium,
11 low, 2 trivial.
2026-06-11 11:21:10 +00:00