Skip to content

Reach parents and children from the task list#68

Merged
textfuel merged 4 commits intotextfuel:mainfrom
seflue:feat/issue-hierarchy-navigation
May 5, 2026
Merged

Reach parents and children from the task list#68
textfuel merged 4 commits intotextfuel:mainfrom
seflue:feat/issue-hierarchy-navigation

Conversation

@seflue
Copy link
Copy Markdown
Contributor

@seflue seflue commented May 3, 2026

Closes #47

Space opens an issue's children, Backspace opens its parent; each step pushes onto a stack and Esc pops back. The Sub and Lnk info-panel tabs offer the same walks for the previewed issue. Both walks share an ad-hoc tab next to the existing ones, like the JQL tab.

  • Cloud children come from the parent-link query from Show parent-link children in Sub tab on Cloud #66 (same data the Sub tab shows); DC still reads Issue.Subtasks.
  • Each step snapshots the left panel (issues, cursor, focused panel, info tab and cursor) so Esc returns to where the user was.
  • Space on a leaf issue opens its detail. Backspace on an issue without a parent is a no-op.
  • Parent and Cloud children fetches drop stale responses by epoch, matching the existing previewEpoch pattern.

#66 was only the enabler for this PR. I got sidetracked, while working on this and realized, that I would have to solve the parent-link problem first.

From any task in the issue list, users now walk into its subtasks or
jump to its parent and follow the chain as far as the data goes. The
same works from the Sub and Lnk info-panel tabs, so the whole hierarchy
is reachable without leaving the keyboard. Stepping back restores the
cursor and view from before the walk.

The walk lives in an ad-hoc issue tab next to the existing ones,
analogous to the JQL tab: it appears on demand, holds the current step's
results, and disappears when the user pops out.

The previewed issue, info panel, and clipboard actions stay in sync
with whatever is currently in focus along the path.
@seflue seflue requested a review from textfuel as a code owner May 3, 2026 13:20
Copy link
Copy Markdown
Owner

@textfuel textfuel left a comment

Choose a reason for hiding this comment

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

Thanks for the PR!

Nice feature and the tests look solid. Left a few comments to double-check before merge

Comment thread pkg/tui/app.go
Comment thread pkg/tui/hierarchy.go Outdated
Comment thread pkg/tui/hierarchy.go
Comment thread pkg/tui/app.go
@seflue seflue requested a review from textfuel May 5, 2026 01:35
Copy link
Copy Markdown
Owner

@textfuel textfuel left a comment

Choose a reason for hiding this comment

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

Thanks for the fixes! Merging

@textfuel textfuel merged commit 11ba667 into textfuel:main May 5, 2026
2 checks passed
@seflue seflue deleted the feat/issue-hierarchy-navigation branch May 5, 2026 07:45
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request May 8, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [textfuel/lazyjira](https://github.com/textfuel/lazyjira) | minor | `v2.9.0` → `v2.13.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>textfuel/lazyjira (textfuel/lazyjira)</summary>

### [`v2.13.0`](https://github.com/textfuel/lazyjira/releases/tag/v2.13.0)

[Compare Source](textfuel/lazyjira@v2.12.0...v2.13.0)

#### Changelog

- [`16a6dd6`](textfuel/lazyjira@16a6dd6) Merge branch 'hotfixes-of-demo-check'
- [`11ba667`](textfuel/lazyjira@11ba667) Reach parents and children from the task list ([#&#8203;68](textfuel/lazyjira#68))
- [`26afc79`](textfuel/lazyjira@26afc79) Show parent-link children in Sub tab on Cloud ([#&#8203;66](textfuel/lazyjira#66))
- [`d5f63df`](textfuel/lazyjira@d5f63df) changelog
- [`34ab861`](textfuel/lazyjira@34ab861) changelog
- [`5dbd650`](textfuel/lazyjira@5dbd650) codowners adjustments
- [`6aa089d`](textfuel/lazyjira@6aa089d) fixes
- [`d22816b`](textfuel/lazyjira@d22816b) release v2.13.0

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

### [`v2.12.0`](https://github.com/textfuel/lazyjira/releases/tag/v2.12.0)

[Compare Source](textfuel/lazyjira@v2.11.1...v2.12.0)

#### Changelog

- [`6af4d03`](textfuel/lazyjira@6af4d03) Feat/task status icons ([#&#8203;64](textfuel/lazyjira#64))
- [`a19773b`](textfuel/lazyjira@a19773b) changelog
- [`4ca1ee7`](textfuel/lazyjira@4ca1ee7) release v2.12.0
- [`c476e2b`](textfuel/lazyjira@c476e2b) sprint fields ([#&#8203;48](textfuel/lazyjira#48))

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

### [`v2.11.1`](https://github.com/textfuel/lazyjira/releases/tag/v2.11.1)

[Compare Source](textfuel/lazyjira@v2.11.0...v2.11.1)

#### Changelog

- [`29ca5ae`](textfuel/lazyjira@29ca5ae) Route to tracking only on exact remote match ([#&#8203;62](textfuel/lazyjira#62))
- [`5516244`](textfuel/lazyjira@5516244) release v2.11.1

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

### [`v2.11.0`](https://github.com/textfuel/lazyjira/releases/tag/v2.11.0)

[Compare Source](textfuel/lazyjira@v2.10.2...v2.11.0)

#### Changelog

- [`382fe06`](textfuel/lazyjira@382fe06) changelog
- [`23b6d49`](textfuel/lazyjira@23b6d49) feat: add catppuccin theme support ([#&#8203;59](textfuel/lazyjira#59))
- [`ced4b10`](textfuel/lazyjira@ced4b10) readme v2 path
- [`9d434fc`](textfuel/lazyjira@9d434fc) release v2.11.0
- [`e570d8b`](textfuel/lazyjira@e570d8b) some dev QOL ([#&#8203;60](textfuel/lazyjira#60))

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

### [`v2.10.2`](https://github.com/textfuel/lazyjira/releases/tag/v2.10.2)

[Compare Source](textfuel/lazyjira@v2.10.1...v2.10.2)

#### Changelog

- [`94fafd7`](textfuel/lazyjira@94fafd7) fix of v2 version naming ([#&#8203;57](textfuel/lazyjira#57))
- [`86f48fe`](textfuel/lazyjira@86f48fe) release v2.10.2

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

### [`v2.10.1`](https://github.com/textfuel/lazyjira/releases/tag/v2.10.1)

[Compare Source](textfuel/lazyjira@v2.10.0...v2.10.1)

#### Changelog

- [`fe34157`](textfuel/lazyjira@fe34157) changelog
- [`5728a57`](textfuel/lazyjira@5728a57) pkg/config: accept string shorthand for the projects list ([#&#8203;53](textfuel/lazyjira#53))
- [`cce7280`](textfuel/lazyjira@cce7280) release v2.10.1

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

### [`v2.10.0`](https://github.com/textfuel/lazyjira/releases/tag/v2.10.0)

[Compare Source](textfuel/lazyjira@v2.9.0...v2.10.0)

#### Changelog

- [`45afec5`](textfuel/lazyjira@45afec5) Add configurable custom commands ([#&#8203;42](textfuel/lazyjira#42))
- [`851bfa1`](textfuel/lazyjira@851bfa1) Context-sensitive preview for Sub/Lnk tabs ([#&#8203;55](textfuel/lazyjira#55))
- [`f546bc7`](textfuel/lazyjira@f546bc7) Make maxResults configurable globally and per tab ([#&#8203;45](textfuel/lazyjira#45))
- [`672fb6d`](textfuel/lazyjira@672fb6d) changelog
- [`67bdf1a`](textfuel/lazyjira@67bdf1a) changelog
- [`d14fb0e`](textfuel/lazyjira@d14fb0e) perl for make release
- [`b04c7a8`](textfuel/lazyjira@b04c7a8) release v2.10.0

***

**Full changelog:** [CHANGELOG.md](https://github.com/textfuel/lazyjira/blob/main/CHANGELOG.md)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNjguNSIsInVwZGF0ZWRJblZlciI6IjQzLjE2OC41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6bWlub3IiXX0=-->
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.

Hierarchical drill-down/up navigation for issue lists

2 participants