Skip to content

Fix ticket action locking scope in web UI#38

Merged
Neokil merged 2 commits into
mainfrom
gh-37-state-buttons-locked-when-another-ticket-is-in-progress
Jun 9, 2026
Merged

Fix ticket action locking scope in web UI#38
Neokil merged 2 commits into
mainfrom
gh-37-state-buttons-locked-when-another-ticket-is-in-progress

Conversation

@Neokil

@Neokil Neokil commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • scope ticket action disabling to the affected ticket instead of a global active job
  • add optimistic per-ticket busy state and ticket-scoped failed job banners
  • add regression coverage for cross-ticket actions, optimistic disable behavior, and cleanup flow expectations

Testing

  • cd web && npm test
  • cd web && npm run lint
  • cd web && npm run typecheck
  • make build
  • go test ./...
  • make test-e2e

Notes

  • golangci-lint run ./... is currently blocked by pre-existing lint failures in generated API code and stale references to sibling worktree paths.

Closes #37

@Neokil Neokil force-pushed the gh-37-state-buttons-locked-when-another-ticket-is-in-progress branch from be1e90b to 4421c3d Compare June 9, 2026 11:18
When SSE events (job:running, job:done, ticket_updated:done) arrive before
the 202 action response is processed, optimisticTicketJob would remove the
already-completed job and re-insert it as "queued" with no further events
to clear it — leaving busy=true and all action buttons disabled forever.

Fix: reuse the existing job entry if it already arrived via SSE; only create
a new "queued" placeholder if the job is not yet known. Compute isBusy
dynamically from actual job statuses instead of hardcoding true.

Also reduce e2e timeouts from 60s/30s to 10s — the mock provider takes
~100ms so there is no reason to wait longer on failure.
@Neokil Neokil merged commit 8038a7f into main Jun 9, 2026
6 checks passed
@Neokil Neokil deleted the gh-37-state-buttons-locked-when-another-ticket-is-in-progress branch June 9, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

State-Buttons locked when another ticket is in progress

1 participant