TUI: 50/50 split layout with metadata & details panes#784
Merged
rgardler-msft merged 6 commits intomainfrom Mar 2, 2026
Merged
TUI: 50/50 split layout with metadata & details panes#784rgardler-msft merged 6 commits intomainfrom
rgardler-msft merged 6 commits intomainfrom
Conversation
Co-authored-by: rgardler-msft <108765066+rgardler-msft@users.noreply.github.com>
…t-Tab focus cycling Co-authored-by: rgardler-msft <108765066+rgardler-msft@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add 50/50 split layout with metadata and details panes
TUI: 50/50 split layout with metadata & details panes
Mar 2, 2026
…TC dates, consistent rows - Replace unsafe 'as any' chain with null-safe optional chaining for metadataPane extraction - Add null guard inside setMetadataBorderFocusStyle to prevent crashes when metadataPane is absent - Simplify applyFocusStyles/applyFocusStylesForPane by removing redundant ternaries - Add formatDate static method using UTC methods for timezone-independent rendering - Make all metadata rows render consistently (Tags, Assignee, Created, Updated always present) - Replace @ts-ignore with explicit typed cast in destroy() - Remove doubled blank line at controller.ts:2817 - Add test assertions for date formatting, row count, and empty-field rendering
…ialog The description pane now shows only title, description, and comments (metadata is in the dedicated metadata pane). The detail modal dialog retains the full format with all metadata fields. - Add 'detail-pane' format to humanFormatWorkItem() rendering title, description, and comments only - Switch updateDetailForIndex() from 'full' to 'detail-pane' - Keep openDetailsForId() using 'full' so dialogs include metadata
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.
The TUI previously showed only a left/right split with the full item detail on the right, requiring users to context-switch to see metadata, description, and comments together.
Layout restructure
MetadataPane— status, stage, priority, #comments, tags, assignee, created/updated timestampsNew
MetadataPaneComponentsrc/tui/components/metadata-pane.ts— blessed box with a singleupdateFromItem(item, commentCount)method. Called fromupdateDetailForIndex()on every selection change, keeping metadata in sync with the tree.Focus cycling
list → metadata → detail(wrap)Test changes
tests/tui/focus-cycling-integration.test.ts: mock layout updated to includemetadataPaneComponent; assertions updated for 3-pane wrap (was 2)test/tui-integration.test.ts: label lookups updated (' Details '→' Description & Comments '); focus cycle assertions updated accordinglytests/tui/layout.test.ts:MetadataPaneComponentadded to interface assertionstests/tui/tui-50-50-layout.test.ts(new): 8 integration tests — metadata content, comment count propagation, Tab/Shift-Tab cycling, dialog suppressionWarning
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 Item without GitHub mapping --body-file - worklog/data de/node/bin/bashrev-parse git -bin�� /tmp/wl-wt-first-Ismo6t/local-re/tmp/wl-wt-err-yXSZzJ/local-repo/.worklog/tmp-worktree-ioIV0F/wtbash rktree-ioIV0F/wt odules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/bash first sync --show-toplevel k/node_modules/.rev-parse -data.jsonl(http block)/usr/bin/gh gh issue create --repo owner/name --title Item 1 --body-file - XSZzJ/local-repo/home/REDACTED/work/Worklog/Worklog/tests/cli/mock-bin/git ache/node/24.13.rev-parse bash -bin�� -C /tmp/worklog-test-SNxA3Z/.worklog/tmp-worktree-BHEAD k/Worklog/Worklog/tests/cli/mock-bin/node -fdx add orklog/data bash(http block)/usr/bin/gh gh issue create --repo owner/name --title Item 2 --body-file - XSZzJ/local-repo/home/REDACTED/work/Worklog/Worklog/tests/cli/mock-bin/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>TUI: 50/50 split layout with metadata & details panes</issue_title>
<issue_description>
TUI: 50/50 split layout with metadata & details panes — Intake Draft (WL-0MLORPQUE1B7X8C3)
Problem statement
Users
Success criteria
Constraints
wlcommands / db.update flows).Existing state
src/commands/tui.tswith many related modules undersrc/tui/*(layout, state, handlers, persistence). There is existing work to modularize and test TUI components.Desired change
MetadataPane,DescriptionView,CommentsList(integrate with existing comment create API/path).tests/tui/that opens the TUI in headless/test mode, selects an item, adds a comment, and asserts metadata #comments increments and that the new comment text appears in the comments view.Related work
Potentially related docs
Derived keywords
Verification & manual checks
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.