Skip to content

Commit 313c820

Browse files
authored
Merge pull request #41 from runcycles/claude/review-audit-md-hOonG
Update audit documentation for error codes and response headers
2 parents a3cb290 + 0fdf184 commit 313c820

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

AUDIT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ Two-pass audit covering:
6464
### Request/Response Schemas (all match)
6565
- All 6 request schemas match spec (fields, types, constraints, defaults)
6666
- All 8 response schemas match spec (fields, required markers, types)
67-
- All 12 error codes match spec enum exactly
67+
- All 12 spec error codes present; server adds 2 extra (BUDGET_FROZEN, BUDGET_CLOSED) for admin-managed budget states
6868
- All 4 status enums match spec
6969
- `Subject` anyOf validation correctly enforced via `hasAtLeastOneStandardField()`
7070
- `additionalProperties: false` correctly enforced via `@JsonIgnoreProperties(ignoreUnknown = false)`
@@ -102,8 +102,8 @@ Two-pass audit covering:
102102

103103
### Response Headers (fully correct)
104104
- `X-Request-Id` set on every response (including errors) via `RequestIdFilter` — header set before `filterChain.doFilter()`, guaranteed present on all responses
105-
- `X-Cycles-Tenant` set on every authenticated response via `RequestIdFilter`
106-
- `X-RateLimit-Remaining` / `X-RateLimit-Reset` set on `/v1/decide` (optional in v0)
105+
- `X-Cycles-Tenant` set on every authenticated response via `ApiKeyAuthenticationFilter`
106+
- `X-RateLimit-Remaining` / `X-RateLimit-Reset` set on all `/v1/` paths via `RateLimitHeaderFilter` (optional in v0; sentinel values -1/0 signal unlimited)
107107

108108
### Error Semantics (all correct)
109109
- BUDGET_EXCEEDED → 409

0 commit comments

Comments
 (0)