Skip to content

fix(web): deny open coordinator approval when sending a chat message - #79

Merged
TheGreatAxios merged 3 commits into
mainfrom
cl-11954-deny-open-coordinator-approval-when-sending-chat
Nov 2, 2026
Merged

TheGreatAxios merged 3 commits into
mainfrom
cl-11954-deny-open-coordinator-approval-when-sending-chat

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Closes CL-11954

Sending a chat message while a coordinator approval card (openApproval, such as design_app, approve_document, or request_approval) is open now denies that card (choice: "no") before delivering the message, so the parked coordinator wakes to read the person's message instead of remaining held on SignalAwaited. typedYes continues to hold plain affirmations for approval after the countdown, undoing the countdown denies the open approval before sending the words, and chooseApproach approves a matching approach card without double-deciding it.

Verified:

  • bun --conditions=intx-src test apps/web/src/pages/workspace/typed-yes.test.ts (5 pass, 0 fail)
  • bun --conditions=intx-src test apps/web/src (24 pass, 0 fail)
  • bun run lint (exit 0)
  • bun run format:check (exit 0)
  • bun run typecheck (exit 0)
  • bun run vendor:verify (exit 0)
  • bun run pins:verify (exit 0)

@linear-code

linear-code Bot commented Nov 2, 2026

Copy link
Copy Markdown

CL-11954

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • Conventions: added code matches a code pattern
    • apps/web/src/pages/workspace/index.tsx:1260-1477 nested-ternary: Nested ternary; use if statements or a lookup.
    • apps/web/src/pages/workspace/index.tsx:1284-1477 nested-ternary: Nested ternary; use if statements or a lookup.
    • apps/web/src/pages/workspace/index.tsx:1302-1477 nested-ternary: Nested ternary; use if statements or a lookup.

@TheGreatAxios
TheGreatAxios force-pushed the cl-11954-deny-open-coordinator-approval-when-sending-chat branch from 0f9c114 to 2ec9fc2 Compare November 2, 2026 04:16
@corbits-triage

corbits-triage Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Triage: Pass

No changes needed from you. A maintainer will review this pull request.

Triage will approve, request review.

@corbits-triage
corbits-triage Bot dismissed their stale review November 2, 2026 04:18

Nothing triage asked to change still fails, so this request no longer stands.

corbits-triage[bot]
corbits-triage Bot previously approved these changes Nov 2, 2026
@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

A text send does reject the parked tool. A send with a file does not.

Plain chat, question replies, suggested replies, and undoing a typed yes go through deliverWithOpenApproval and POST /approvals/:id/reject. Interchange answers the parked call with "denied by approver" and does not run the tool body.

send in apps/web/src/pages/workspace/index.tsx returns sendFiles() when there is an attachment and a coordinator card is open. That path never calls the reject. attachMaterials still mails the coordinator. The tool stays gated, so it does not run, but it stays on SignalAwaited, which is the stuck state this PR clears for a text send.

corbits-triage[bot]
corbits-triage Bot previously approved these changes Nov 2, 2026
@TheGreatAxios
TheGreatAxios added this pull request to the merge queue Nov 2, 2026
Merged via the queue into main with commit a503829 Nov 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant