Repository navigation
Show every linked Jira workspace and add a Has Workspace view - #28590
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 11 minutes. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ➖ Normal Merge Risk: 🔵 Low · 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:
20d7aca2-6cd1-4613-af5f-6cfc026c02e2
📒 Files selected for processing: 18
src/renderer/src/components/JiraLinkedWorkspaceAction.tsxsrc/renderer/src/components/jira-linked-view-storage.tssrc/renderer/src/components/read-linked-task-issues.tssrc/renderer/src/components/task-page-jira-issue-list.tsxsrc/renderer/src/components/task-page-jira-linked-issues.test.tssrc/renderer/src/components/task-page-jira-linked-issues.tssrc/renderer/src/components/task-page-jira-sort-controls.tsxsrc/renderer/src/components/task-page-jira-workspace-actions.test.tsxsrc/renderer/src/components/task-page-linear-in-orca-issues.tssrc/renderer/src/components/task-page/jira/Content.tsxsrc/renderer/src/components/task-page/jira/Filters.tsxsrc/renderer/src/components/use-task-page-jira-list-effects.test.tssrc/renderer/src/components/use-task-page-jira-list-effects.tssrc/renderer/src/components/use-task-page-jira-list-projection.tssrc/renderer/src/components/use-task-page-jira-list-state.tssrc/renderer/src/i18n/locales/en.jsonsrc/renderer/src/lib/jira-issue-workspace-attachment.test.tssrc/renderer/src/lib/jira-issue-workspace-attachment.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.
71952b9 to
da3b9b5
Compare
Reuse the existing attachment model and bounded issue-reader to show linked workspace counts and a Has Workspace view. Co-authored-by: Jinjing <6427696+AmethystLiang@users.noreply.github.com>
da3b9b5 to
caf0938
Compare
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
Jira issues now show how many Orca workspaces already work on them. Open one directly instead of accidentally starting another, or choose Has Workspace to see just the linked tickets.
What Changed
Before, every Jira row offered Start workspace, even when several repositories already had workspaces for the same issue. Rows now show a persistent workspace count: one opens directly, several open a picker with a separate Start new workspace option.
The attachment index reads the existing
linkedItemsmodel and legacy links, skips archived workspaces, includes folder workspaces, and requires Jira site identity (including Server/Data Center context paths). Jira account and execution-host boundaries prevent same-key collisions. Has Workspace reads the linked keys directly with at most six requests at a time, includes closed tickets, filters the results locally, reports partial failures, and ignores stale responses when switching sources. Its preference stays on the device so older paired hosts receive no new fields.Why
One issue can need API, web, and infrastructure changes in different repositories. A first-match-only indicator hides that group; filtering the usual 50-item Jira list would silently omit linked tickets outside the page. Reading the stored attachments and exact linked keys solves both without a second attachment store or branch-name guesses that could select an unrelated site.
The implementation follows the merged GitHub attachment work in #3820 and Linear Has Workspace in #12632, both by Jinjing (@AmethystLiang). The existing Linear bounded-reader loop is extracted and reused; author credit is retained in the commit.
Linked Issue
Fixes #15182
Visual Proof
Hidden Electron renderer, macOS; actual Jira list/filter components and theme CSS with clearly labeled synthetic Jira fixtures. The picker was clicked and selecting Web login fix invoked its workspace action. Before shows no attachment indicator; after shows both workspaces and the linked-only view.
Testing
I manually tested these changes locally
Automated tests added/updated, or explained why not below
Reproduced against the base: the single-workspace and multiple-workspace row tests both failed because only Start workspace existed.
Focused regressions pass: attachment matching, site/context-path/account/host collisions, secondary links, multiple repositories, archived/folder/SSH workspaces, row picker, exact linked reads, local search, partial failures, refresh, and stale-response cancellation. Existing Jira grouping and Linear linked-reader tests also pass.
pnpm tc:web,pnpm run check:code-quality:changed, and all three localization checks (extraction, catalogs, coverage) pass. The English catalog includes every new workspace message.pnpm tcfinds the existing missingnowargument instructured-agent-session-message-options.ts; merge #28593 first to resolve that unrelated base error.CDP proof exercises the actual components with fixtures; live Jira credentials and a real SSH server were not used. Linux/Windows behavior uses the same existing activation path and needs CI coverage. No keyboard shortcuts, host RPC methods, wire formats, or Git commands are added. Mobile is unchanged.
AI Disclosure
Implemented with Codex and reviewed through focused tests and rendered Electron checks.
Review
Merge risk: Medium. This adds a new Jira list mode and touches shared row/header sizing, projection, and loading. It reuses existing attachments and activation paths. Coordinate with the Jira panel-width and optional-column PRs when merging: retain the workspace action cell and its 80px trailing width. The optional branch-prefix heuristic in the issue is intentionally omitted because a bare branch name cannot prove Jira site identity.
Agent skill upstream boundary
Notes
No new credentials, attachment persistence, native APIs, or provider-specific Git behavior. The linked view routes reads through the existing Jira task source and refresh cache. Workspaces may live on local, SSH, or paired hosts; Jira source ownership remains independent of workspace execution ownership. Local preference storage avoids mixed-version strict-schema failures.
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)Full lint/build and remaining platform checks are left to CI; focused tests, renderer typecheck, and the changed-lines quality gate were run locally. The existing full typecheck failure is described above.