- validate the upstream requirement of exactly two commits
- accept soft reset followed by a replacement commit
- reject resetting to one commit without creating the squashed commit
- document squash validation parity
- place Save before Dismiss in Git-backed editors
- rename the Git editor Close action to Dismiss
- match Git editor dialog and content sizing to the vi file editor
- create and enter the level's declared starting directory
- inspect Git state from the repository containing the active directory
- start the init level in /sandbox/git_hug and cover it with a runtime test
- apply edited reword subjects as commit messages in the in-app rebase editor
- cover rename_commit with a native interactive rebase regression test
- remove the upstream contribute call to action from the playable level catalog
- update level parity documentation
- Open a hidden diagnostics dialog after tapping the header seven times within fifteen seconds.
- Let the diagnostics dialog toggle the pane color/stripe skin on demand.
- Restore the normal app background and pane colors by default.
- Stop Scaffold from preserving the bottom navigation-bar inset while the keyboard is visible.
- Apply bottom navigation padding only when the IME is not open.
- Give each top-level pane a distinct temporary diagnostic color and stripe pattern.
- Give the root app background a separate purple diagnostic color so empty space outside panes is identifiable.
- Hide the terminal output viewport when there are no output lines on a newly loaded level.
- Reduce the minimum output history height so short output does not create a large empty black panel.
- Use the pane surface color for the app background so normal spacing between cards is not black.
- Make pane containers wrap their content instead of filling the IME-adjusted viewport.
- Make the terminal surface content-height driven so it no longer expands into a large black area above the keyboard.
- Keep terminal focus without explicitly reopening the software keyboard after command field recreation.
- Preserve submitted-command IME echo suppression when advancing to the next level.
- Recreate the terminal input field when loading a level so stale editor state is discarded.
Improve hardware keyboard and editor focus handling
- Map physical Tab, arrow, and Enter keys to the terminal actions used by the on-screen controls.
- Keep focus in the terminal input after command submission.
- Focus editor content fields when editor dialogs open.
- Rebuild the app-private git-exec helper directory when the packaged native Git binary changes.
- Remove stale helper aliases before recreating symlinks/copies.
- Add regression coverage for refreshing cached Git exec aliases across binary changes.
- Add LevelsCompare.md with setup and validation comparisons against Gazler/githug.
- Document that LevelsCompare.md must be updated when level behavior changes.
- Track FETCH_HEAD count in RepoState so the Fetch level can match upstream validation.
- Mirror upstream Status setup with staged files plus untracked database.yml.
- Keep Fetch from being solved by pull despite native Git FETCH_HEAD behavior.
- Bump app version and build debug APK.
- Open an interactive staging dialog for `git add -i`, `git stage -i`, and
`git add --interactive`, allowing paths to be selected before staging.
- Open an interactive rebase dialog for `git rebase -i` / `--interactive`, with
pick, squash, drop, commit-message editing, and reorder controls.
- Keep the existing synthetic runtime behavior available for direct engine/test calls,
while making app-entered interactive commands show real UI instead of auto-staging.
- Center manpage search navigation using actual text-layout highlight bounds instead
of approximate line and column math.
- Make editor dialogs use a full-screen IME-padded outer scroll container so controls
remain reachable when the keyboard pans or resizes the dialog.
- Expand the missing-native-Git message with the selected ABI, 32/64-bit ABI lists,
Android version, device model/platform details, expected binary path, and a request
to report the information so device support can be added.
- Use application-scoped DataStore delegates for game progress and pane layout
preferences to avoid duplicate DataStore instances during activity recreation, such
as screen orientation changes.
- Center manpage search matches in the visible scroll viewport when possible and apply
IME padding so keyboard-covered space is accounted for.
- Support mobile-friendly handling for interactive add/stage commands (`git add -i`,
`git stage -i`, and `git add --interactive`) by routing them through GitHug's
staging semantics instead of rejecting them or launching Git's terminal UI.
- Apply IME padding to editor dialogs so controls remain reachable while the keyboard
is displayed.
- Split core game models from sandbox engine, native level setup, and repo state saving.
- Move app overlays and completion helpers out of GitHugApp.
- Extract the terminal special key bar into its own component.