Fix ticket action locking scope in web UI#38
Merged
Neokil merged 2 commits intoJun 9, 2026
Conversation
be1e90b to
4421c3d
Compare
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Testing
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