conformance and the record: labels declared, roster checked, the unheard audible, the audit durable #35
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Meta/Campaign
Meta/Epic
Meta/Session
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Curated
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Scope/Campaign
Status/Abandoned
Status/Blocked
Status/Conflicted
Status/In Progress
Status/In Review
Status/Need Grooming
Status/Need More Info
Status/Ready
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Ting/Jostoph!35
Loading…
Reference in a new issue
No description provided.
Delete branch "agent.teyla/Jostoph:tango/28-steward-conformance"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
In scope — the four steward-scope conformance tickets, one theme: the steward can now notice what the forge is missing, and remember what it decided.
nix/forgejo.nixdeclares the label vocabulary the law reads (curated, law 13's statesin-progress/in-review/conflicted, overlaysblocked/needs-decision) as org labels, in Forgejo's ownCreateLabelOptionshape inside the desired-state document the provider already reconciles.nix/policy.nixnow refuses at eval time to read a label the estate does not declare. README's silent-squash warning updated: declared, reconcile pending.jostoph roster: repo collaborators + org members vs the policy'smemberships, both directions of drift, read-only, exit 1 when a person is needed. Module gains an optional oneshot-on-a-timer (services.jostoph.conformance) holding the read-only token the answering service never sees.jostoph kinds: every kind the audit record has heard vsPolicy::kinds_read()(kept beside the rules so a new rule cannot silently be missed). An empty record — a webhook that never fired — is the loudest finding; the first real approval delivery identifies the survivingapproval_kindsspelling.FileSink: append-only JSON lines, newest-first read-back, torn final lines skipped without poisoning the record before them.serve --audit-logtees it behind the ring so/v1/auditanswers across a restart;StateDirectory=jostophis the one write the hardened unit gains. This is the record the executor (#26) starts from.Out of scope — performing anything (still answers-only), the executor (#26), law-13 label transitions (#25), rotation/retention beyond append-only.
Boundary — the answering service still holds no token; the roster's token lives in its own oneshot unit. One new crate (
ureq, rustls) for the one-shot read.Acceptance, as it ran —
cargo test40 passed (9 new); clippy-D warningsand fmt clean;nix flake checkall green (policy-drift and module-eval included). Live:jostoph rosteragainst jo.et0.pw namedagent.teylaactive-but-undeclared — the exact drift #29 was filed about;jostoph kindsover a one-push record reportedpush: 1seen and both approval spellings never heard, exit 1.Closes #28
Closes #29
Closes #30
Closes #31
28c51ab5b0toa9a4627f2b