feat(tui): Add GitHub link and Push action to metadata pane#920
Merged
SorraTheOrc merged 2 commits intomainfrom Mar 11, 2026
Merged
feat(tui): Add GitHub link and Push action to metadata pane#920SorraTheOrc merged 2 commits intomainfrom
SorraTheOrc merged 2 commits intomainfrom
Conversation
Co-authored-by: SorraTheOrc <250240+SorraTheOrc@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add GitHub link and push action in TUI metadata
feat(tui): Add GitHub link and Push action to metadata pane
Mar 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TUI users had no way to view or act on a work item's GitHub issue without leaving the TUI. This adds a GitHub row to the metadata pane and a
G(Shift+G) shortcut to open or push.Metadata pane — new GitHub row
MetadataPaneComponent.updateFromItemnow acceptsgithubIssueNumberandgithubRepoand renders a 9th row with one of three states:githubRepoconfiguredGitHub: (set githubRepo in config to enable)GitHub: owner/repo#42 (G to open)GitHub: (G to push to GitHub)G(Shift+G) key handler in controllerhttps://github.com/<repo>/issues/<n>in default browser; falls back to clipboard copy if browser open failsupsertIssuesFromWorkItems([item], ...)off the render loop, persists mapping viadb.upsertItems?.(), then opens the created issue URL (clipboard fallback on failure)Conflict avoidance with
g(delegate)Both
gandGshare the same key name in blessed. Guards added:ghandler: early-returns whenkey.shift === trueGhandler: early-returns when!key.shiftKey files changed
src/tui/components/metadata-pane.ts— extended item type, added GitHub rowsrc/tui/constants.ts—KEY_GITHUB_PUSH = ['G'], help menu entrysrc/tui/controller.ts—tryGetGithubRepo()helper, passes github fields to pane,Gkey handler, shift guardstests/tui/tui-50-50-layout.test.ts— row count assertions updated 8→9tests/tui/tui-github-metadata.test.ts— 10 new tests (unit rendering + controller integration)Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/graphql/usr/bin/gh gh issue create --repo owner/name --title Alpha item --body-file - U5Zcy/wt bin/bash bash i/mo�� -C /.worklog/tmp-worktree-0f9gI6/wt k/ContextHub/ContextHub/tests/cli/mock-bin/bash -m first sync i/mock-bin/bash -data.jsonl(http block)/usr/bin/gh gh issue create --repo owner/name --title Alpha item --body-file - U5Zcy/wt es/.bin/bash bash i/mo�� -C /.worklog/tmp-worktree-0f9gI6/wt k/node_modules/.bin/bash -m first sync ash -data.jsonl(http block)/usr/bin/gh gh issue create --repo owner/name --title Alpha item --body-file - --verify de/node/bin/bashconfig bash i/mo�� show-ref /.worklog/tmp-worktree-RAxAvr/wt k/ContextHub/node_modules/.bin/bash og/data /tmp/worklog-tes/home/REDACTED/work/ContextHub/ContextHub/tests/cli/mock-bin/git modules/@npmcli/rev-parse git(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>Github link in tui meta-data</issue_title>
<issue_description>
Github link in TUI meta-data (WL-0MMLXZ9Z90O3N49Q)
Headline summary
Add a visible GitHub link and a Push action in the TUI item's metadata pane so users can open or create the mapped GitHub issue from the TUI and receive clear success/failure feedback.
Problem statement
Users of the TUI cannot quickly open or create the corresponding GitHub issue for a work item from the metadata view. This requires them to switch to the CLI or web UI to inspect or push an item, adding friction and context switching.
Users
Success criteria
wl gh push --id <id>flow and on success:githubIssueNumber,githubIssueId, andgithubIssueUpdatedAt(same behavior as existing push), andgithubRepo), the Push action is disabled and the UI displays a short hint (one-line) that tells the user how to configure the repo (e.g., "Set githubRepo in config or usewl github --repo <owner/repo> push").Constraints
wl gh pushcode path.theme.tuistyles).Existing state
src/tui/controller.ts— main TUI controller and metadata pane renderingsrc/commands/github.ts— CLI github push command and helper wiringsrc/github-sync.ts— logic that creates/updates GitHub issues and persists mappingsDesired change
githubIssueNumberexists, orhttps://github.com/<repo>/issues/<number>in the default browser.wl gh push --id <id>(reuse existing functions fromsrc/commands/github.tsor its helpers), runs off the render loop, surfaces progress or errors via existing toast patterns, and opens the created issue URL on success.githubRepois not configured and show a one-line hint where the control would be (e.g., "Configure githubRepo in config or runwl github --repo <owner/repo> push").Related work
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.