Commit Graph

42 Commits

Author SHA1 Message Date
Joe Tretter
82e38de3bb Fix config level completion on device 2026-06-24 20:32:23 -05:00
Joe Tretter
1c15297ae6 Speed up runtime state refresh 2026-06-24 17:44:53 -05:00
Joe Tretter
0554c736e4 Call Git cmd_main directly 2026-06-24 13:16:35 -05:00
Joe Tretter
02a23694c3 Fix level setup, reword flow, and catalog scope
- 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
2026-06-08 14:21:21 -05:00
Joe Tretter
a1bb78c600 Fix conflict commit-all flow and terminal copy line breaks 2026-05-19 16:35:00 -05:00
Joe Tretter
ceb0d503f4 Require real merge commit and keep level tests embedded 2026-05-19 16:18:58 -05:00
Joe Tretter
5db02adbe9 Fix upstream fixture-backed level setups 2026-05-19 15:52:22 -05:00
Joe Tretter
b48244d4c2 Match hunk edit format and upload build artifacts 2026-05-19 12:10:44 -05:00
Joe Tretter
bea901acfe Split oversized runtime, sandbox, and interactive add files into focused helpers 2026-05-18 21:49:43 -05:00
Joe Tretter
ed0b81e587 Open patch hunk editor for git add -p edit command 2026-05-18 21:10:17 -05:00
Joe Tretter
4c5d68c1cb Start patch dialog for git add -p 2026-05-18 21:02:42 -05:00
Joe Tretter
eb24866a7a Handle interactive add menu commands 2026-05-18 20:39:06 -05:00
Joe Tretter
1ce4df1209 Ask for last good commit in bisect level 2026-05-18 20:19:34 -05:00
Joe Tretter
008a322134 Complete ./ script paths in terminal tab completion 2026-05-18 19:52:50 -05:00
Joe Tretter
afb548d46f Make bisect playable and validate commit_in_future using Git author timestamps 2026-05-18 19:44:23 -05:00
Joe Tretter
ce58f46b48 Open app editor for interactive rebase todo 2026-05-18 19:01:12 -05:00
Joe Tretter
d4e2c8714c Remove brittle interactive rebase shortcuts 2026-05-18 18:37:10 -05:00
Joe Tretter
3f6a764603 Support interactive add/stage input flow 2026-05-13 19:12:06 -05:00
Joe Tretter
482483deed Fix interactive add/stage auto-update behavior 2026-05-13 19:03:12 -05:00
Joe Tretter
75c8396f00 Refresh native Git helper aliases after app upgrade
- 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.
2026-05-11 21:48:14 -05:00
Joe Tretter
4bac818571 Align level parity docs and fetch/status validation
- 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.
2026-05-11 21:36:12 -05:00
Joe Tretter
7e55084815 Misc Changes 2026-05-11 19:19:51 -05:00
Joe Tretter
8f829fb969 Misc Changes 2026-05-09 22:49:15 -05:00
Joe Tretter
0acf8c9ab0 Fix runtime diagnostics, rotation stability, and manpage search positioning
- 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.
2026-05-09 14:22:07 -05:00
Joe Tretter
4fab442939 Require native Git runtime and bundle full manpages
- Remove the app fallback path when native Git is unavailable and show a startup blocker instead
- Fix native level setup for staged file counting and cherry-pick parity
- Improve manpage loading/search and bundle full Git documentation assets
- Integrate Git cross-compilation into AndroidProjectTooling.sh and remove debug AAB support
2026-05-08 17:43:46 -05:00
Joe Tretter
64743ff4a9 Move native level setups into level files
- Delete NativeLevelFixtures.kt and make native repository setup an optional property of each Level.
- Move every existing native setup into its corresponding level file so setup, validation, and tests stay together.
- Add the missing Blame native setup with config.rb history and a Spider Man password commit.
- Add a native runtime regression that verifies `git blame config.rb` identifies Spider Man on the password line.
- Verify the full JVM test suite using the compiled host Git runtime.
2026-05-07 18:53:18 -05:00
Joe Tretter
7bfb761068 Restore Diff level working-tree change
- Add a dedicated native Diff fixture that commits baseline app.rb content and leaves an unstaged line-26 change from data.json to server.json.
- Update the Diff level setup metadata so app.rb is no longer represented as an empty file.
- Add a native runtime regression for `git diff` showing the expected line-26 hunk.
2026-05-07 17:00:04 -05:00
Joe Tretter
434bd8d97d Tighten Rm level validation
- Require the Rm level to stage or remove the tracked deleted file instead of treating the initial deleted worktree state as solved.
- Add a regression test proving read-only commands such as `ls` do not complete the Rm level.
- Verify the full JVM level solution suite with the compiled host Git runtime.
2026-05-07 16:51:43 -05:00
Joe Tretter
8873755490 Compile Git for host and Android target platforms
- Rename CrossCompileGitForAndroid.sh to CompileGitForAllTargetPlatforms.sh and support host, Android-only, and all-target modes.
- Compile a development-host Git binary at build/host-git/libgit.so for JVM tests.
- Route level and sandbox tests through GITHUG_TEST_GIT_BINARY so they exercise the compiled host Git rather than the system Git fallback.
- Cross-compile packaged Git binaries for arm64-v8a, armeabi-v7a, x86, and x86_64 Android targets.
- Remove the temporary device-bound Pull rebase instrumentation path from the previous debugging attempt.
2026-05-07 15:26:38 -05:00
Joe Tretter
565028f64a Fix help callout anchoring and Push remote setup
- Anchor startup help callouts inside the scrollable pane workspace so they scroll with the exercise and terminal content they point at.
- Rebuild the Push level remote as a bare sibling repo with a temporary worktree for the remote-only commit, avoiding Android non-bare remote push failures.
- Leave a visible local worktree edit in Push while enabling rebase autostash so status, diff, and pull --rebase all behave as expected.
- Add native Push setup coverage for diverged status output, plain diff output, and clean pull --rebase behavior.
2026-05-07 09:57:50 -05:00
Joe Tretter
91e2df3ffe Improve upstream parity for level fixtures
- Add native per-level fixtures for complex histories, tags, branch graphs, rebases, resets, restores, stashes, and local remotes.
- Strengthen repository inspection so branch commit counts, remote-tracking branches, and detached tag checkouts reflect real Git state.
- Align Fetch, Pull, Push Branch, Branch At, and Rebase validators/tests with upstream-style repository state.
- Keep the prompt callout and native filesystem tab-completion fixes from the previous batch.
2026-05-07 09:21:04 -05:00
Joe Tretter
7bb14216ef Align tests with runtime sandbox and polish terminal help
- Run level solution scenarios through GitRepositoryRuntime with a real filesystem sandbox and git binary so evidence logs match app behavior.
- Materialize synthetic remotes as local bare repositories and configure upstream tracking for pull/push levels.
- Route mobile-hostile Git interactions through shared sandbox semantics for clone, patch add, interactive rebase, squash merge, submodule, stash, revert, and related flows.
- Relax affected level validators to inspect observable runtime state instead of fallback-only staged/index details.
- Show .git in ls output for native and fallback helper commands.
- Make tab completion resolve filenames and directories relative to the current working directory.
- Integrate help controls into the callout overlay and reposition the prompt callout above the terminal prompt.
- Add regression coverage for .git listing and subfolder completion.
2026-05-06 22:12:25 -05:00
Joe Tretter
e1b2d7f7a1 Misc Changes 2026-05-06 21:28:44 -05:00
Joe Tretter
5727022baf Misc Changes 2026-05-06 20:44:34 -05:00
Joe Tretter
5c7c7ad29d Add del alias for rm helper command 2026-05-05 20:12:08 -05:00
Joe Tretter
b8c4096123 Add exercise description onboarding bubble
Remove duplicate IME padding that caused keyboard gap
Add md alias for mkdir helper command
Add dir alias for ls helper command
Add cd.. shortcut for cd .. helper command
2026-05-05 20:08:51 -05:00
Joe Tretter
16d7809150 Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts
app/src/main/java/solutions/tretter/githugandroid/GameModels.kt
app/src/main/java/solutions/tretter/githugandroid/GitHelpCommands.kt
app/src/main/java/solutions/tretter/githugandroid/GitHugApp.kt
app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt
app/src/main/java/solutions/tretter/githugandroid/Visual.kt
app/src/main/java/solutions/tretter/githugandroid/levels/AdvancedLevels.kt
app/src/main/java/solutions/tretter/githugandroid/levels/LevelCatalog.kt
app/src/test/java/solutions/tretter/githugandroid/GitHelpCommandsTest.kt
app/src/test/java/solutions/tretter/githugandroid/GitSandboxEngineTest.kt
2026-05-05 19:27:33 -05:00
Joe Tretter
4963123b3b Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts
app/src/main/java/solutions/tretter/githugandroid/GitEditorCommands.kt
app/src/main/java/solutions/tretter/githugandroid/GitHugApp.kt
app/src/main/java/solutions/tretter/githugandroid/GitMessageEditorDialog.kt
app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt
app/src/test/java/solutions/tretter/githugandroid/GitEditorCommandsTest.kt
2026-05-02 23:03:00 -05:00
Joe Tretter
ca20b0a358 Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts
app/src/main/java/solutions/tretter/githugandroid/GitHelpCommands.kt
app/src/main/java/solutions/tretter/githugandroid/GitHugApp.kt
app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt
app/src/main/java/solutions/tretter/githugandroid/ManPageDialog.kt
app/src/test/java/solutions/tretter/githugandroid/GitHelpCommandsTest.kt
2026-05-02 22:09:20 -05:00
Joe Tretter
17f19ca0ba Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts
app/src/main/java/solutions/tretter/githugandroid/EditorCommands.kt
app/src/main/java/solutions/tretter/githugandroid/GitHugApp.kt
app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt
app/src/main/java/solutions/tretter/githugandroid/TextEditorDialog.kt
app/src/test/java/solutions/tretter/githugandroid/EditorCommandsTest.kt
2026-05-02 21:50:34 -05:00
Joe Tretter
d6c4c4a2df Auto-commit after successful build: update app gameplay/UI, improve build setup
Changed files:\napp/build.gradle.kts
app/src/main/java/solutions/tretter/githugandroid/GitRuntime.kt
app/src/test/java/solutions/tretter/githugandroid/LevelSolutionsTest.kt
2026-05-02 21:36:42 -05:00
Joe Tretter
8bcfa2bee4 Switched to Chatgpt 5.5 and codex. 2026-05-02 20:29:31 -05:00