feat: add debug diagnostics and whoami auth status#610
feat: add debug diagnostics and whoami auth status#610
Conversation
|
No AI authorship found for these commits. Please install git-ai to start tracking AI generated code in your commits. |
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Fork app on Windows: backslash paths written to JSON settings instead of forward-slash paths (src/mdm/git_clients/fork_app.rs:185)
On Windows, the check_client and install_prefs methods for Fork app now use to_string_lossy() directly, which preserves backslashes and the \\?\ extended-length prefix. The removed to_windows_git_bash_style_path function called clean_path (stripping \\?\) and then .replace('\\', "/") to produce forward-slash paths that Fork expects in its JSON settings.
Root Cause and Impact
The old code path was:
fn fork_custom_git_instance_path(git_shim_path: &Path) -> String {
to_windows_git_bash_style_path(git_shim_path)
}
// which did: clean_path(path).to_string_lossy().replace('\\', "/")The new code at src/mdm/git_clients/fork_app.rs:185 and :215 just does:
params.git_shim_path.to_string_lossy().as_ref() // check_client
params.git_shim_path.to_string_lossy().into_owned() // install_prefsThis means on Windows, C:\Users\...\git.exe is written to Fork's JSON settings instead of C:/Users/.../git.exe. The old test test_fork_custom_git_instance_path_uses_forward_slashes explicitly verified forward slashes were required. Note that src/mdm/git_clients/sublime_merge.rs:134 correctly does .replace('\\', "/") with a comment "Use forward slashes for JSON compatibility on Windows", but the analogous fix was not applied to Fork.
Impact: On Windows, Fork app may fail to locate the custom git binary because the path uses backslashes instead of the expected forward slashes in its JSON settings. Additionally, paths canonicalized by std::fs::canonicalize may retain the \\?\ prefix.
View 10 additional findings in Devin Review.
|
|
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Fork app on Windows: backslash paths written to JSON settings instead of forward-slash paths (src/mdm/git_clients/fork_app.rs:185)
On Windows, the check_client and install_prefs methods for Fork app now use to_string_lossy() directly, which preserves backslashes and the \\?\ extended-length prefix. The removed to_windows_git_bash_style_path function called clean_path (stripping \\?\) and then .replace('\\', "/") to produce forward-slash paths that Fork expects in its JSON settings.
Root Cause and Impact
The old code path was:
fn fork_custom_git_instance_path(git_shim_path: &Path) -> String {
to_windows_git_bash_style_path(git_shim_path)
}
// which did: clean_path(path).to_string_lossy().replace('\\', "/")The new code at src/mdm/git_clients/fork_app.rs:185 and :215 just does:
params.git_shim_path.to_string_lossy().as_ref() // check_client
params.git_shim_path.to_string_lossy().into_owned() // install_prefsThis means on Windows, C:\Users\...\git.exe is written to Fork's JSON settings instead of C:/Users/.../git.exe. The old test test_fork_custom_git_instance_path_uses_forward_slashes explicitly verified forward slashes were required. Note that src/mdm/git_clients/sublime_merge.rs:134 correctly does .replace('\\', "/") with a comment "Use forward slashes for JSON compatibility on Windows", but the analogous fix was not applied to Fork.
Impact: On Windows, Fork app may fail to locate the custom git binary because the path uses backslashes instead of the expected forward slashes in its JSON settings. Additionally, paths canonicalized by std::fs::canonicalize may retain the \\?\ prefix.
View 11 additional findings in Devin Review.
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Fork app on Windows: backslash paths written to JSON settings instead of forward-slash paths (src/mdm/git_clients/fork_app.rs:185)
On Windows, the check_client and install_prefs methods for Fork app now use to_string_lossy() directly, which preserves backslashes and the \\?\ extended-length prefix. The removed to_windows_git_bash_style_path function called clean_path (stripping \\?\) and then .replace('\\', "/") to produce forward-slash paths that Fork expects in its JSON settings.
Root Cause and Impact
The old code path was:
fn fork_custom_git_instance_path(git_shim_path: &Path) -> String {
to_windows_git_bash_style_path(git_shim_path)
}
// which did: clean_path(path).to_string_lossy().replace('\\', "/")The new code at src/mdm/git_clients/fork_app.rs:185 and :215 just does:
params.git_shim_path.to_string_lossy().as_ref() // check_client
params.git_shim_path.to_string_lossy().into_owned() // install_prefsThis means on Windows, C:\Users\...\git.exe is written to Fork's JSON settings instead of C:/Users/.../git.exe. The old test test_fork_custom_git_instance_path_uses_forward_slashes explicitly verified forward slashes were required. Note that src/mdm/git_clients/sublime_merge.rs:134 correctly does .replace('\\', "/") with a comment "Use forward slashes for JSON compatibility on Windows", but the analogous fix was not applied to Fork.
Impact: On Windows, Fork app may fail to locate the custom git binary because the path uses backslashes instead of the expected forward slashes in its JSON settings. Additionally, paths canonicalized by std::fs::canonicalize may retain the \\?\ prefix.
View 12 additional findings in Devin Review.
Summary\n- add new git-ai debug report
Generated (UTC): 2026-02-28T02:22:19.395757+00:00
== Versions ==
Git AI version: 1.1.7 (debug)
Git AI binary: /Users/svarlamov/.git-ai-local-dev/gitwrap/bin/git-ai
Git binary path: /opt/homebrew/bin/git
Git version: git version 2.52.0
== Platform ==
OS family: unix
OS: macos
Arch: aarch64
Kernel: Darwin 25.2.0 arm64
Hostname: Sashas-MacBook-Pro.local
Shell: /bin/zsh
Current dir: /Users/svarlamov/projects/git-ai-c
== Hardware ==
CPU: Apple M5
Physical cores: 10
Logical cores: 10
Memory: 32.00 GB (34359738368 bytes)
== Repository ==
In repository: true
Workdir: /Users/svarlamov/projects/git-ai-c
Git dir: /Users/svarlamov/projects/git-ai-c/.git
Git common dir: /Users/svarlamov/projects/git-ai-c/.git
Branch: codex/whoami-auth-debug
HEAD: 4ca35c2
core.hooksPath: /Users/svarlamov/projects/git-ai-c/.git/ai/hooks
Remotes:
origin = https://github.com/git-ai-project/git-ai
== Git Config ==
Command: /opt/homebrew/bin/git config --list --show-origin --show-scope
system file:/opt/homebrew/etc/gitconfig credential.helper=osxkeychain
global file:/Users/svarlamov/.gitconfig user.name=Sasha Varlamov
global file:/Users/svarlamov/.gitconfig user.email=sasha@sashavarlamov.com
global file:/Users/svarlamov/.gitconfig init.defaultbranch=main
global file:/Users/svarlamov/.gitconfig push.autosetupremote=true
global file:/Users/svarlamov/.gitconfig alias.s=status -sb
global file:/Users/svarlamov/.gitconfig alias.ss=status
global file:/Users/svarlamov/.gitconfig alias.st=status
global file:/Users/svarlamov/.gitconfig alias.l=log --oneline --decorate
global file:/Users/svarlamov/.gitconfig alias.lg=log --graph --decorate --oneline --all
global file:/Users/svarlamov/.gitconfig alias.ll=log --graph --decorate --pretty=format:'%C(auto)%h %C(cyan)%ad%Creset %C(yellow)%d%Creset %s %C(green)(%an)%Creset' --date=short --all
global file:/Users/svarlamov/.gitconfig alias.last=log -1 --stat
global file:/Users/svarlamov/.gitconfig alias.d=diff
global file:/Users/svarlamov/.gitconfig alias.dc=diff --cached
global file:/Users/svarlamov/.gitconfig alias.wdiff=diff --word-diff
global file:/Users/svarlamov/.gitconfig alias.who=blame -w -M -C
global file:/Users/svarlamov/.gitconfig alias.br=branch -vv
global file:/Users/svarlamov/.gitconfig alias.co=checkout
global file:/Users/svarlamov/.gitconfig alias.sw=switch
global file:/Users/svarlamov/.gitconfig alias.cob=checkout -b
global file:/Users/svarlamov/.gitconfig alias.swc=switch -c
global file:/Users/svarlamov/.gitconfig alias.a=add -A
global file:/Users/svarlamov/.gitconfig alias.ap=add -p
global file:/Users/svarlamov/.gitconfig alias.c=commit
global file:/Users/svarlamov/.gitconfig alias.cm=commit -m
global file:/Users/svarlamov/.gitconfig alias.ca=commit --amend
global file:/Users/svarlamov/.gitconfig alias.cane=commit --amend --no-edit
global file:/Users/svarlamov/.gitconfig alias.pu=push
global file:/Users/svarlamov/.gitconfig alias.puff=push --force-with-lease
global file:/Users/svarlamov/.gitconfig alias.up=pull --rebase --autostash
global file:/Users/svarlamov/.gitconfig alias.pf=push -u origin HEAD
global file:/Users/svarlamov/.gitconfig alias.sl=stash list
global file:/Users/svarlamov/.gitconfig alias.sp=stash push -u -m
global file:/Users/svarlamov/.gitconfig alias.sa=stash apply
global file:/Users/svarlamov/.gitconfig alias.ssq=stash push -u -m wip
global file:/Users/svarlamov/.gitconfig alias.undo=reset --soft HEAD~1
global file:/Users/svarlamov/.gitconfig alias.unstage=reset -q HEAD --
global file:/Users/svarlamov/.gitconfig alias.discard=checkout --
global file:/Users/svarlamov/.gitconfig alias.ri=rebase -i
global file:/Users/svarlamov/.gitconfig alias.fixup=commit --fixup
global file:/Users/svarlamov/.gitconfig alias.autosquash=rebase -i --autosquash
global file:/Users/svarlamov/.gitconfig alias.aliases=config --get-regexp ^alias.
global file:/Users/svarlamov/.gitconfig alias.ahead=!git log --oneline --decorate @{u}..HEAD
global file:/Users/svarlamov/.gitconfig alias.behind=!git log --oneline --decorate HEAD..@{u}
global file:/Users/svarlamov/.gitconfig alias.changes=!git log --oneline --decorate --no-merges @{u}..HEAD
local file:.git/config core.repositoryformatversion=0
local file:.git/config core.filemode=true
local file:.git/config core.bare=false
local file:.git/config core.logallrefupdates=true
local file:.git/config core.ignorecase=true
local file:.git/config core.precomposeunicode=true
local file:.git/config core.hookspath=/Users/svarlamov/projects/git-ai-c/.git/ai/hooks
local file:.git/config remote.origin.url=https://github.com/git-ai-project/git-ai
local file:.git/config remote.origin.fetch=+refs/heads/:refs/remotes/origin/
local file:.git/config branch.main.remote=origin
local file:.git/config branch.main.merge=refs/heads/main
local file:.git/config branch.feat/corehooks.remote=origin
local file:.git/config branch.feat/corehooks.merge=refs/heads/feat/corehooks
local file:.git/config branch.feat/corehooks.vscode-merge-base=origin/main
local file:.git/config branch.codex/corehooks-simplify-perf-round2.remote=origin
local file:.git/config branch.codex/corehooks-simplify-perf-round2.merge=refs/heads/codex/corehooks-simplify-perf-round2
local file:.git/config branch.codex/global-hooks-dual-mode.remote=origin
local file:.git/config branch.codex/global-hooks-dual-mode.merge=refs/heads/codex/global-hooks-dual-mode
local file:.git/config branch.codex/global-hooks-dual-mode.vscode-merge-base=origin/main
local file:.git/config branch.codex/cherry-pick-hooks-perf-fix.remote=origin
local file:.git/config branch.codex/cherry-pick-hooks-perf-fix.merge=refs/heads/codex/cherry-pick-hooks-perf-fix
local file:.git/config branch.codex/fix-590-concurrent-migrations.remote=origin
local file:.git/config branch.codex/fix-590-concurrent-migrations.merge=refs/heads/codex/fix-590-concurrent-migrations
local file:.git/config branch.codex/pathspec-benchmark-fastpath-fixes.remote=origin
local file:.git/config branch.codex/pathspec-benchmark-fastpath-fixes.merge=refs/heads/codex/pathspec-benchmark-fastpath-fixes
== Git AI Config ==
config_file_path: /Users/svarlamov/.git-ai/config.json
git_ai_dir: /Users/svarlamov/.git-ai
runtime_config:
{
"git_path": "/opt/homebrew/bin/git",
"exclude_prompts_in_repositories": [],
"include_prompts_in_repositories": [],
"allow_repositories": [],
"exclude_repositories": [],
"telemetry_oss_disabled": false,
"telemetry_enterprise_dsn": null,
"disable_version_checks": false,
"disable_auto_updates": true,
"update_channel": "latest",
"feature_flags": {
"rewrite_stash": true,
"inter_commit_move": false,
"auth_keyring": false
},
"api_base_url": "http://localhost:4000",
"prompt_storage": "default",
"default_prompt_storage": null,
"api_key": null,
"quiet": false
}
== Git AI Login ==
Credential backend: file
Status: logged out
== Git AI Environment ==
No GIT_AI_* environment variables are set. command with formatted diagnostics for versions, platform/hardware, git config, git-ai config, repo context, and auth/login state\n- make runtime directly printable via serde and use it in debug output (with masking for sensitive values)\n- add new API Base URL: http://localhost:4000
Credential backend: file
Auth state: logged out command that prints full API base URL plus auth state and profile fields from token claims\n- parse access-token claims using typed fields (, , , , ) and share auth-state collection between and svarlamov\n- add concise GitHub bug report issue template requiring git-ai debug report
Generated (UTC): 2026-02-28T02:22:19.740488+00:00
== Versions ==
Git AI version: 1.1.7 (debug)
Git AI binary: /Users/svarlamov/.git-ai-local-dev/gitwrap/bin/git-ai
Git binary path: /opt/homebrew/bin/git
Git version: git version 2.52.0
== Platform ==
OS family: unix
OS: macos
Arch: aarch64
Kernel: Darwin 25.2.0 arm64
Hostname: Sashas-MacBook-Pro.local
Shell: /bin/zsh
Current dir: /Users/svarlamov/projects/git-ai-c
== Hardware ==
CPU: Apple M5
Physical cores: 10
Logical cores: 10
Memory: 32.00 GB (34359738368 bytes)
== Repository ==
In repository: true
Workdir: /Users/svarlamov/projects/git-ai-c
Git dir: /Users/svarlamov/projects/git-ai-c/.git
Git common dir: /Users/svarlamov/projects/git-ai-c/.git
Branch: codex/whoami-auth-debug
HEAD: 4ca35c2
core.hooksPath: /Users/svarlamov/projects/git-ai-c/.git/ai/hooks
Remotes:
origin = https://github.com/git-ai-project/git-ai
== Git Config ==
Command: /opt/homebrew/bin/git config --list --show-origin --show-scope
system file:/opt/homebrew/etc/gitconfig credential.helper=osxkeychain
global file:/Users/svarlamov/.gitconfig user.name=Sasha Varlamov
global file:/Users/svarlamov/.gitconfig user.email=sasha@sashavarlamov.com
global file:/Users/svarlamov/.gitconfig init.defaultbranch=main
global file:/Users/svarlamov/.gitconfig push.autosetupremote=true
global file:/Users/svarlamov/.gitconfig alias.s=status -sb
global file:/Users/svarlamov/.gitconfig alias.ss=status
global file:/Users/svarlamov/.gitconfig alias.st=status
global file:/Users/svarlamov/.gitconfig alias.l=log --oneline --decorate
global file:/Users/svarlamov/.gitconfig alias.lg=log --graph --decorate --oneline --all
global file:/Users/svarlamov/.gitconfig alias.ll=log --graph --decorate --pretty=format:'%C(auto)%h %C(cyan)%ad%Creset %C(yellow)%d%Creset %s %C(green)(%an)%Creset' --date=short --all
global file:/Users/svarlamov/.gitconfig alias.last=log -1 --stat
global file:/Users/svarlamov/.gitconfig alias.d=diff
global file:/Users/svarlamov/.gitconfig alias.dc=diff --cached
global file:/Users/svarlamov/.gitconfig alias.wdiff=diff --word-diff
global file:/Users/svarlamov/.gitconfig alias.who=blame -w -M -C
global file:/Users/svarlamov/.gitconfig alias.br=branch -vv
global file:/Users/svarlamov/.gitconfig alias.co=checkout
global file:/Users/svarlamov/.gitconfig alias.sw=switch
global file:/Users/svarlamov/.gitconfig alias.cob=checkout -b
global file:/Users/svarlamov/.gitconfig alias.swc=switch -c
global file:/Users/svarlamov/.gitconfig alias.a=add -A
global file:/Users/svarlamov/.gitconfig alias.ap=add -p
global file:/Users/svarlamov/.gitconfig alias.c=commit
global file:/Users/svarlamov/.gitconfig alias.cm=commit -m
global file:/Users/svarlamov/.gitconfig alias.ca=commit --amend
global file:/Users/svarlamov/.gitconfig alias.cane=commit --amend --no-edit
global file:/Users/svarlamov/.gitconfig alias.pu=push
global file:/Users/svarlamov/.gitconfig alias.puff=push --force-with-lease
global file:/Users/svarlamov/.gitconfig alias.up=pull --rebase --autostash
global file:/Users/svarlamov/.gitconfig alias.pf=push -u origin HEAD
global file:/Users/svarlamov/.gitconfig alias.sl=stash list
global file:/Users/svarlamov/.gitconfig alias.sp=stash push -u -m
global file:/Users/svarlamov/.gitconfig alias.sa=stash apply
global file:/Users/svarlamov/.gitconfig alias.ssq=stash push -u -m wip
global file:/Users/svarlamov/.gitconfig alias.undo=reset --soft HEAD~1
global file:/Users/svarlamov/.gitconfig alias.unstage=reset -q HEAD --
global file:/Users/svarlamov/.gitconfig alias.discard=checkout --
global file:/Users/svarlamov/.gitconfig alias.ri=rebase -i
global file:/Users/svarlamov/.gitconfig alias.fixup=commit --fixup
global file:/Users/svarlamov/.gitconfig alias.autosquash=rebase -i --autosquash
global file:/Users/svarlamov/.gitconfig alias.aliases=config --get-regexp ^alias.
global file:/Users/svarlamov/.gitconfig alias.ahead=!git log --oneline --decorate @{u}..HEAD
global file:/Users/svarlamov/.gitconfig alias.behind=!git log --oneline --decorate HEAD..@{u}
global file:/Users/svarlamov/.gitconfig alias.changes=!git log --oneline --decorate --no-merges @{u}..HEAD
local file:.git/config core.repositoryformatversion=0
local file:.git/config core.filemode=true
local file:.git/config core.bare=false
local file:.git/config core.logallrefupdates=true
local file:.git/config core.ignorecase=true
local file:.git/config core.precomposeunicode=true
local file:.git/config core.hookspath=/Users/svarlamov/projects/git-ai-c/.git/ai/hooks
local file:.git/config remote.origin.url=https://github.com/git-ai-project/git-ai
local file:.git/config remote.origin.fetch=+refs/heads/:refs/remotes/origin/
local file:.git/config branch.main.remote=origin
local file:.git/config branch.main.merge=refs/heads/main
local file:.git/config branch.feat/corehooks.remote=origin
local file:.git/config branch.feat/corehooks.merge=refs/heads/feat/corehooks
local file:.git/config branch.feat/corehooks.vscode-merge-base=origin/main
local file:.git/config branch.codex/corehooks-simplify-perf-round2.remote=origin
local file:.git/config branch.codex/corehooks-simplify-perf-round2.merge=refs/heads/codex/corehooks-simplify-perf-round2
local file:.git/config branch.codex/global-hooks-dual-mode.remote=origin
local file:.git/config branch.codex/global-hooks-dual-mode.merge=refs/heads/codex/global-hooks-dual-mode
local file:.git/config branch.codex/global-hooks-dual-mode.vscode-merge-base=origin/main
local file:.git/config branch.codex/cherry-pick-hooks-perf-fix.remote=origin
local file:.git/config branch.codex/cherry-pick-hooks-perf-fix.merge=refs/heads/codex/cherry-pick-hooks-perf-fix
local file:.git/config branch.codex/fix-590-concurrent-migrations.remote=origin
local file:.git/config branch.codex/fix-590-concurrent-migrations.merge=refs/heads/codex/fix-590-concurrent-migrations
local file:.git/config branch.codex/pathspec-benchmark-fastpath-fixes.remote=origin
local file:.git/config branch.codex/pathspec-benchmark-fastpath-fixes.merge=refs/heads/codex/pathspec-benchmark-fastpath-fixes
== Git AI Config ==
config_file_path: /Users/svarlamov/.git-ai/config.json
git_ai_dir: /Users/svarlamov/.git-ai
runtime_config:
{
"git_path": "/opt/homebrew/bin/git",
"exclude_prompts_in_repositories": [],
"include_prompts_in_repositories": [],
"allow_repositories": [],
"exclude_repositories": [],
"telemetry_oss_disabled": false,
"telemetry_enterprise_dsn": null,
"disable_version_checks": false,
"disable_auto_updates": true,
"update_channel": "latest",
"feature_flags": {
"rewrite_stash": true,
"inter_commit_move": false,
"auth_keyring": false
},
"api_base_url": "http://localhost:4000",
"prompt_storage": "default",
"default_prompt_storage": null,
"api_key": null,
"quiet": false
}
== Git AI Login ==
Credential backend: file
Status: logged out
== Git AI Environment ==
No GIT_AI_* environment variables are set. output\n\n## Validation\n- \n- \n- \n-
running 2 tests
test auth::identity::tests::test_extract_identity_handles_non_jwt_token ... ok
test auth::identity::tests::test_extract_identity_from_access_token ... ok
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 1132 filtered out; finished in 0.00s\n-
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1134 filtered out; finished in 0.00s\n- manual sanity checks: git-ai debug report
Generated (UTC): 2026-02-28T02:23:20.600550+00:00
== Versions ==
Git AI version: 1.1.7 (debug)
Git AI binary: /Users/svarlamov/projects/git-ai-c/target/debug/git-ai
Git binary path: /opt/homebrew/bin/git
Git version: git version 2.52.0
== Platform ==
OS family: unix
OS: macos
Arch: aarch64
Kernel: Darwin 25.2.0 arm64
Hostname: Sashas-MacBook-Pro.local
Shell: /bin/zsh
Current dir: /Users/svarlamov/projects/git-ai-c
== Hardware ==
CPU: Apple M5
Physical cores: 10
Logical cores: 10
Memory: 32.00 GB (34359738368 bytes)
== Repository ==
In repository: true
Workdir: /Users/svarlamov/projects/git-ai-c
Git dir: /Users/svarlamov/projects/git-ai-c/.git
Git common dir: /Users/svarlamov/projects/git-ai-c/.git
Branch: codex/whoami-auth-debug
HEAD: 4ca35c2
core.hooksPath: /Users/svarlamov/projects/git-ai-c/.git/ai/hooks
Remotes:
origin = https://github.com/git-ai-project/git-ai
== Git Config ==
Command: /opt/homebrew/bin/git config --list --show-origin --show-scope
system file:/opt/homebrew/etc/gitconfig credential.helper=osxkeychain
global file:/Users/svarlamov/.gitconfig user.name=Sasha Varlamov
global file:/Users/svarlamov/.gitconfig user.email=sasha@sashavarlamov.com
global file:/Users/svarlamov/.gitconfig init.defaultbranch=main
global file:/Users/svarlamov/.gitconfig push.autosetupremote=true
global file:/Users/svarlamov/.gitconfig alias.s=status -sb
global file:/Users/svarlamov/.gitconfig alias.ss=status
global file:/Users/svarlamov/.gitconfig alias.st=status
global file:/Users/svarlamov/.gitconfig alias.l=log --oneline --decorate
global file:/Users/svarlamov/.gitconfig alias.lg=log --graph --decorate --oneline --all
global file:/Users/svarlamov/.gitconfig alias.ll=log --graph --decorate --pretty=format:'%C(auto)%h %C(cyan)%ad%Creset %C(yellow)%d%Creset %s %C(green)(%an)%Creset' --date=short --all
global file:/Users/svarlamov/.gitconfig alias.last=log -1 --stat
global file:/Users/svarlamov/.gitconfig alias.d=diff
global file:/Users/svarlamov/.gitconfig alias.dc=diff --cached
global file:/Users/svarlamov/.gitconfig alias.wdiff=diff --word-diff
global file:/Users/svarlamov/.gitconfig alias.who=blame -w -M -C
global file:/Users/svarlamov/.gitconfig alias.br=branch -vv
global file:/Users/svarlamov/.gitconfig alias.co=checkout
global file:/Users/svarlamov/.gitconfig alias.sw=switch
global file:/Users/svarlamov/.gitconfig alias.cob=checkout -b
global file:/Users/svarlamov/.gitconfig alias.swc=switch -c
global file:/Users/svarlamov/.gitconfig alias.a=add -A
global file:/Users/svarlamov/.gitconfig alias.ap=add -p
global file:/Users/svarlamov/.gitconfig alias.c=commit
global file:/Users/svarlamov/.gitconfig alias.cm=commit -m
global file:/Users/svarlamov/.gitconfig alias.ca=commit --amend
global file:/Users/svarlamov/.gitconfig alias.cane=commit --amend --no-edit
global file:/Users/svarlamov/.gitconfig alias.pu=push
global file:/Users/svarlamov/.gitconfig alias.puff=push --force-with-lease
global file:/Users/svarlamov/.gitconfig alias.up=pull --rebase --autostash
global file:/Users/svarlamov/.gitconfig alias.pf=push -u origin HEAD
global file:/Users/svarlamov/.gitconfig alias.sl=stash list
global file:/Users/svarlamov/.gitconfig alias.sp=stash push -u -m
global file:/Users/svarlamov/.gitconfig alias.sa=stash apply
global file:/Users/svarlamov/.gitconfig alias.ssq=stash push -u -m wip
global file:/Users/svarlamov/.gitconfig alias.undo=reset --soft HEAD~1
global file:/Users/svarlamov/.gitconfig alias.unstage=reset -q HEAD --
global file:/Users/svarlamov/.gitconfig alias.discard=checkout --
global file:/Users/svarlamov/.gitconfig alias.ri=rebase -i
global file:/Users/svarlamov/.gitconfig alias.fixup=commit --fixup
global file:/Users/svarlamov/.gitconfig alias.autosquash=rebase -i --autosquash
global file:/Users/svarlamov/.gitconfig alias.aliases=config --get-regexp ^alias.
global file:/Users/svarlamov/.gitconfig alias.ahead=!git log --oneline --decorate @{u}..HEAD
global file:/Users/svarlamov/.gitconfig alias.behind=!git log --oneline --decorate HEAD..@{u}
global file:/Users/svarlamov/.gitconfig alias.changes=!git log --oneline --decorate --no-merges @{u}..HEAD
local file:.git/config core.repositoryformatversion=0
local file:.git/config core.filemode=true
local file:.git/config core.bare=false
local file:.git/config core.logallrefupdates=true
local file:.git/config core.ignorecase=true
local file:.git/config core.precomposeunicode=true
local file:.git/config core.hookspath=/Users/svarlamov/projects/git-ai-c/.git/ai/hooks
local file:.git/config remote.origin.url=https://github.com/git-ai-project/git-ai
local file:.git/config remote.origin.fetch=+refs/heads/:refs/remotes/origin/
local file:.git/config branch.main.remote=origin
local file:.git/config branch.main.merge=refs/heads/main
local file:.git/config branch.feat/corehooks.remote=origin
local file:.git/config branch.feat/corehooks.merge=refs/heads/feat/corehooks
local file:.git/config branch.feat/corehooks.vscode-merge-base=origin/main
local file:.git/config branch.codex/corehooks-simplify-perf-round2.remote=origin
local file:.git/config branch.codex/corehooks-simplify-perf-round2.merge=refs/heads/codex/corehooks-simplify-perf-round2
local file:.git/config branch.codex/global-hooks-dual-mode.remote=origin
local file:.git/config branch.codex/global-hooks-dual-mode.merge=refs/heads/codex/global-hooks-dual-mode
local file:.git/config branch.codex/global-hooks-dual-mode.vscode-merge-base=origin/main
local file:.git/config branch.codex/cherry-pick-hooks-perf-fix.remote=origin
local file:.git/config branch.codex/cherry-pick-hooks-perf-fix.merge=refs/heads/codex/cherry-pick-hooks-perf-fix
local file:.git/config branch.codex/fix-590-concurrent-migrations.remote=origin
local file:.git/config branch.codex/fix-590-concurrent-migrations.merge=refs/heads/codex/fix-590-concurrent-migrations
local file:.git/config branch.codex/pathspec-benchmark-fastpath-fixes.remote=origin
local file:.git/config branch.codex/pathspec-benchmark-fastpath-fixes.merge=refs/heads/codex/pathspec-benchmark-fastpath-fixes
local file:.git/config branch.codex/whoami-auth-debug.remote=origin
local file:.git/config branch.codex/whoami-auth-debug.merge=refs/heads/codex/whoami-auth-debug
== Git AI Config ==
config_file_path: /Users/svarlamov/.git-ai/config.json
git_ai_dir: /Users/svarlamov/.git-ai
runtime_config:
{
"git_path": "/opt/homebrew/bin/git",
"exclude_prompts_in_repositories": [],
"include_prompts_in_repositories": [],
"allow_repositories": [],
"exclude_repositories": [],
"telemetry_oss_disabled": false,
"telemetry_enterprise_dsn": null,
"disable_version_checks": false,
"disable_auto_updates": true,
"update_channel": "latest",
"feature_flags": {
"rewrite_stash": true,
"inter_commit_move": false,
"auth_keyring": false
},
"api_base_url": "http://localhost:4000",
"prompt_storage": "default",
"default_prompt_storage": null,
"api_key": null,
"quiet": false
}
== Git AI Login ==
Credential backend: file
Status: logged out
== Git AI Environment ==
No GIT_AI_* environment variables are set., API Base URL: http://localhost:4000
Credential backend: file
Auth state: logged out