Repository navigation
Make existing Jira assignees searchable and add Assign to me - #28612
Conversation
📝 Walkthrough
Priority: ⬇️ Low Severity of issue fixed: Low Merge Risk: 🟡 Moderate · up to
|
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
7182a35b-bec3-4717-9502-79a52b6bd4f2
📒 Files selected for processing: 9
src/main/runtime/orca-runtime-files-artifact-facade.test.tssrc/renderer/src/components/JiraIssueWorkspace.assignee-source.test.tsxsrc/renderer/src/components/JiraIssueWorkspace.optimistic-edit.test.tsxsrc/renderer/src/components/JiraIssueWorkspace.transition-source.test.tsxsrc/renderer/src/components/JiraIssueWorkspace.tsxsrc/renderer/src/components/jira-issue-assignee-control.test.tsxsrc/renderer/src/components/jira-issue-assignee-control.tsxsrc/renderer/src/components/jira-issue-workspace-chrome.tsxsrc/renderer/src/i18n/en-runtime-required.json
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review.
288 commits landed on main between 9c113ed and 67fe1e1, and all six catalogs and en-runtime-required.json conflicted. They are taken from main and the prune is recomputed in one pass: 1,475 keys. Four Hermes keys left the set because stablyai#28877 deleted them from main, and two Jira keys joined it after stablyai#28590 and stablyai#28612 stopped reading them. en.json goes from 16,098 entries to 14,623; en-runtime-required.json keeps 558 of them. stablyai#28669 deleted ko-ui-semantic-mistranslations.test.ts, technical-literal-catalog-values.test.ts and zh-technical-literal-mistranslations.test.ts from main. This branch only removed the entries of pruned keys from them, so the deletion is taken.
ELI5
Assigning a Jira issue to yourself now takes one click. To assign someone else, type their name instead of scanning an unsorted list.
What Changed
The existing-issue preview now reuses the searchable user picker from issue creation. Results come from Jira's assignable-user search for this issue and site, with the signed-in account first and the remaining names alphabetically. The separate “Assign to me” action uses the selected source's site identity and disappears once the issue belongs to you.
The issue workspace passes its captured host to assignee metadata and searches, so the picker does not reread the default host. Source, account, site, and issue changes reset the picker, so a late search cannot leave candidates from another scope. Both assignment actions stop while any issue field is saving. User searches run when the picker opens; the old eagerly loaded list is removed.
Why
The old preview used a plain list even though Orca already had a searchable picker and site-aware account lookup. Reusing those keeps the creation and editing flows consistent and preserves their debounce and cancellation behavior. Current-user-first plus alphabetical order is deliberate and predictable without adding assignment-history tracking; recent/frequent ranking is not introduced.
Requested by Andy (@andyhorn) in #17052. No external source PR code copied. The merged creation-picker fixes #17456/#17532 addressed a different surface and supply the existing reusable components.
Linked Issue
Fixes #17052
Visual Proof
Earlier feature proof: the actual metadata components rendered in a hidden Electron window on macOS through Playwright CDP, with fixture Jira users and a simulated 350 ms save. These are fixture responses, not a live Jira account. Before and after use the same issue and viewport; the light-mode capture follows a successful search, assignment to Ada, and direct assignment to self.
The screenshots below predate the final composition with landed main. A subsequent full-Workspace proof passed 28 checks at c628b7f; the final lint extraction changes two source modules, so a fresh rendered run at the current head is pending.
Before:
After:
Light mode after assigning to self:
Fresh final-head visual checks after the action extraction:
Testing
dfc3c8410b4ee9b0680123ecd171643d2c24fe94: 133 tests pass across 14 suites, including assignee/self-account behavior, real Workspace mutation and rollback, transition/source ownership, request lifetime, runtime detail routing, and 33 file-open contract/routing checks.8e6848174c2836d0919f18ff070631291413e264. The transition control/form, single comment/transition reader, mutation queue/subscriber, hydration merge, content, and detail transport remain byte-identical to main.openMobileFileparameters while the existing main implementation already accepts four, including optional position. Only that test fixture changes here; the failing assertions were reproduced before correction and the 33 file-open checks pass afterward.Review
Merge risk: Low to medium. The issue-update API is unchanged; this replaces the assignee presentation and search timing. Jira still enforces assignment permissions and errors use the existing mutation path. Search now runs lazily and uses the existing 250 ms debounce. Other pending issue fields prevent assignment. The final branch is composed with the landed transition and optimistic-edit changes and preserves their shared mutation queue and comment/transition reader.
Agent skill upstream boundary
Notes
Existing runtime routing sends status reads and assignable-user searches to the selected source's host/account, including SSH/runtime sources. Site identity is checked before offering self-assignment. No OS-specific APIs, paths, keyboard bindings, Git assumptions, RPC fields, stream opcodes, or file formats change. Folder workspaces use the same preview. Mobile data contracts are unaffected; this desktop preview control is not a mobile redesign. Existing localization keys and design primitives are reused.
Checklist