Skip to content

tix improvements - #2842

Draft
Sebastian Thiel (Byron) wants to merge 282 commits into
mainfrom
tix-improvements
Draft

tix improvements#2842
Sebastian Thiel (Byron) wants to merge 282 commits into
mainfrom
tix-improvements

Conversation

@Byron

@Byron Sebastian Thiel (Byron) commented Jul 26, 2026

Copy link
Copy Markdown
Member

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

  • this first gix notes #2930
  • rebase onto main and merge
  • make sure no changes are made to non-gix-tix crates, or review them carefully.

Comment thread gix-tix/src/lib.rs Fixed
@Byron
Sebastian Thiel (Byron) force-pushed the tix-improvements branch 5 times, most recently from afdaef0 to 6b2dcd1 Compare July 28, 2026 14:40
Comment thread gix-tix/src/lib.rs Fixed
@Byron
Sebastian Thiel (Byron) force-pushed the tix-improvements branch 9 times, most recently from 2618805 to 43c144d Compare August 5, 2026 07:55
@Byron
Sebastian Thiel (Byron) force-pushed the tix-improvements branch 12 times, most recently from 8ebd7f8 to 3e9e83c Compare August 12, 2026 08:19
Comment thread gix-tix/src/edit/reword.rs Fixed
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.
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants