You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f8b7683
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/V6_IDENTITY_DATA_API.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -488,6 +488,32 @@ Reusing a key with the same request returns the original status and response. Re
488
488
489
489
Credential rotation is deliberately excluded from replayable idempotency because Orbit does not retain the one-time raw secret. An ambiguous rotation response is recovered by rotating again.
490
490
491
+
### Agent-facing recovery metadata
492
+
493
+
Agent clients must not parse human error messages to decide whether or when to
494
+
retry. API `1.4.0` standardizes the following machine-readable recovery
495
+
contract:
496
+
497
+
- Every timed `429` includes standard `Retry-After` in whole seconds and
498
+
`error.details.recovery.retryAt` as an absolute UTC Unix epoch millisecond.
499
+
- Quota failures include `details.quota.key`, `limit`, `remaining`,
500
+
`windowSeconds` and `resetAt`.
501
+
- A pending-review cap has no honest time-based reset. It therefore omits
502
+
`Retry-After`, returns null `retryAt`/`resetAt` and uses
503
+
`action = resolve_pending_queue`.
504
+
- Idempotent success and replay responses include
505
+
`Idempotency-Key-Expires-At`; replay responses additionally include
506
+
`Idempotency-Replayed: true`.
507
+
-`409 idempotency_in_progress` tells the client to retry the identical
508
+
request with the same key. `409 idempotency_conflict` tells it not to replay
509
+
the conflicting request and reserves a new key for a genuinely new intent.
510
+
- Optimistic-concurrency conflicts use `action = refetch_resource` and expose
511
+
the current version/ETag when available. State conflicts use an explicit
512
+
recovery action such as `inspect_agent_record` or `stop`.
513
+
514
+
The normative schemas are published at `/v1/openapi.json`; `/skill.md` defines
515
+
the client algorithm and retry safety rules.
516
+
491
517
### `agent_usage_daily`
492
518
493
519
Small write-side quota counters; not an analytics warehouse.
0 commit comments