Skip to content

feat(github-issues): linked issues nest and track their sub-issues - #2024

Merged
donjor merged 2 commits into
hyprwsfrom
t3/linked-issue-subissues
Nov 9, 2026
Merged

donjor merged 2 commits into
hyprwsfrom
t3/linked-issue-subissues

Conversation

@donjor-agent

@donjor-agent donjor-agent Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

🤖 claude/anthropic claude-opus-5-5 (high)

Problem

A thread that links a parent or tracker issue shows no sub-issue progress or hierarchy.
Agents reading list_thread_issues cannot see the children either.

Change

Snapshot:

  • Adds subIssues and parent
  • Keys omitted when empty
  • Optional fields; old snapshots still decode

Sync:

  • Same GraphQL read; no extra request
  • Deleted the second read for child close reasons
  • One issue URL parser, shared from contracts
  • A child's state change rereads its linked parent
  • Child edits count as a snapshot change

UI:

  • Linked children nest under a linked parent
  • Other children open with Show sub-issues
  • Progress (2/6) on row, badge, and details
  • Parent meta (↰ #N) on a root row
  • Stale cycles fall back to roots

MCP:

  • list_thread_issues adds subIssues, parent

Scope and approval

Fork-owned github-issues domain; requested by the maintainer in the thread that did the work.

Verification

Checks:

  • vp run check:changed origin/hyprws → exit 1
  • 11 browser files failed on module fetch; all pass on rerun
  • vp run fork:ci → ok on 1843b1e
  • Web and server vp run build → exit 0
  • Server, contracts, and web typecheck → exit 0
  • 62 server, 74 web, 6 contracts issue tests pass

Not checked:

  • No eval run; no issue-tool eval case exists

Grounded in Chrome against astral-sh/uv fixture links; before, none of these surfaces showed sub-issues.

Collapsed: progress and linked children nested.

subissues-collapsed.png

Expanded: Show sub-issues lists the rest.

subissues-expanded.png

Root child: parent meta.

subissues-parent.png

Badge hover: progress in the mini list.

subissues-badge.png

Details panel: progress on the issue row.

subissues-details.png

Claude Opus 5.5 via Claude Code, in T3 Code.

Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol

@donjor donjor self-assigned this Nov 9, 2026
@rsi-software-agent

rsi-software-agent Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

🧩 UI Consistency 1843b1e ✅ clear

No findings.

🕐 9 Nov 03:08 UTC ⏱️ 3 min 🤖 gpt-6.1-sol 🪙 135.9K

Details
Head Result Time Check
1843b1e ✅ clear 3 min run
3210a12 ✅ clear 5 min run

@rsi-software-agent

rsi-software-agent Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

🧩 Effect Service Conventions 1843b1e ✅ clear

No findings.

🕐 9 Nov 03:09 UTC ⏱️ 5 min 🤖 gpt-6.1-sol 🪙 473.9K

⚠️ Not verified: Reviewed the full PR delta; eight focused test files passed. Builds, typechecks, and knip were not rerun.

Details
Head Result Time Check
1843b1e ✅ clear 5 min run
3210a12 ✅ clear 7 min run

@rsi-software-agent

rsi-software-agent Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

🩺 Aftercare 1843b1e ✅ clear

resolved 3

commit 3210a12

  • A1 Share the issue URL parser between hierarchy and sync ✅ 1843b1e
  • A2 Remove obsolete child-reason enrichment commentary ✅ 1843b1e
  • A3 Retire test-only string decoder entry points ✅ 1843b1e

🕐 9 Nov 03:18 UTC ⏱️ 9 min 🤖 gpt-6.1-sol 🪙 764.4K

⚠️ Not verified: Live GitHub/Enterprise hierarchy reads and rendered UI were not independently exercised.

Details

A1 Share the issue URL parser between hierarchy and sync · apps/server/src/githubIssue/ThreadIssueSyncReactor.fork.ts:58

  • Problem: Parent refresh adds a second URL parser with different validation rules.
  • Fix: Lift the existing pure issue URL parser into shared fork-owned code; reuse it.
  • Note: Contracts owns githubIssueLinkTarget; sync, nesting, MCP, and UI consumers reuse it.

A2 Remove obsolete child-reason enrichment commentary · apps/server/src/githubIssue/gitHubIssueJson.ts:45

  • Problem: RawSubIssue still documents an enrichment request this PR deletes.
  • Fix: Describe direct GraphQL stateReason selection; remove the obsolete CLI-version rationale.
  • Note: RawSubIssue no longer documents the deleted child-reason enrichment request.

A3 Retire test-only string decoder entry points · apps/server/src/githubIssue/gitHubIssueJson.ts:252

  • Problem: Only tests call string decoders; production uses duplicated parsed decoders.
  • Fix: Move fixtures onto production parsed decoders, then delete string wrappers and encodeJson.
  • Note: String decoders and encodeJson are deleted; fixtures exercise production parsed decoders.
Head Result Time Check
1843b1e ✅ clear · 3 fixed 9 min run
3210a12 🟡 2 open · 3 new 6 min run

@donjor
donjor force-pushed the t3/linked-issue-subissues branch from 3210a12 to 1843b1e Compare November 9, 2026 03:04
@rsi-software-agent rsi-software-agent Bot added size:XL 500-999 effective changed lines (test files excluded in mixed PRs). and removed size:L labels Nov 9, 2026
@donjor
donjor merged commit b5239b2 into hyprws Nov 9, 2026
23 of 25 checks passed
@donjor
donjor deleted the t3/linked-issue-subissues branch November 9, 2026 03:25
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Nov 9, 2026
…d labels (#2025)

## Problem

The Linked issues panel shows **no issue type or labels**.
Sub-issues sit behind a **Show sub-issues** button, with **no way to collapse** a tree.

## Change

**Snapshot:**

- **Adds `labels` and `issueType`**; same GraphQL read
- **Keys omitted** when empty
- **Schema-derived equality** for snapshots

**UI:**

- **Chevron** expands or collapses sub-issues
- **Open by default** while a sub-issue is linked
- **Guide line** marks each nesting level
- **Type and label chips** on every linked row
- **One label-chip component** for both lists

**MCP:**

- **`list_thread_issues`** adds `issueType`, `labels`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer as the follow-up to #2024.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 0
- `vp run fork:ci` → ok on `3144270`
- Web and server `vp run build` → exit 0
- **62 server** and **75 web** issue tests pass
- **Late parent snapshot** keeps its child shown

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome with fixture links: `biomejs/biome#4726`, `biomejs/biome#5242`, `astral-sh/uv#18506`.
Before, the panel looked like the #2024 captures.

Expanded: **linked `pingdotgg#5242` nests** under `pingdotgg#4726` with its **type and labels**.

![tree-both-expanded.png](https://github.com/user-attachments/assets/2fd8b427-377d-4d3c-b558-1249c3c0e76f)

Collapsed: **progress and chips** stay on the row.

![tree-collapsed.png](https://github.com/user-attachments/assets/20dc930f-095d-4bf1-a7d5-485bd76ac9c3)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…d labels (#2025)

## Problem

The Linked issues panel shows **no issue type or labels**.
Sub-issues sit behind a **Show sub-issues** button, with **no way to collapse** a tree.

## Change

**Snapshot:**

- **Adds `labels` and `issueType`**; same GraphQL read
- **Keys omitted** when empty
- **Schema-derived equality** for snapshots

**UI:**

- **Chevron** expands or collapses sub-issues
- **Open by default** while a sub-issue is linked
- **Guide line** marks each nesting level
- **Type and label chips** on every linked row
- **One label-chip component** for both lists

**MCP:**

- **`list_thread_issues`** adds `issueType`, `labels`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer as the follow-up to #2024.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 0
- `vp run fork:ci` → ok on `3144270`
- Web and server `vp run build` → exit 0
- **62 server** and **75 web** issue tests pass
- **Late parent snapshot** keeps its child shown

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome with fixture links: `biomejs/biome#4726`, `biomejs/biome#5242`, `astral-sh/uv#18506`.
Before, the panel looked like the #2024 captures.

Expanded: **linked `pingdotgg#5242` nests** under `pingdotgg#4726` with its **type and labels**.

![tree-both-expanded.png](https://github.com/user-attachments/assets/2fd8b427-377d-4d3c-b558-1249c3c0e76f)

Collapsed: **progress and chips** stay on the row.

![tree-collapsed.png](https://github.com/user-attachments/assets/20dc930f-095d-4bf1-a7d5-485bd76ac9c3)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…d labels (#2025)

## Problem

The Linked issues panel shows **no issue type or labels**.
Sub-issues sit behind a **Show sub-issues** button, with **no way to collapse** a tree.

## Change

**Snapshot:**

- **Adds `labels` and `issueType`**; same GraphQL read
- **Keys omitted** when empty
- **Schema-derived equality** for snapshots

**UI:**

- **Chevron** expands or collapses sub-issues
- **Open by default** while a sub-issue is linked
- **Guide line** marks each nesting level
- **Type and label chips** on every linked row
- **One label-chip component** for both lists

**MCP:**

- **`list_thread_issues`** adds `issueType`, `labels`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer as the follow-up to #2024.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 0
- `vp run fork:ci` → ok on `3144270`
- Web and server `vp run build` → exit 0
- **62 server** and **75 web** issue tests pass
- **Late parent snapshot** keeps its child shown

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome with fixture links: `biomejs/biome#4726`, `biomejs/biome#5242`, `astral-sh/uv#18506`.
Before, the panel looked like the #2024 captures.

Expanded: **linked `pingdotgg#5242` nests** under `pingdotgg#4726` with its **type and labels**.

![tree-both-expanded.png](https://github.com/user-attachments/assets/2fd8b427-377d-4d3c-b558-1249c3c0e76f)

Collapsed: **progress and chips** stay on the row.

![tree-collapsed.png](https://github.com/user-attachments/assets/20dc930f-095d-4bf1-a7d5-485bd76ac9c3)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
…d labels (#2025)

## Problem

The Linked issues panel shows **no issue type or labels**.
Sub-issues sit behind a **Show sub-issues** button, with **no way to collapse** a tree.

## Change

**Snapshot:**

- **Adds `labels` and `issueType`**; same GraphQL read
- **Keys omitted** when empty
- **Schema-derived equality** for snapshots

**UI:**

- **Chevron** expands or collapses sub-issues
- **Open by default** while a sub-issue is linked
- **Guide line** marks each nesting level
- **Type and label chips** on every linked row
- **One label-chip component** for both lists

**MCP:**

- **`list_thread_issues`** adds `issueType`, `labels`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer as the follow-up to #2024.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 0
- `vp run fork:ci` → ok on `3144270`
- Web and server `vp run build` → exit 0
- **62 server** and **75 web** issue tests pass
- **Late parent snapshot** keeps its child shown

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome with fixture links: `biomejs/biome#4726`, `biomejs/biome#5242`, `astral-sh/uv#18506`.
Before, the panel looked like the #2024 captures.

Expanded: **linked `pingdotgg#5242` nests** under `pingdotgg#4726` with its **type and labels**.

![tree-both-expanded.png](https://github.com/user-attachments/assets/2fd8b427-377d-4d3c-b558-1249c3c0e76f)

Collapsed: **progress and chips** stay on the row.

![tree-collapsed.png](https://github.com/user-attachments/assets/20dc930f-095d-4bf1-a7d5-485bd76ac9c3)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 12, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 12, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 12, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 12, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 13, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 13, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 13, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 13, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 14, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 14, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 14, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 14, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 15, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 15, 2026
…2024)

## Problem

A thread that links a **parent or tracker issue** shows **no sub-issue progress** or hierarchy.
Agents reading `list_thread_issues` **cannot see the children** either.

## Change

**Snapshot:**

- **Adds `subIssues` and `parent`**
- **Keys omitted** when empty
- **Optional fields**; old snapshots still decode

**Sync:**

- **Same GraphQL read**; no extra request
- **Deleted the second read** for child close reasons
- **One issue URL parser**, shared from contracts
- **A child's state change** rereads its linked parent
- **Child edits** count as a snapshot change

**UI:**

- **Linked children nest** under a linked parent
- **Other children** open with **Show sub-issues**
- **Progress** (`2/6`) on row, badge, and details
- **Parent meta** (`↰ #N`) on a root row
- **Stale cycles** fall back to roots

**MCP:**

- **`list_thread_issues`** adds `subIssues`, `parent`

## Scope and approval

**Fork-owned `github-issues` domain**; requested by the maintainer in the thread that did the work.

## Verification

**Checks:**

- `vp run check:changed origin/hyprws` → exit 1
- **11 browser files** failed on module fetch; **all pass** on rerun
- `vp run fork:ci` → ok on `1843b1e`
- Web and server `vp run build` → exit 0
- Server, contracts, and web typecheck → exit 0
- **62 server**, **74 web**, **6 contracts** issue tests pass

**Not checked:**

- **No eval run**; no issue-tool eval case exists

**Grounded** in Chrome against `astral-sh/uv` fixture links; before, none of these surfaces showed sub-issues.

Collapsed: **progress** and **linked children nested**.

![subissues-collapsed.png](https://github.com/user-attachments/assets/9a10d8d8-6657-456c-bf33-3023fd3741c2)

Expanded: **Show sub-issues** lists the rest.

![subissues-expanded.png](https://github.com/user-attachments/assets/205f5fae-d134-448e-ab6e-fb174abce2e4)

Root child: **parent meta**.

![subissues-parent.png](https://github.com/user-attachments/assets/314355b3-ffd4-4993-9d4a-dc4327b28f69)

Badge hover: **progress** in the mini list.

![subissues-badge.png](https://github.com/user-attachments/assets/b497bdbc-ee68-4e48-ae17-f3ab736e3951)

Details panel: **progress** on the issue row.

![subissues-details.png](https://github.com/user-attachments/assets/19ed83c4-bf6b-4528-badc-dcccd771e171)

Claude Opus 5.5 via Claude Code, in T3 Code.

## Fork trailers

Squashes:

- c3c6084144 feat(github-issues): linked issues nest and track their sub-issues (#2024) (#2024)
- 16f839c3ae feat(github-issues): linked issues expand, collapse, and show type and labels (#2025) (#2025)

Fork-Domain: github-issues
Fork-Tier: qol
Co-authored-by: donjor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 effective changed lines (test files excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant