merge: resolve CHANGELOG conflict with main, bump to v0.12.7.0

Main claimed v0.12.6.0 for sidebar fixes. Bumped our codex-cwd-bug entry
to v0.12.7.0. Fixed ELOOP in regression test by using Bun.Glob with
followSymlinks:false instead of fs.readdirSync recursive (the
.claude/skills/gstack symlink loops back to ROOT).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-03-26 23:13:33 -06:00
18 changed files with 1424 additions and 178 deletions

View File

@@ -1655,9 +1655,10 @@ describe('codex commands must not use inline $(git rev-parse --show-toplevel) fo
// The fix is to resolve _REPO_ROOT eagerly at the top of each bash block.
// Scan all source files that could contain codex commands
// Use Bun.Glob to avoid ELOOP from .claude/skills/gstack symlink back to ROOT
const tmplGlob = new Bun.Glob('**/*.tmpl');
const sourceFiles = [
...fs.readdirSync(ROOT, { recursive: true })
.filter((f): f is string => typeof f === 'string' && f.endsWith('.tmpl') && !f.includes('node_modules')),
...Array.from(tmplGlob.scanSync({ cwd: ROOT, followSymlinks: false })),
...fs.readdirSync(path.join(ROOT, 'scripts/resolvers'))
.filter(f => f.endsWith('.ts'))
.map(f => `scripts/resolvers/${f}`),
@@ -1688,6 +1689,8 @@ describe('codex commands must not use inline $(git rev-parse --show-toplevel) fo
typeof f === 'string' &&
f.endsWith('SKILL.md') &&
!f.includes('node_modules') &&
!f.includes('.claude') &&
!f.includes('.agents') &&
!f.includes('.tmpl'));
for (const rel of skillMdFiles) {
const abs = path.join(ROOT, rel);