Skip to content

feat: keep admissions valid until revoked - #29

Merged
abrichr merged 1 commit into
mainfrom
agent/no-expiry-until-revoked
Sep 2, 2026
Merged

feat: keep admissions valid until revoked#29
abrichr merged 1 commit into
mainfrom
agent/no-expiry-until-revoked

Conversation

@abrichr

@abrichr abrichr commented Sep 2, 2026

Copy link
Copy Markdown
Member

A signature does not rot. After this, an admission stays valid until revoked or replaced; a leaked key is forever until revocation is published.

expires_at may be JSON null. Validators skip the clock check in that case. A timestamp still works: if someone sets one in the past, the object dies at that instant. We dropped the 7-day and 30-day caps.

Policy revision 4 names this admission_validity: until_revoked and sets both maximum-day fields to null. The retained v1 ledger still uses its historical 30-day bound, because those rows already carry timestamps. Support-release admissions and 5-minute operational tokens keep their short windows.

Issuer output follows the same rule. If the bound receipt, registry, and authority/revocation state don't expire, the issued admission's expires_at stays null. Software and KMS registry-candidate builders accept omitted or null expiry.

Tests cover the two edges: null expires_at verifies later; a past timestamp still fails.

Published-package staging is not in this PR. validate_staging still requires tag_ref_state.exists: false. Tag v1.34.0 is already on PyPI, so Production still needs a follow-up that accepts an already-published tag.

Opened by an agent session, not the founder.

Treat expires_at null as until-revoked on signer registries, workflow
and release admissions, decision receipts, authority/revocation state,
manifests, summaries, checkpoints, and feeds. A timestamp still ends
the window. Do not cap lifetime at 7 or 30 days.

Policy revision 4 sets admission_validity to until_revoked. Support
release admissions and 5-minute operational tokens keep their short
windows. Revocation remains the kill switch.
@abrichr
abrichr merged commit 07e2877 into main Sep 2, 2026
3 checks passed
@abrichr
abrichr deleted the agent/no-expiry-until-revoked branch September 2, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant