release: v6.7.1 - #41
Conversation
There was a problem hiding this comment.
🧪 PR Review is completed: Release v6.7.1 adds usage telemetry with git commit observation and usage event reporting. Main concern: detectGitRepo spawns a synchronous git subprocess on every call and is invoked redundantly throughout the agent lifecycle — up to 2× per tool call.
Skipped files
CHANGELOG.md: Skipped file pattern
| this.lastGitHead = | ||
| options.resume?.lastGitHead ?? | ||
| getPersistedGitHead(options.cwd) ?? | ||
| getGitHead(options.cwd) | ||
| persistGitHead(options.cwd, this.lastGitHead) |
There was a problem hiding this comment.
🟠 Performance
Issue: detectGitRepo(this.options.cwd) spawns a synchronous git config --get remote.origin.url subprocess, and is called redundantly in runTurn (line 650), observeCommittedCode (line 835, invoked after every tool execution at line 1288), and reportLineMetrics (line 1322). The repo URL is static for the lifetime of a session, so these are wasted subprocess spawns — up to 2 per tool call, potentially 20+ per turn.
Fix: Cache the result as a private field initialized once in the constructor, and replace all detectGitRepo(...) call sites with the cached value.
Impact: Eliminates up to 20+ synchronous git subprocess spawns per turn for a session with 10 tool calls, reducing event-loop blocking.
| this.lastGitHead = | |
| options.resume?.lastGitHead ?? | |
| getPersistedGitHead(options.cwd) ?? | |
| getGitHead(options.cwd) | |
| persistGitHead(options.cwd, this.lastGitHead) | |
| this.repo = detectGitRepo(options.cwd) | |
| this.lastGitHead = | |
| options.resume?.lastGitHead ?? | |
| getPersistedGitHead(options.cwd) ?? | |
| getGitHead(options.cwd) | |
| persistGitHead(options.cwd, this.lastGitHead) |
Cut the v6.7.1 release.
Changes
Release flow
After this PR is merged into
main, tag the merge commit and push the tag to trigger the publish workflow:git checkout main && git pull git tag v6.7.1 git push origin v6.7.1See
RELEASE.mdfor the full release process.