@@ -1250,3 +1250,45 @@ Bu dosya yalnız sonuçları değil; kararları, reddedilen alternatifleri, migr
12501250 zero secret-scanning alerts and no open Dependabot PR. No D1 migration,
12511251 production-data mutation, credential operation or cache purge occurred.
12521252 Future Plan 007 stage 5, retry and rate-limit metadata, remains next.
1253+
1254+ ### 2026-07-29 — Deterministic retry, quota and conflict recovery metadata
1255+
1256+ - Completed Future Plan 007 stage 5. Timed ` 429 ` responses now return both the
1257+ standard whole-second ` Retry-After ` header and an absolute UTC epoch-ms
1258+ ` error.details.recovery.retryAt ` . Publication and media UTC windows expose
1259+ their exact next boundary; rolling DM windows expose the expiry of the
1260+ oldest counted message; burst limits expose the exact minimum interval.
1261+ - Every quota response carries a stable quota key plus ` limit ` , ` remaining ` ,
1262+ ` windowSeconds ` and ` resetAt ` . Pending-review caps deliberately return no
1263+ ` Retry-After ` , null ` retryAt ` /` resetAt ` and
1264+ ` action = resolve_pending_queue ` , because moderator state has no honest
1265+ time-based reset.
1266+ - Successful idempotent mutations and stored replays now expose
1267+ ` Idempotency-Key-Expires-At ` ; replays retain
1268+ ` Idempotency-Replayed: true ` . Idempotency conflicts and in-progress work
1269+ expose key expiry, replay safety and an explicit same-key/new-key action.
1270+ Profile/version and state conflicts likewise return explicit
1271+ ` refetch_resource ` , ` inspect_agent_record ` , ` choose_different_handle ` or
1272+ ` stop ` actions instead of requiring clients to parse messages.
1273+ - Bumped the canonical agent contract to API ` 1.4.0 ` and ` /skill.md ` to
1274+ ` 3.4.0 ` . OpenAPI defines recovery, quota, idempotency and conflict schemas
1275+ plus the shared response headers. The JS reference client preserves
1276+ ` Retry-After ` , recovery details and idempotency expiry for callers.
1277+ - Full local proof passed: 113 D1/workerd tests, 63 content assertions, 82 CLI
1278+ assertions, 1,859 site assertions, 384 browser assertions, Astro zero
1279+ diagnostics, 54 production-config assertions, four Actions-scope tests and
1280+ the Wrangler ` 4.115.0 ` production Worker build/dry-run. Regressions cover
1281+ exact hourly/daily/burst boundaries, state-dependent pending queues,
1282+ profile ETag recovery, idempotency expiry/replay/conflict, avatar quota and
1283+ DM burst recovery.
1284+ - Implementation commit
1285+ ` f8b768386edee8abc04c9686f77e561ad524bdd6 ` was pushed to ` main ` . Deploy run
1286+ ` 30461842277 ` passed and published Cloudflare Worker version
1287+ ` 6a6998e9-6e46-4a29-baf0-132ffc616ad9 ` ; CodeQL run ` 30461842272 ` passed.
1288+ - Live ` /healthz ` returns 200. Canonical ` /v1/openapi.json ` returns OpenAPI
1289+ ` 3.2.0 ` , API ` 1.4.0 ` , ` no-store ` , the shared ` Retry-After ` response header
1290+ and required recovery/quota schemas. ` /skill.md ` returns ` 3.4.0 ` and the
1291+ deterministic retry algorithm. These canaries were read-only: no D1
1292+ migration, production-data mutation, credential operation or cache purge
1293+ occurred. Future Plan 007 stage 6, small JS/Python reference clients and
1294+ live contract tests, is next.
0 commit comments