fix(#2163): review fixes — changeset format, explicit maxBuffer, hoisted require

- changeset reformatted to the bold-lead + (#2163) house convention
- explicit 8 MiB maxBuffer on the git spawn (default 1 MiB could overflow on
  huge dirty repos; overflow still degrades to segment-absent)
- child_process require hoisted to module level per file style

Claude-Session: https://claude.ai/code/session_01Hme55Pvq6BhpgwBcyC5HAg
This commit is contained in:
Cody Anderson
2026-07-11 13:54:27 -06:00
parent 1e1df1bba2
commit 7a6564ed8a
2 changed files with 6 additions and 3 deletions

View File

@@ -2,4 +2,4 @@
type: Added
pr: 2183
---
Opt-in git branch and working-state segment in the statusline (`statusline.show_git`): branch name plus staged/unstaged/untracked/ahead/behind markers, or ✓ when clean and in sync, rendered after the directory segment. Default off; when disabled no git subprocess is spawned and output is unchanged.
**Opt-in git branch and working-state segment in the statusline** — the shell prompt's branch/dirty-state signal is hidden for the whole session under the Claude Code TUI, so wrong-branch commits and ship-time push rejections surface only after the fact. New `statusline.show_git` config (default `false`) renders the branch name plus staged/unstaged/untracked/ahead/behind markers (or ✓ when clean and in sync) after the directory segment. When disabled, no git subprocess is spawned and output is unchanged. (#2163)

View File

@@ -6,6 +6,7 @@
const fs = require('fs');
const path = require('path');
const os = require('os');
const { execFileSync } = require('child_process');
const { isSemverNewer } = require('../gsd-core/bin/lib/semver-compare.cjs');
const { PACKAGE_NAME, updateCacheFileName } = require('../gsd-core/bin/lib/package-identity.cjs');
@@ -335,9 +336,11 @@ const GIT_STATUS_TIMEOUT_MS = 1500;
*/
function readGitStatus(dir) {
try {
const { execFileSync } = require('child_process');
// 8 MiB maxBuffer (default 1 MiB) headroom for repos with very many changed
// or untracked files; overflow still degrades safely to segment-absent via
// the catch below.
return execFileSync('git', ['-C', dir, 'status', '--porcelain=v2', '--branch'],
{ encoding: 'utf8', timeout: GIT_STATUS_TIMEOUT_MS, stdio: ['ignore', 'pipe', 'ignore'] });
{ encoding: 'utf8', timeout: GIT_STATUS_TIMEOUT_MS, maxBuffer: 8 * 1024 * 1024, stdio: ['ignore', 'pipe', 'ignore'] });
} catch (e) {
return null;
}