Skip to content

Show every linked Jira workspace and add a Has Workspace view - #28590

Merged
nwparker merged 4 commits into
mainfrom
nwparker/jira-task-actions
Oct 14, 2026
Merged

nwparker merged 4 commits into
mainfrom
nwparker/jira-task-actions

Conversation

@nwparker

@nwparker nwparker commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor
Files Added Deleted Net
Test 4 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​376 0 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​376
Prod 15 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​526 $\color{#cf222e}{\Huge{\mathbf{−}}}$​76 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​450

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 linkedItems model 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.

Before Jira workspace indicator
After Jira workspace picker
After Has Workspace 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 tc finds the existing missing now argument in structured-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

  • Not applicable, or this change copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.

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

  • This PR is small and focused
  • I explained what changed and why (ELI5, the user-facing before/after, the mechanism, and why over the alternatives)
  • Before/after screenshots or videos attached for UI changes, or N/A with reason
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH/remote, and path/shortcut impact considered (or N/A)
  • pnpm lint, pnpm typecheck, pnpm test, and pnpm build pass (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.

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Warning

Review limit reached

You'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.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 57e9c6d6-e62b-4a37-8664-ede9236e2f0e
📥 Commits

Reviewing files that changed from the base of the PR and between 1f3277fce10f29f5b9775f3374a7d71e281d295c and caf0938.

📒 Files selected for processing: 6
  • src/renderer/src/components/JiraLinkedWorkspaceAction.tsx
  • src/renderer/src/components/task-page-jira-issue-list.tsx
  • src/renderer/src/components/task-page-jira-sort-controls.tsx
  • src/renderer/src/components/task-page-jira-workspace-actions.test.tsx
  • src/renderer/src/i18n/en-runtime-required.json
  • src/renderer/src/i18n/locales/en.json

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 45552698-1210-42b6-bd3f-5886a8c9c8ba
📥 Commits

Reviewing files that changed from the base of the PR and between 3f57ff9 and 1f3277fce10f29f5b9775f3374a7d71e281d295c.

📒 Files selected for processing: 1
  • src/renderer/src/i18n/locales/en.json
🚧 Files skipped from review as they are similar to previous changes: 1
  • src/renderer/src/i18n/locales/en.json

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.

📝 Walkthrough

The Jira task list now matches Jira issues to linked workspaces and loads issues referenced by those workspaces. A persistent “Has Workspace” mode filters the list to linked issues and supports local search. Issue rows show actions to open linked workspaces or start another workspace. The change also adds activation error handling, English strings, and tests for matching, loading, filtering, and workspace actions.

Priority: ➖ Normal

Merge Risk: 🔵 Low · up to 1f327

An issue with exactly one linked workspace opens that workspace directly, and the row offers no way to start another one. This is a bounded usability gap that matches the stated design and is acceptable as owner-aware follow-up.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 27 functions across 17 files. (1 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title clearly summarizes the two primary changes: displaying all linked Jira workspaces and adding a Has Workspace view.
Description check Passed The description covers all required sections with clear user impact, implementation details, rationale, linked issue, visual proof, testing, AI disclosure, review risk, compatibility notes, and checkl…
Linked Issues check Passed Issue #15182 requires Jira task-list workspace visibility, support for multiple linked workspaces, and a Has Workspace mode. The PR adds Jira attachment indexing with site, project, account, and execu…
Out of Scope Changes check Passed The changes stay within issue #15182. The new Jira components, state, storage, linked-issue loading, attachment matching, row layout, translations, and tests implement the workspace indicator and Has …
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 27 functions across 17 files. (1 skipped: 1 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 20d7aca2-6cd1-4613-af5f-6cfc026c02e2
📥 Commits

Reviewing files that changed from the base of the PR and between 5e1c117 and 3f57ff9.

📒 Files selected for processing: 18
  • src/renderer/src/components/JiraLinkedWorkspaceAction.tsx
  • src/renderer/src/components/jira-linked-view-storage.ts
  • src/renderer/src/components/read-linked-task-issues.ts
  • src/renderer/src/components/task-page-jira-issue-list.tsx
  • src/renderer/src/components/task-page-jira-linked-issues.test.ts
  • src/renderer/src/components/task-page-jira-linked-issues.ts
  • src/renderer/src/components/task-page-jira-sort-controls.tsx
  • src/renderer/src/components/task-page-jira-workspace-actions.test.tsx
  • src/renderer/src/components/task-page-linear-in-orca-issues.ts
  • src/renderer/src/components/task-page/jira/Content.tsx
  • src/renderer/src/components/task-page/jira/Filters.tsx
  • src/renderer/src/components/use-task-page-jira-list-effects.test.ts
  • src/renderer/src/components/use-task-page-jira-list-effects.ts
  • src/renderer/src/components/use-task-page-jira-list-projection.ts
  • src/renderer/src/components/use-task-page-jira-list-state.ts
  • src/renderer/src/i18n/locales/en.json
  • src/renderer/src/lib/jira-issue-workspace-attachment.test.ts
  • src/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.

@nwparker
nwparker force-pushed the nwparker/jira-task-actions branch 3 times, most recently from 71952b9 to da3b9b5 Compare October 14, 2026 10:16
nwparker and others added 4 commits October 14, 2026 03:19
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>
@nwparker
nwparker force-pushed the nwparker/jira-task-actions branch from da3b9b5 to caf0938 Compare October 14, 2026 10:20
@nwparker
nwparker merged commit 8f91313 into main Oct 14, 2026
3 checks passed
smwbev added a commit to smwbev/orca that referenced this pull request Oct 15, 2026
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.
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.

[Feature]: Show linked workspaces for Jira issues in the Tasks list (parity with GitHub and Linear)

1 participant