AI Code Insights changelog
Fixed shell-command attribution when post events reached the daemon before their pre-command snapshots, and bounded memory retained for pending snapshots
Fixed OpenCode shell command attribution when a command ran in a different working directory
Fixed the OpenCode plugin failing to load on OpenCode v2 installations; OpenCode 1.18.29 or later is now required
Fixed AI attribution for files created in a single AI edit
Fixed missed commits and incorrect branch attribution when a Git worktree was removed and recreated with the same name or path
Fixed Codex attribution for edits and shell commands in a repository other than the session’s working directory
Fixed Codex whole-file deletions being counted as human-authored
Fixed lost AI attribution when commits were rewritten with git reset
Excluded Git LFS pointer files from authored lines and AI percentage
Fixed Claude Code background task notifications appearing as user messages
Newly cloned repositories already allowed by the server can now be recognized when an AI session starts
Optimized line-attribution processing for large files
Added built-in attribution exclusions for common dependency caches and virtual environments. Files in these unignored directories are no longer attributed, and large generated trees no longer consume the Bash candidate cap and abort an entire attribution batch
Fixed signed Windows auto-updates stalling during MSI staging and racing executable teardown during activation
Added caching mechanism to repository discovery process
Added -trimpath to release builds to improve reproducibility and prevent local filesystem paths from appearing in binaries and stack traces
Fixed pending Git commits repeatedly scanning every remote ref in large repositories
Added an aicodemetrics.cmd wrapper to prevent interactive commands from losing input in Windows PowerShell
Fixed Windows auto-updates failing when the daemon cannot open the hardened LocalSystem updater process
Improved auto-update confirmation reliability and prevented repeated attempts to install a rolled-back release
Preserved local attribution data when startup encounters an incompatible database schema or a migration failure
Improve CPU/memory usage logging
Added tool usage tracking for legacy-format Codex
Added subagent ingestion for Claude
Removed bare daemon calls from AI tool hooks during reconciliation to prevent duplicate daemon launches
Fixed Rovo double-counting MCP usage
Fixed issue with detached HEAD detection during Git monitoring
Added --profile option to the report command for CPU/memory usage diagnostics
Reduced idle Git monitoring overhead for repos with many remote branches
Improved efficiency of Bash attribution processing
Added tool usage tracking for Codex
Added tool usage tracking for Cursor
Added skill and MCP tool targeting
Added support for Rovo CLI
Added tool usage tracking for Rovo
Fixed Rovo Dev session snapshots lagging one turn behind
Added a push_verification setting to confirm pushes without network git ls-remote lookups, for remotes that require an interactive credential
Fixed push verification retrying an unreachable remote once per pending branch instead of once per remote
Fixed Linux auto-updates always being refused
Fixed shell commands run in Cursor never being attributed, because Cursor sends an empty working directory
Added account-wide remote configuration for additional session directories
Added AI attribution coverage for Claude Code’s NotebookEdit and PowerShell tools
Fixed repository monitoring and status failures caused by localized time-zone abbreviations in persisted timestamps
Fixed Codex session ingestion for versions 0.149+
Fixed the daemon restarting in a loop when another instance already owns the hook endpoint
Added auto-update functionality
Added tool usage tracking for Claude
Fixed AI attribution being skipped for shell commands run in repos containing large auto-generated directories
Fixed copied AI attribution being lost when a cherry-picked commit is amended
Capped concurrent attribution work to reduce daemon CPU usage and the number of concurrent git processes
Fixed attribution being dropped after a rebase when the commit author’s email differs from the email in the daemon configuration
Improved logging and hook installation logic for cases where the daemon doesn’t have permission to modify necessary directories
Updated Claude Code hook installation to use exec form instead of shell form, avoiding shell quoting issues
Fixed attribution for Bash commands when the branch changes mid-session
Improved AI attribution for changes made in worktrees
Improved Codex session tracking by saving tool call IDs
Added a warning to aicodemetricsd status when the effective Git user email has an invalid format
Fixed the macOS installer requiring Rosetta on Apple Silicon
Fixed attribution for pushed commits orphaned by git reset
Added support for Rovo Dev
Fixed attribution for file paths containing spaces, tabs, or non-ASCII characters
Fixed code attribution not carrying across file renames
Modified aicodemetricsd commands to fail with an explanatory message when run as root.
Fixed AI deletions being reattributed to human when a commit is analyzed more than once
Fixed push detection for branches whose upstream is a different branch
Fixed push detection stalling when an unresponsive SSH agent or credential helper hangs remote verification
Added a --reset-db flag to restart that deletes the local database. Useful primarily for customers upgrading from 0.5.x versions of the daemon.
Optimized OpenCode plugin and improved attribution accuracy
Added support for Devin CLI session ingestion
Added gate to only process code attribution from sessions initiated within monitored repos
Fixed hook installation for Devin Desktop
Added login command
Updated hint text for the Full Disk Access status check when no repos are found
Fixed hook installation for Devin CLI on Windows
Improved git push detection in reflog-disabled or stale remote-ref environments
Improved Bash attribution reliability for repos where full git status is slow
Fixed the Windows installer name shown in the UAC prompt
Added automatic log collection and upload for diagnostics
Added support for dinit as a Linux service manager
Improved restart behavior on macOS
Improved attribution accuracy for cherry-picked changes, merge commits, bare-backed worktrees, cross-repo Bash sessions, and AI deletions
Improved workspace path handling for Cursor sessions on Windows
Added report CLI command
Added additional_session_directories configuration option
Added support for WSL
Added support for Windsurf/Devin
Improved attribution accuracy
Removed heuristic-based AI attribution logic. All attribution is now done with data reported via hooks by supported tools.
Removed Watchman dependency
Fixed push detection for commits made inside worktrees
Reports status diagnostic information to Datacloud for observability
Improved status command’s diagnostic information
Updated session tracking to monitor current working directory at launch
Fixed AI code attribution being missed for commits made immediately after an agent’s edits
Improved Windows installer reliability by installing VC++ 2022 redistributable as a prerequisite
Fixed issues with pushed commits not being processed for some users
Sped up .gitignore/.gitattributes discovery on large repos. Uncommitted files are no longer honored — stage them (git add) to have the daemon pick them up.
Local log_level in config file now overrides any value delivered via MDM-managed preferences
Updated the default log_level from info to debug
Updated macOS installer to prevent Watchman socket issues for some users
Fixed memory leak causing high memory usage for some users
Updated Claude Code parser to save session titles
Added database cleanup logic to remove data associated with worktrees that have been deleted or pruned
Fixed code attribution for worktrees created by Claude Code
Sped up .gitignore and .gitattributes discovery further by utilizing git ls-files
Extended url_rewrites to support regex matching via an optional type: "regex" field
Improved macOS post-install script to conditionally create needed directories if they didn’t previously exist
Fixed issue with daemon failures when Watchman channel closes
Fixed issues with parsing Gemini session transcripts
Speed up daemon startup by loading .gitignore and .gitattributes for each repo in parallel and skipping certain directories during .gitattributes discovery
Added setup-watchman-config CLI command to set up Watchman configuration for a repository
Improved AI deletion attribution
Fixed AI attribution being split across duplicate repos on WSL bind mounts
Remove unnecessary encryption logic in Windows
Fixed Windows console window briefly appearing on AI tool hook invocation
Added “check-in” with Datacloud
Fixed code attribution issues with OpenCode
Added session_ids to commit analysis payload
Added disable_clipboard_monitoring configuration option
Improved macOS installer logic for cases where Watchman is already installed, but non-functional
Modified repository discovery logic in macOS to skip network volumes and external volumes
Fixed upgrade logic in Windows installer to stop previous version
Added code attribution support for OpenCode
Improved API payload validation and error handling
Fixed Windows restart command so that it no longer requires elevated access
Improved Windows uninstallation logic to remove Program Files\AICodeMetrics directory
Added session processing support for OpenCode
Reintroduced Windows installer upgrade logic changes from 0.5.38, with an additional fix
Reverted Windows installer upgrade logic changes from 0.5.38
Improved upgrade logic to correctly uninstall older versions of the daemon (Windows) (reverted in 0.5.39)
Removed unnecessary ACL-hardening logic (Windows)
Improved upgrade logic to correctly uninstall older versions of the daemon (Windows)
Modified installation logic to prevent AMFI issues due to reused inodes (macOS)
Improved blank line code attribution
Fixed config.json permissions corruption on Windows for MDM/Intune-deployed configs
Fixed file permission issue with Windows daemon config (the fix implemented in 0.5.28 did not fully resolve the issue)
Added url_rewrites config
Added a timeout to GitHub Copilot hooks
Added a timeout to Cursor hooks
Added a timeout to Gemini CLI hooks
Added a timeout to Codex hooks
Added a timeout to Claude Code hooks
Fixed broken restart CLI command in Windows
Fixed Windows logic for reading the api key from a registry key
Fixed AI deletion attribution bug
Improved Windows uninstall and upgrade behavior
Fixed file permission issue with Windows daemon config after a machine reboot
Fixed bugs related to hook configuration on Windows
Fixed repo discovery for directories containing a .git directory that were not Git repositories
Fixed bugs related to repo discovery
Added AI tool, version, and model attribution to commit analysis for supported tools
Renamed “Gemini” to “Gemini CLI”
Revised session event processing for Gemini CLI
Included Daemon version/OS in session upsert calls
Added code attribution support for Gemini
Added session processing support for Gemini
Fixed post-rebase analysis incorrectly processing upstream commits authored by other users
Added additional logging around repo discovery
Added session processing support for Codex
Fixed macOS binary permissions in postinstall script by using chmod 755 instead of chmod +x to support non-admin installs
Fixed JSONC parsing for GitHub Copilot configuration files
Fixed Watchman/Homebrew detection failing when PATH is only set in ~/.zshrc
Added Watch Manager to enforce a limit on the number of simultaneously monitored repositories
Added OS info to Datacloud payloads
Fixed Windows hook paths to ensure cmd paths are properly formatted
Added PII scrubber package to prevent sensitive data from reaching the Datacloud API
Removed local session evaluation logic
Fixed Claude worktrees being skipped when the worktree path appears in .gitignore