What broke?
When I have "gitai.experiments.aiTabTracking": true and make the agent edit a file, git-ai commit says it's "100% You, 0% AI" and git-ai log says prompts: {}
This happens for the local agent in the sidebar, but also happens for tab completions: always reported as 0% AI.
If I disable setting, git-ai works normally. (except for the first commit in a repository: git-ai always reports it as 0% AI. That's a separate bug I guess, but it's relatively minor)
I don't know if this bug is specific to VSCode Insiders or if regular VSCode triggers it. I am running this version of VSCode Insiders:
Version: 1.113.0-insider
Commit: 4315cca9583c0fbf60e1a406ea6c7dfb48698c33
Date: 2026-03-20T02:21:37Z
Electron: 39.8.2
ElectronBuildId: 13563792
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Linux x64 6.19.8-zen1-1-zen
And this version of git-ai
Steps to reproduce
- Add
"gitai.experiments.aiTabTracking": true to VSCode settings
- Make the agent edit a file. (Or, make an AI tab completion)
- Notice none of this counts as AI
- Notice prompts aren't getting saved
Expected vs actual behavior
Expected: edits counts as AI, prompts gets saved
Actual: edits counts as human, prompts are stored as {}
Diagnostics (git-ai debug)
git-ai debug report
Generated (UTC): 2026-04-08T04:21:04.511302587+00:00
== Versions ==
Git AI version: 1.2.6
Git AI binary: /home/a/.git-ai/bin/git-ai
Git binary path: /usr/bin/git
Git version: git version 2.53.0
== Platform ==
OS family: unix
OS: linux
Arch: x86_64
Kernel: Linux 6.19.8-zen1-1-zen x86_64
Hostname: alfredo
Shell: /bin/zsh
Current dir: /home/code/test/w
== Hardware ==
CPU: AMD Ryzen 7 5700U with Radeon Graphics
Physical cores: <unavailable>
Logical cores: 16
Memory: 18.88 GB (20274335744 bytes)
== Repository ==
In repository: true
Workdir: /home/code/test/w
Git dir: /home/code/test/w/.git
Git common dir: /home/code/test/w/.git
Branch: main
HEAD: d9315d7575c48c0375f7dcad68a915d5ee584d67
== Git Config ==
Command: /usr/bin/git config --list --show-origin --show-scope
global file:/home/a/.gitconfig core.excludesfile=~/.gitignore
global file:/home/a/.gitconfig core.askpass=/usr/bin/ksshaskpass
global file:/home/a/.gitconfig user.email=tolkiendili@gmail.com
global file:/home/a/.gitconfig user.name=Elias Gabriel Amaral da Silva
global file:/home/a/.gitconfig alias.lg1=log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
global file:/home/a/.gitconfig alias.lg2=log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
global file:/home/a/.gitconfig alias.lg=!git lg1
global file:/home/a/.gitconfig alias.signoff-rebase=!GIT_SEQUENCE_EDITOR='sed -i -re s/^pick/e/' sh -c 'git rebase -i $1 && while git rebase --continue; do git commit --amend --signoff --no-edit; done' -
global file:/home/a/.gitconfig alias.up=pull --rebase --autostash
global file:/home/a/.gitconfig alias.track=!git branch -r | grep -v "\->" | while read remote; do git branch --track "${remote#origin/}" "$remote" 2> /dev/null; done
global file:/home/a/.gitconfig alias.dft=difftool
global file:/home/a/.gitconfig alias.children=!bash -c 'c=${1:-HEAD}; set -- $(git rev-list --all --not "$c"^@ --children | grep $(git rev-parse "$c") ); shift; echo $*' -
global file:/home/a/.gitconfig alias.dlog=!f() { GIT_EXTERNAL_DIFF=difft git log -p --ext-diff; }; f
global file:/home/a/.gitconfig alias.ignored=!git ls-files -v | grep '^[Shsmrcku]'
global file:/home/a/.gitconfig push.default=current
global file:/home/a/.gitconfig submodule.recurse=true
global file:/home/a/.gitconfig init.defaultbranch=main
global file:/home/a/.gitconfig diff.tool=difftastic
global file:/home/a/.gitconfig difftool.prompt=false
global file:/home/a/.gitconfig difftool.difftastic.cmd=difft $LOCAL $REMOTE
global file:/home/a/.gitconfig pager.difftool=true
global file:/home/a/.gitconfig filter.lfs.process=git-lfs filter-process
global file:/home/a/.gitconfig filter.lfs.required=true
global file:/home/a/.gitconfig filter.lfs.clean=git-lfs clean -- %f
global file:/home/a/.gitconfig filter.lfs.smudge=git-lfs smudge -- %f
global file:/home/a/.gitconfig commit.gpgsign=true
global file:/home/a/.gitconfig tag.gpgsign=true
global file:/home/a/.gitconfig trace2.eventtarget=af_unix:stream:/home/a/.git-ai/internal/daemon/trace2.sock
global file:/home/a/.gitconfig trace2.eventnesting=10
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
== Git AI Config ==
config_file_path: /home/a/.git-ai/config.json
git_ai_dir: /home/a/.git-ai
runtime_config:
{
"git_path": "/usr/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": false,
"update_channel": "latest",
"feature_flags": {
"rewrite_stash": false,
"inter_commit_move": false,
"auth_keyring": false,
"async_mode": true,
"git_hooks_enabled": false,
"git_hooks_externally_managed": false
},
"api_base_url": "https://usegitai.com",
"prompt_storage": "default",
"default_prompt_storage": null,
"api_key": null,
"quiet": false,
"custom_attributes": {},
"git_ai_hooks": {}
}
== Git AI Login ==
Credential backend: file
Status: logged out
== Git AI Environment ==
No GIT_AI_* environment variables are set.
Extra context (optional)
Here is the output of git-ai log. Only the commit with "q" message was human created; all others were created by the copilot agent. The ones that were incorrectly not captured as AI (like "Modify program to skip prime numbers") were done with the gitai.experiments.aiTabTracking setting enabled
$ git-ai log
commit d9315d7575c48c0375f7dcad68a915d5ee584d67
Author: Elias Gabriel Amaral da Silva <tolkiendili@gmail.com>
Date: Wed Apr 8 01:11:07 2026 -0300
Change final print to 'Hi'
Notes (ai):
src/main.rs
d7d17c027ca3d00e 20
---
{
"schema_version": "authorship/3.0.0",
"git_ai_version": "1.2.6",
"base_commit_sha": "d9315d7575c48c0375f7dcad68a915d5ee584d67",
"prompts": {
"d7d17c027ca3d00e": {
"agent_id": {
"tool": "github-copilot",
"id": "9b9a2ff7-173b-4b94-be6b-6711559e2686",
"model": "copilot/grok-code-fast-1"
},
"human_author": "Elias Gabriel Amaral da Silva",
"messages": [],
"total_additions": 1,
"total_deletions": 1,
"accepted_lines": 1,
"overriden_lines": 0
}
}
}
commit 4e91beb1c836ac640eb323bca1828aba84b51a78
Author: Elias Gabriel Amaral da Silva <tolkiendili@gmail.com>
Date: Wed Apr 8 01:06:08 2026 -0300
q
Notes (ai):
---
{
"schema_version": "authorship/3.0.0",
"git_ai_version": "1.2.6",
"base_commit_sha": "4e91beb1c836ac640eb323bca1828aba84b51a78",
"prompts": {}
}
commit 85d3e0d90672d79966d42ece91caf64ae5c058d6
Author: Elias Gabriel Amaral da Silva <tolkiendili@gmail.com>
Date: Wed Apr 8 01:04:43 2026 -0300
Modify program to skip prime numbers
Notes (ai):
---
{
"schema_version": "authorship/3.0.0",
"git_ai_version": "1.2.6",
"base_commit_sha": "85d3e0d90672d79966d42ece91caf64ae5c058d6",
"prompts": {}
}
commit 63bc335398d77048f348d6654c082c8a210822b8
Author: Elias Gabriel Amaral da Silva <tolkiendili@gmail.com>
Date: Wed Apr 8 01:01:55 2026 -0300
Modify program to count from 1 to 10
Notes (ai):
src/main.rs
d7d17c027ca3d00e 2-4
---
{
"schema_version": "authorship/3.0.0",
"git_ai_version": "1.2.6",
"base_commit_sha": "63bc335398d77048f348d6654c082c8a210822b8",
"prompts": {
"d7d17c027ca3d00e": {
"agent_id": {
"tool": "github-copilot",
"id": "9b9a2ff7-173b-4b94-be6b-6711559e2686",
"model": "copilot/grok-code-fast-1"
},
"human_author": "Elias Gabriel Amaral da Silva",
"messages": [],
"total_additions": 3,
"total_deletions": 1,
"accepted_lines": 3,
"overriden_lines": 0
}
}
}
commit dbf0399dc86ec164d5a0e8f5bec7350df34c7693
Author: Elias Gabriel Amaral da Silva <tolkiendili@gmail.com>
Date: Wed Apr 8 00:59:08 2026 -0300
Initial commit
Notes (ai):
---
{
"schema_version": "authorship/3.0.0",
"git_ai_version": "1.2.6",
"base_commit_sha": "dbf0399dc86ec164d5a0e8f5bec7350df34c7693",
"prompts": {}
}
What broke?
When I have
"gitai.experiments.aiTabTracking": trueand make the agent edit a file,git-ai commitsays it's "100% You, 0% AI" andgit-ai logsaysprompts: {}This happens for the local agent in the sidebar, but also happens for tab completions: always reported as 0% AI.
If I disable setting, git-ai works normally. (except for the first commit in a repository: git-ai always reports it as 0% AI. That's a separate bug I guess, but it's relatively minor)
I don't know if this bug is specific to VSCode Insiders or if regular VSCode triggers it. I am running this version of VSCode Insiders:
And this version of git-ai
Steps to reproduce
"gitai.experiments.aiTabTracking": trueto VSCode settingsExpected vs actual behavior
Expected: edits counts as AI, prompts gets saved
Actual: edits counts as human, prompts are stored as
{}Diagnostics (
git-ai debug)Extra context (optional)
Here is the output of
git-ai log. Only the commit with "q" message was human created; all others were created by the copilot agent. The ones that were incorrectly not captured as AI (like "Modify program to skip prime numbers") were done with thegitai.experiments.aiTabTrackingsetting enabled