Skip to content

🤖 fix: follow-ups for default unrelated-messaging consent (#4440) #4455

Description

@ThomasK33

Non-blocking follow-ups from the final readiness review of #4440 (default unrelated-messaging consent for user-created workspaces):

  1. Pending mark leak. If create() takes its removing/aborted branch, or throws between marking a deferred checkout pending and retaining the settlement, the pendingDefaultUnrelatedConsent entry is never cleared. This is harmless (only materializeDeferredCheckout reads it, and IDs are random), but it should be cleared there for tidiness.
  2. Failed deferred checkout stays off. A deferred checkout that fails without a sanitization error leaves a usable workspace with consent off, while an immediate checkout is granted. This fails closed. Either grant on that path once sanitization has succeeded, or mention the caveat in the tool and docs text.
  3. Multi-project has no plugin-override sanitization at all. This predates 🤖 feat: opt new user-created workspaces in to unrelated messaging by default #4440, but default consent now makes multi-project workspaces reachable by other task trees as soon as they are created. Decide whether multi-project needs registration-time sanitization.
  4. Test gap. Add a create()-level deferred-checkout test that asserts the mark is set before the announcement and cleared after settlement. Existing tests call materializeDeferredCheckout directly.

Related: #4444, #4446, #4453.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions