tix improvements - #2842
Draft
Sebastian Thiel (Byron) wants to merge 282 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
Replay the affected checkout ancestry before committing history edits so forget, reword, insertion, review completion, and todo rebases surface conflicts immediately while unrelated branches remain lazy. Keep suspended conflicts transactional, recognize valid external conflict amendments, preserve undo bookkeeping, and leave normal history quit available during resolution.
Prefix the selected commit title with its highlighted note title and an unstyled separator instead of replacing the commit title.
Keep the compact selection treatment for the current worktree, while reversing an off-worktree selection from the row start through its non-title metadata. Preserve an uninverted separator and title.
Temporarily hide enabled changes panes during repeated history navigation and restore them after the existing idle deadline. Keep this debounce independent from the removed frame animation machinery.
Finalize zero-delta commits as soon as their rewritten parent is final, and keep linked worktree indexes synchronized without touching worktree bytes.
Skip commit writing for final descendants whose effective parents did not change while retaining eager conflict detection for affected checkout history. Render every selected history row as one inversion through its title and remove the obsolete selection-tail state.
Preserve every asynchronously loaded metadata field when lane computation replaces provisional rows, avoiding epoch dates and lost review state. Render --quit-on-finish inline on the normal screen after the completed frame so its result remains inspectable.
Accept an optional keyboard-input string on --quit-on-finish and replay read-only actions after completed lanes have established the final layout. Keep the retained frame diagnostic safe by ignoring repository-changing, external-program, copy, and quit actions.
Give tree and worktree panes a shared maximum height so the shorter pane covers history rows beneath it instead of exposing title fragments during alignment changes.
Re-sign direct amend roots immediately so signed checked-out commits are never left pending. Keep reparented descendants lazy and cover the signed worktree fallback.
Animate completed pending rebases through fixed history viewports, jumping by a full page when the selection reaches the top. Temporarily expand compressed history, keep cached panes tied to the animation origin, and preserve completed mutations if frame rendering fails.
Emit ordinary commit rows for one-member linear groups so compressed mode always saves vertical space. Keep multi-segment expansion and reset coverage with longer fixtures, and document the minimum segment size.
Use Shift-modified directions for first-parent traversal and remembered branch choices in history and ref-tree views. Keep mouse and page input viewport-only by default, with Shift moving the cursor, and show fork choices without persistent motion modes. Always invert selected ref-tree node markers.
Render the interactive UI in a full-height inline viewport when requested so its frame and panic output remain visible. Restore terminal input modes, cursor state, and raw mode on normal, error, and panic paths.
Open one repository per lazily activated worker set and share it among thread-local worker handles. Retain the workers for ten seconds after a completed batch, then wake the event loop to join the pool and release its repository resources. Rebuild diff platforms for each batch so retained repositories do not preserve stale diff state.
Record externally amended conflict resolutions in the rewrite mapping and preserve that mapping across intermediate materialization. Use it for final continuation checkout so superseded resolution commits are recognized as rewritten instead of pinned as departures.
Restore the animation origin and its viewport row, and retain the mapped time-travel destination through refreshes. When a refresh no longer contains the selected object ID, match the displayed entry number within its visual base, then keep the nearest prior row before falling back to the top. Schedule refreshes when lazy finalization changes refs without producing a checkout notice.
Make unshifted Page and Ctrl-page input move the ref-tree selection, while Shift variants pan the viewport without moving it. Keep mouse and history navigation unchanged, and update the ref-tree hints and specification.
Animate only commits on the completed destination ancestry while still rewriting lazy sibling stacks. Defer time travel during lane computation so stale refresh results cannot displace the selection.
Infer the default hidden base for relative travel targets and exclude its boundary ancestry from navigation. This makes --to first select the oldest displayed commit above the base.
Restore cursor movement for plain page and Ctrl-page navigation in the history view. Reserve the Shift variants for panning the viewport without changing the selection.
Stack edits below HEAD now eagerly replay the checked-out path, so operations such as rewording can spend noticeable time cherry-picking and signing descendants. Run every interactive stack rewrite through the existing delayed rebase-progress modal, and extend ordinary edit rebases to report commit, cherry-pick, and signature progress.
Replace the separate commit prefix with a two-line actions menu. Keep general action keys stable and move new-empty and spill to a n and a l.
Sebastian Thiel (Byron)
force-pushed
the
tix-improvements
branch
from
August 22, 2026 06:48
1ba7835 to
d70daf1
Compare
Keep cached worktree status when a reference event leaves the logical HEAD referent and target unchanged. Let the worktree watcher exclusively handle index events so they don't also trigger history work.
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