diff --git a/tasks/adapters/review-002-fwd13-dot-segments.md b/tasks/adapters/review-002-fwd13-dot-segments.md index 1bce3be..0553af5 100644 --- a/tasks/adapters/review-002-fwd13-dot-segments.md +++ b/tasks/adapters/review-002-fwd13-dot-segments.md @@ -1,7 +1,7 @@ --- id: review-002-fwd13-dot-segments name: Reject lone dot-dot path values that Url-set_path normalizes away (FWD-13) -status: pending +status: completed depends_on: [] scope: narrow risk: medium @@ -64,4 +64,8 @@ spec/content leakage beyond the parameter name — follow the existing message style in `render_path_template`'s unbound-placeholder error). FWD-18 (object/array placeholder values double-routing to query) is tracked separately in review-002-fwd17-19-contract-decisions — do not -fold it here, the mechanisms are adjacent but the decisions differ. \ No newline at end of file +fold it here, the mechanisms are adjacent but the decisions differ. + +## Summary + +Lone ./.. (and %2e spellings) path values rejected INVALID_INPUT at value_to_path_segment; post-set_path normalization invariant in assemble_request_url; url 2.5.8 normalization empirically pinned; dotted-value legitimacy + segment-survival corpus tests. diff --git a/tasks/adapters/review-002-fwd16-missing-capability.md b/tasks/adapters/review-002-fwd16-missing-capability.md index 439caa6..ba105ec 100644 --- a/tasks/adapters/review-002-fwd16-missing-capability.md +++ b/tasks/adapters/review-002-fwd16-missing-capability.md @@ -1,7 +1,7 @@ --- id: review-002-fwd16-missing-capability name: Loud error on missing capability instead of silent unauthenticated request (FWD-16) -status: pending +status: completed depends_on: [] scope: narrow risk: low @@ -67,4 +67,8 @@ succeed without the assembly layer changing. If a deployment legitimately runs authed-ops with *optionally*-present credentials (none known today), that would be a new config flag — do not preemptively add one; the invariant (ADR-014: credentials flow only via Capabilities) argues -loud-and-closed. \ No newline at end of file +loud-and-closed. + +## Summary + +Silent missing-capability arm now fails with INTERNAL naming both key forms (api_key:/http_token:) and refusing the unauthenticated send; module doc loud-missing-matrix paragraph; 3 tests incl. a zero-upstream-requests wire test. Two pre-existing no-env-vars tests updated (they pinned the silent arm). diff --git a/tasks/client/review-002-cli01-retry-after-budget.md b/tasks/client/review-002-cli01-retry-after-budget.md index 07f6fbd..74458c8 100644 --- a/tasks/client/review-002-cli01-retry-after-budget.md +++ b/tasks/client/review-002-cli01-retry-after-budget.md @@ -1,7 +1,7 @@ --- id: review-002-cli01-retry-after-budget name: Budget-aware Retry-After sleep — stop re-arming a full ceiling per attempt (CLI-01) -status: pending +status: completed depends_on: [] scope: narrow risk: medium @@ -67,4 +67,8 @@ cross-request throttle map (FWD-11's eviction/jitter behavior is already fixed and correct). The natural seam is threading the budget handle into the middleware order so RetryAfter sees it — small, testable, no public API change (the budget is already a -`HttpClientConfig` field). \ No newline at end of file +`HttpClientConfig` field). + +## Summary + +BudgetClock extension anchored per logical request; sleeps truncated to min(deadline, budget); record() keeps earliest deadline, refreshes clamped to hard stop (drop-on-exhaustion). No public API change; tests/retry_after_budget.rs wire tests added.