Hand-off from cortexkit/insula#8, where the maintainer falsified our filed "insula latches credential_unusable" mechanism at source and by test, and narrowed the remainder to a question only this module can answer.
The falsification, condensed (full analysis on insula#8, 2026-08-17T22:48Z)
- Insula re-probes unusable lanes every 300s flat (no terminal state) — the lane was probed ~12 times during the failure hour. Recovery-without-restart is now pinned by tests in both directions (
a_credential_unusable_lane_recovers_without_a_restart, a_rewritten_capability_is_picked_up_without_a_restart).
- The published string
credential unusable: credential requires authentication is produced by exactly one path: VaultGetError::AuthRequired — a live claustrum refusal, not a timeout, not a stale insula-side verdict.
- No feedback loop from insula:
report_auth_failure gates on upstream 401/403, unreachable when the vault refuses before any upstream call.
The observation this module has to explain
For >1h on 2026-08-17: claustrum answered needs_reauth for oauth:anthropic on insula's long-lived connection, while claustrum's own health reported needsReauth: 0 and the record had been successfully replaced by a connected re-seal (ck-auth import --replace, "replaced oauth:anthropic", health ok 5/5). Insula's restart — the only event that established a new vault connection — cleared it in ~30s. Same shape re-verified on the 2026-08-18 re-seals (restart-of-consumer heals; time does not).
The maintainer's frame, which fits every observation: connection- or lease-scoped state on the serve path — a connection opened before the re-seal keeps resolving to the pre-re-seal verdict; health counts the (fresh) record, the serve path answers from the (stale) scope. Possibly relevant prior art: the single-writer lease machinery from #3 — if the serve verdict is cached per-lease or per-connection-epoch, a re-seal that replaces the record without bumping the epoch would produce exactly this split.
The discriminating test (his design; we can run the live half)
After a re-seal, request the same capability over a fresh connection while the consumer's pre-re-seal connection still fails:
- Fresh connection serves → connection-scoped: no consumer-side retrying helps; the fix is serve-path invalidation on record replace.
- Both fail → the capability in
vault-handles.json is not the one the re-seal produced; the fix is in the import step.
Offer: the trigger is ~deterministic on our box (harness restarts rotate the Anthropic token; re-seals run ~daily). At the next natural rotation we will hold the failing state briefly and run the fresh-connection probe before restarting insula, and post both results here with timestamps.
Interaction with #6 (worth folding into that thread's disposition)
The maintainer's caveat lands squarely on #6's design: a clearing edge that triggers a re-probe over the SAME connection may return the same stale answer. So whichever clearing-edge shape #6 settles on (consumer re-probe or change cursor), the contract must state what the vault invalidates on record replace — otherwise the clearing edge masks this defect instead of fixing it. Cross-linked.
Disposition ask
- Is serve-path verdict state scoped to connection/lease/epoch by design, and if so what is the intended invalidation on record replace?
- If the fresh-connection probe comes back both-fail, does the import step need a read-back-verify (import writes, then serves what it wrote)?
- Renderer note (not yours, tracked):
ck quota sectioning only providers-with-usage made this read as "provider vanished" — the insula maintainer is relaying that to the subc side.
Timeline transcripts with timestamps available for both incident days.
Hand-off from cortexkit/insula#8, where the maintainer falsified our filed "insula latches credential_unusable" mechanism at source and by test, and narrowed the remainder to a question only this module can answer.
The falsification, condensed (full analysis on insula#8, 2026-08-17T22:48Z)
a_credential_unusable_lane_recovers_without_a_restart,a_rewritten_capability_is_picked_up_without_a_restart).credential unusable: credential requires authenticationis produced by exactly one path:VaultGetError::AuthRequired— a live claustrum refusal, not a timeout, not a stale insula-side verdict.report_auth_failuregates on upstream 401/403, unreachable when the vault refuses before any upstream call.The observation this module has to explain
For >1h on 2026-08-17: claustrum answered
needs_reauthforoauth:anthropicon insula's long-lived connection, while claustrum's own health reportedneedsReauth: 0and the record had been successfully replaced by a connected re-seal (ck-auth import --replace, "replaced oauth:anthropic", healthok5/5). Insula's restart — the only event that established a new vault connection — cleared it in ~30s. Same shape re-verified on the 2026-08-18 re-seals (restart-of-consumer heals; time does not).The maintainer's frame, which fits every observation: connection- or lease-scoped state on the serve path — a connection opened before the re-seal keeps resolving to the pre-re-seal verdict; health counts the (fresh) record, the serve path answers from the (stale) scope. Possibly relevant prior art: the single-writer lease machinery from #3 — if the serve verdict is cached per-lease or per-connection-epoch, a re-seal that replaces the record without bumping the epoch would produce exactly this split.
The discriminating test (his design; we can run the live half)
After a re-seal, request the same capability over a fresh connection while the consumer's pre-re-seal connection still fails:
vault-handles.jsonis not the one the re-seal produced; the fix is in the import step.Offer: the trigger is ~deterministic on our box (harness restarts rotate the Anthropic token; re-seals run ~daily). At the next natural rotation we will hold the failing state briefly and run the fresh-connection probe before restarting insula, and post both results here with timestamps.
Interaction with #6 (worth folding into that thread's disposition)
The maintainer's caveat lands squarely on #6's design: a clearing edge that triggers a re-probe over the SAME connection may return the same stale answer. So whichever clearing-edge shape #6 settles on (consumer re-probe or change cursor), the contract must state what the vault invalidates on record replace — otherwise the clearing edge masks this defect instead of fixing it. Cross-linked.
Disposition ask
ck quotasectioning only providers-with-usage made this read as "provider vanished" — the insula maintainer is relaying that to the subc side.Timeline transcripts with timestamps available for both incident days.