Conversation
…ring down the whole connection
Lets users disconnect a single integration check (e.g. GitHub branch protection)
from one evidence task while keeping the integration connected for every other
task that uses it. Previously users had to fully disconnect the integration and
reconnect with a subset of checks, which was slow and destructive.
Disable state lives under `IntegrationConnection.metadata.disabledTaskChecks` —
no new table, no migration. Works uniformly for static manifest-based and
dynamic integrations since both share the same connection pipeline.
- Per-task disable helpers with defensive merges (no mutation of inputs)
- `TaskIntegrationChecksService` handles enable/disable with org scoping
- New endpoints: POST `/v1/integrations/tasks/:taskId/checks/{disconnect,reconnect}`
- `runCheckForTask` returns 400 when invoked for a disabled (task, check) pair
- Daily orchestrator and per-task worker both filter disabled checks out of
the run list (orchestrator primary, worker defensive for race conditions)
- Task detail UI: per-check disconnect button with confirm dialog, new
"Disconnected from this task" section with reconnect buttons
- SWR hook exposes optimistic `disconnectCheckFromTask` / `reconnectCheckToTask`
with rollback on error
Tests: 32 new API unit tests + 4 frontend hook tests covering success,
idempotency, org scoping, unknown checks, and optimistic rollback.
…rtal CS-236 Trust Portal does not persist SOC2 Type2 removal
PR SummaryMedium Risk Overview The API now returns Scheduled automation is updated to skip disabled checks both when batching tasks and again defensively at execution time. The task UI adds controls and confirmation flow to disconnect/reconnect checks, with SWR optimistic updates and tests. Also fixes trust portal framework updates by ensuring Reviewed by Cursor Bugbot for commit 132aa95. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
…ect PR 1. Keep the disconnect confirmation dialog open during the async request so the "Disconnecting…" state is visible and any API error is surfaced in the dialog context. Radix's AlertDialogAction auto-closes on click, which was firing before handleConfirmDisconnect awaited — users never saw the loading state, and failures rendered on the main page behind the backdrop. Fix: e.preventDefault() in the action onClick, ignore close attempts while togglingCheck is set, and render errors inline inside the dialog. 2. Remove the unused TaskIntegrationChecksService.getDisabledCheckIdsForTask method. It was only referenced by its own tests — the controller reads disable state directly via the isCheckDisabledForTask utility, so the service method was dead code. Tests updated accordingly.
…from-evidence feat(integrations): disconnect individual checks per task
|
🎉 This PR is included in version 3.19.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.