dashboard: add an opt-in window index column - #227
Open
alebiscotto wants to merge 2 commits into
Open
Conversation
The columns after Git were fixed as status, time, title, so reading the title meant skipping over a timer that is rarely the interesting part. Header cells, row cells and width constraints now all derive from dashboard.columns, which keeps them in sync by construction, and an omitted column simply is not rendered. Defaults are unchanged.
The sidebar shows the tmux window index since {window_index}, but the dashboard
could not: LivePaneInfo carried window_id and no index, so the number that
prefix + <n> uses was missing from the one view that lists every agent.
LIVE_PANE_FORMAT now asks tmux for it and LivePaneInfo carries it, so
reconciliation can stamp it on each agent as a live property rather than a
stored one that goes stale when windows are renumbered. The column is opt-in
through dashboard.columns and blank on backends that do not number windows.
parse_live_pane_line_strict required exactly 9 fields, so it rejected live tmux
output the moment the format grew: it now accepts the required prefix and reads
later fields with get(), like the lossy parser already did.
Owner
|
I'll try to have look at your PRs soon |
Contributor
Author
|
thank you!
…On Mon, Aug 17, 2026, 23:06 Raine Virta ***@***.***> wrote:
*raine* left a comment (raine/workmux#227)
<#227 (comment)>
I'll try to have look at your PRs soon
—
Reply to this email directly, view it on GitHub
<#227?email_source=notifications&email_token=AL6BI66425WGO23KYMOKHP35KNXU3A5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTKMZSGAZDIMJYHEY2M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L#issuecomment-5320241891>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AL6BI6YZJFP4HJBITBPFLKL5KNXU3AVCNFSNUABGKJSXA33TNF2G64TZHMYTAOBZHAZTANBUGE5US43TOVSTWNJRGEYTAMJRGU3DRILWAI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
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.
Note
Builds on #225 (
dashboard.columns), which the new column is selected through. The first commit here is that PR; review it first, and this branch rebases cleanly once it lands.Why
The sidebar can show the tmux window index since the
{window_index}token, but the dashboard cannot — and the dashboard is the view that lists every agent across sessions, so it is where lining the table up with the tmux status bar is most useful. Knowing that an agent is in window 3 meansprefix + 3gets you there.The number was simply not available:
LivePaneInfocarriedwindow_idbut no index, and the sidebar gets its own from a separate query in the sidebar daemon.What
LIVE_PANE_FORMATasks tmux for#{window_index}andLivePaneInfocarries it.window_idis refreshed from the live pane in the same place, for the same reason.dashboard.columns, so nothing changes unless it is asked for:A latent bug this surfaced
parse_live_pane_line_strictrequired exactly 9 fields, while the lossy parser reads trailing fields withget(). Adding one field to the format made the strict path reject real tmux output outright —workmux statusfailed withtmux returned malformed pane informationon live panes. It now accepts the required prefix and treats later fields as optional, so the format can grow again without breaking. This is the same shape of problem as #213: strict parsing turning a benign difference into a hard failure.Testing
None, and the strict parser accepts fields beyond the required prefix.cargo fmt --checkclean.Winin the configured position.