2.1 KiB
2.1 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 18-immediate-activation | Immediate connection activation | done | 11 | plan.md | ../../specs/integrations/requirements/azure-devops-integration.md |
Task 18: Immediate Connection Activation
Acceptance
- Saving new or changed Azure credentials performs one bounded auth probe,
persists the result, and returns config with current
lastOk,lastCheckedAt, andlastError. - A successful save invalidates integration availability after the authoritative response so sidebar/home/settings consumers render Azure active within one second; the 90-second poll remains recovery only.
- A failed probe preserves the saved credential/config, returns unhealthy status with a useful error, and does not briefly expose Azure as active.
Verification
go test ./internal/azuredevops -run 'TestSetConfig(ProbesImmediately|PersistsProbeFailure)'fromapps/backend.pnpm --filter @kandev/web test -- --run components/azure-devops/azure-devops-settings.test.tsx hooks/domains/integrations/use-integration-availability.test.tsfromapps.
Files Likely Touched
apps/backend/internal/azuredevops/service.goapps/backend/internal/azuredevops/service_test.goapps/backend/internal/azuredevops/store.goapps/web/lib/api/domains/azure-devops-api.tsapps/web/components/azure-devops/azure-devops-settings.tsxapps/web/components/azure-devops/azure-devops-settings.test.tsxapps/web/hooks/domains/integrations/use-integration-availability.test.ts
Dependencies
None.
Parallelism
Sequential. It changes the authoritative connection mutation contract used by every later Azure feature.
Inputs
- Spec: immediate activation What, Failure Modes, and save scenario.
- Existing
invalidateIntegrationAvailabilityAfterand shared health poller.
Risks
- Do not launch an unobserved background probe: consumers need the probe result in the mutation response or a reliable completion signal.
Output Contract
Report RED/GREEN tests, response semantics, timing evidence, files changed, residual risks, and update task/plan status.