tix improvements - #2842
Draft
Sebastian Thiel (Byron) wants to merge 250 commits into
Draft
Conversation
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
5 times, most recently
from
July 28, 2026 14:40
afdaef0 to
6b2dcd1
Compare
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
9 times, most recently
from
August 5, 2026 07:55
2618805 to
43c144d
Compare
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
12 times, most recently
from
August 12, 2026 08:19
8ebd7f8 to
3e9e83c
Compare
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
from
August 12, 2026 12:04
775fdd0 to
bdf06fc
Compare
The previous description could be read as an ordinary Git stash at the current checkout. State that tix creates a gix stash associated with the HEAD commit, matching the existing storage and restoration behavior.
Store checks-pass metadata as worktree-local Git notes keyed by tree ID. Show the marker in the TUI and plain status output, and expose it through the enrich shortcut group.
Expose commit todo, Tix note, Git note, and tree checks-pass enrichments through nested CLI commands. Targets default to HEAD, accept change IDs, and boolean commands support idempotent --clear updates.
Keep prefix labels compact in the footer and render active choices in a connected one-line overlay above it. Clamp the overlay to the terminal, draw it above other content, and preserve the existing interaction behavior.
Move rebase commands into the actions prefix and allow a selected linear HEAD ancestry to move as one stack while preserving refs, checkout state, and cycle safety.\n\nAdapt the rebased signing API and fixture snapshots needed by the feature tests.
Keep conflict previews armed while users navigate, center the conflicting row, require Enter or Escape, and absorb the resolved index before continuing.\n\nLoad metadata for the full editable todo scope and render commit/tree enrichment markers before signature state.
Shift notices and pane status rows above visible prefix popouts, suppressing a popout only when a protected row has no space to move. Reverse only the title of an unselected HEAD row.
Add copy-insert beside the renamed move-insert and stack-insert actions, using a dedicated copied plan step so the destination receives HEAD’s change without consuming the source occurrence or its resources. Select the new copy as detached HEAD, retain source refs and notes, carry copy conflicts through the existing continuation flow, reject review-source duplication, and expose the actions as a c, a m, and a t.
Replace the ASCII dirty-worktree marker with the requested two-column glyph while preserving the existing status gutter, selection styling, and conflict-marker precedence. Update the rendering regression and behavioral specification so deletion statistics continue to use D independently.
Rename the ref-only forkpoint action to attach at a h. Restore a f as an independent commit fork that reuses new-commit preparation, preserves enrichments, pins the new leaf atomically, and travels to it without rewriting the source stack.
Shade titles at attached and detached foreign worktree HEADs while keeping the current HEAD and selection more prominent. Preserve both attached-checkout and remembered-branch decorations when they share a branch.
Add first, parent, child, and tip destinations resolved within HEAD's visible default-view component. Report ambiguous endpoints with directly usable commit and change IDs while preserving the existing travel pipeline.
Keep pane content above the floating popup while extending each cleared overlay to its original bottom, so no history row shows through.
Exclude tracking-only graph nodes from reverse-hex change-ID resolution so command selectors match rendered history rows. Cover the duplicated-upstream case that made tix travel report false ambiguity.
Collapse non-tip history segments into nonselectable ring rows while preserving visible tips, selection, and graph topology. Keep rewrite and conflict selection workflows on the full history.
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
from
August 19, 2026 08:57
8d35567 to
972ed1f
Compare
Preserve selected symbolic ref names before peeling, and continue incremental refresh through cached ancestry when a pin makes it visible.
Retain graph endpoints, junctions, and hidden boundaries as selectable commits. Let synthetic linear segments participate in navigation and expand in place while preserving modal target eligibility and refresh state.
Rank refreshed first-parent descendants by their current displayed branch before lane computation, so advancing a tip does not swap independent lanes. Cover successive refreshes and compressed history.
Preserve the selected entry viewport row while cycling between canonical and compressed projections, clamping only when the new history cannot keep it. Cover entering on a commit and leaving from a compressed segment.
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
from
August 19, 2026 17:12
6eac1c5 to
aaa76f5
Compare
Store per-worktree operation history as config-serialized commits, restore refs and affected worktrees with checked transactions, and expose undo/redo through the TUI. Show the current queue position as two-tone progress in the transient message line, while keeping internal queue refs out of history and revision selection.
Reserve top-level prefix keys across every submenu, move stash into actions, and underline stack-insert at its actual shortcut.
Reload the active view after an editor returns and relocate the target by its full change ID. This preserves concurrent tree amendments while failing safely if the identity disappeared or became ambiguous.
Exclude obsolete commits retained by the append-only history cache from descendant and merge queries used by edits. Preserve the ordinary history scope across ref-tree refreshes that temporarily load foreign worktree tips.
Reuse an available symbolic HEAD pin as the checkout target when returning to its branch, avoiding an intermediate detached checkout and its extra worktree traversal. Complete pending rebases using only the affected rewritten path so unrelated history cannot delay or block time travel.
Present history refreshes and time travel as complete frames so viewport-dependent alignment is not redrawn through intermediate layouts. Keep changes panes visible during navigation and make conflict markers steady, leaving Ratatui responsible for normal buffer diffing.
Expose the existing atomic undo-reference cleanup for recovery when the worktree-local queue should be discarded without replaying it. Delete only this worktree’s tip and cursor refs. Repeated calls are no-ops; recorded refs and other worktrees remain untouched.
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
from
August 20, 2026 04:29
e818c61 to
8267bbc
Compare
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.
It's useful to validate that signatures are correctly set, and to validate them as well.
Consider merging after each task, as more of them keep piling up.
Tasks