Consent: leave macOS permission cards of an ended session to Cingulate

Merged
AF
1d ago
+116-4

At startup AFT withdraws the macOS permission cards it recorded, each under the scope it was filed in. When the filing session has ended, the daemon refuses the route (scope_not_live), so on the 0.64 RC card all 38 withdrawals failed and their rows stayed for the next start, where they would fail again.

That refusal now maps to a new ConsentError::ScopeGone. Startup drops the record and leaves the ask to Cingulate, which settles asks of ended scopes itself (SUBC's change on the Cingulate side). A held tool call that meets the refusal gets the same unavailable answer as before, so no agent-visible text changes.

Tests: subc::consent:: (192, macOS) including a new macos_permission_startup_drops_cards_whose_scope_ended; Windows compile with warnings as errors.


Summary by cubic

Fixes repeated startup failures for macOS permission cards whose filing scope has ended, leaving their settlement to Cingulate.

When the daemon refuses the withdrawal route with scope_not_live or scope_ended, AFT now maps the error to a new ConsentError::ScopeGone and drops the card record instead of keeping it for another retry at the next start. Held tool calls that meet this refusal still get the same unavailable answer as before, so no agent-visible text changes.