mirror of https://github.com/garrytan/gstack.git
release: v1.64.0.0 — fix wave CHANGELOG, VERSION, deferred-wave TODOs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
55c75d69f8
commit
a7e96bb561
158
CHANGELOG.md
158
CHANGELOG.md
|
|
@ -1,5 +1,163 @@
|
|||
# Changelog
|
||||
|
||||
## [1.64.0.0] - 2026-08-14
|
||||
|
||||
**Ninety fixes in one wave. Every guard that said it was protecting you now actually does.**
|
||||
|
||||
This release is a fix wave built from a full audit of the tracker: every open
|
||||
PR and every open issue, verified against main before anything landed. The
|
||||
pattern that kept showing up was guards that failed open. The freeze and
|
||||
careful hooks emitted a payload shape Claude Code ignores, so deny meant
|
||||
allow. The redact pre-push hook had six separate paths that let a credential
|
||||
through. The test suite exited green after running 4% of itself. All of that
|
||||
is fixed, with a regression test or a static tripwire pinning each one shut.
|
||||
|
||||
The wave absorbs the best community fix for each defect, credited by name:
|
||||
82 contributors are named in this release, several of whom independently
|
||||
fixed the same bug within days of each other. That duplication is the
|
||||
tracker telling us how many people hit the same wall.
|
||||
|
||||
### The numbers that matter
|
||||
|
||||
Source: `git log 1.63.0.0..HEAD` on this branch, plus the audit workflow
|
||||
records referenced in the PR.
|
||||
|
||||
| Metric | Before | After |
|
||||
|---|---|---|
|
||||
| Free-suite files that actually run | ~16 of 434 (truncated, exit 0) | all 434, honest exit code |
|
||||
| Guard hooks that can block (freeze/careful/team-init) | 0 of 3 | 3 of 3, fail closed |
|
||||
| Native AskUserQuestion answers recorded | 14% | 100%, suffix-aware |
|
||||
| /codex runs per macOS session before breaking | 1 | unlimited (mktemp fixed) |
|
||||
| Issues closed by this release | — | 52 |
|
||||
| Community PRs absorbed with credit | — | ~50 |
|
||||
|
||||
The suite number is the one to sit with. A delayed process.exit(0) in one
|
||||
test file killed the whole run mid-flight with a green exit code — so every
|
||||
other guarantee in CI was resting on a suite that could not fail. It can
|
||||
fail now, a fault-injection test proves the failure propagates, and the
|
||||
sharded runner treats a summary-less shard as failed.
|
||||
|
||||
### What this means for you
|
||||
|
||||
Skill enforcement (/freeze, /careful, team required-mode) actually blocks.
|
||||
The redact guard scans big diffs instead of blocking them unscanned, and
|
||||
quoted arguments can't hide an rm -rf from /careful. Auto-upgrade un-wedges
|
||||
itself on installs with local patches. Memory ingest refuses to claim
|
||||
success while importing nothing. Windows installs stop bricking .gstack
|
||||
when your hostname matches your username, stop flashing console windows,
|
||||
and the plan-tune hooks finally record your answers. Design image
|
||||
generation works again. Update gstack and the wave is yours.
|
||||
|
||||
### Itemized changes
|
||||
|
||||
#### Fixed — enforcement guards
|
||||
- /freeze deny and /careful ask decisions nest under hookSpecificOutput so
|
||||
Claude Code honors them; team-init required mode blocks with exit 2 even
|
||||
on schema drift. Contributed by @jawadakram20, @Masashi-Ono0611.
|
||||
- /careful parses the tool payload with a real JSON parser (quoted
|
||||
arguments no longer truncate the command), asks on IFS/base64
|
||||
obfuscation, fails closed on unreadable input, and multi-line commands
|
||||
cannot ride the safe-exception whitelist. Contributed by @wtamminga.
|
||||
- The investigate scope lock resolves check-freeze via $HOME (the
|
||||
CLAUDE_SKILL_DIR path never resolved at hook time). Reported with a fix
|
||||
by @maxpetrusenkoagent.
|
||||
- Specialist review agents run with run_in_background: false — required
|
||||
since Claude Code 2.1.198 made background the default.
|
||||
|
||||
#### Fixed — credentials and redaction
|
||||
- Pre-push scanning: line-aligned chunked scans for big diffs
|
||||
(@luckywenapere), real push-base resolution instead of whole-repo blame
|
||||
(@stormeoio), byte-exact stdin for chained hooks (@francis-eye),
|
||||
--no-ext-diff/--no-textconv, hunk-aware header parsing, fail-closed ref
|
||||
parsing (bypasses reported by @lubosxyz), GOCSPX + Telegram token
|
||||
patterns (@francis-eye), UUID fixture false-positive suppression.
|
||||
- pair-agent walks you through ngrok auth in YOUR terminal — the token
|
||||
never enters the transcript.
|
||||
- The extension denies token/port reads to content scripts and foreign
|
||||
extensions, reimplemented for the v1.63 pinned-origin token model.
|
||||
Contributed by @punksterlabs.
|
||||
- diff 9.0.0 (GHSA-73rr-hh4g-fpgx, @genisis0x); OpenAI key file written
|
||||
0600-at-create (@bunlongheng); injection-denylist and phone-pattern
|
||||
false positives calibrated (@Masashi-Ono0611, @JonasFocus, @abkrim).
|
||||
|
||||
#### Fixed — test-suite integrity
|
||||
- All eight delayed process.exit teardown bombs removed; static no-suicide
|
||||
tripwire; fault-injection proof of exit-code propagation; the sharded
|
||||
runner fails shards that exit 0 without bun's summary. Contributed by
|
||||
@sneakygriff with repairs from @time-attack; also fixed by @whd4.
|
||||
- design/test/ joins the free suite and the sharded runner (it never ran
|
||||
anywhere before).
|
||||
- The orphaned sidebar chat-queue suites are gone; live sidebar tests stay.
|
||||
- Fork PRs skip eval jobs deterministically instead of red/green by Docker
|
||||
cache luck. Contributed by @andrey-esipov.
|
||||
|
||||
#### Fixed — silent data loss
|
||||
- memory-ingest imports gitignored staging (@gawievanblerk), reconciles
|
||||
imported-vs-staged counts and refuses to advance state on shortfall
|
||||
(@Charles-Grant), with a version-adaptive flag fallback.
|
||||
- lib/ ships beside bin/ on every host install — learnings, decisions and
|
||||
telemetry scripts work outside Claude Code. Contributed by @fedster99;
|
||||
supabase/config.sh copy by @jizusun.
|
||||
- Native AskUserQuestion answers parse correctly (object-map shape), the
|
||||
(Recommended) suffix compares equal, and extraction failures no longer
|
||||
poison followed_recommendation. Based on the working patch by @yijisoo;
|
||||
suffix fix by @chuchu2781.
|
||||
- The autoplan task aggregator returns real tasks (jq scope bug swallowed
|
||||
by 2>/dev/null). Contributed by @kkroo.
|
||||
- Auto-upgrade pulls with --autostash over locally-patched installs and
|
||||
logs the real failure reason.
|
||||
- gstack-slug resolves the project root by marker walk-up (@ajeenkya),
|
||||
canonicalizes slash branches (@ShuratCode), and keeps cached identity
|
||||
sticky so adding a remote never renames your project.
|
||||
- Design image generation: the gpt-image-2 tool pairing that 400'd every
|
||||
call is fixed (@Pablosinyores), with honest timeout reporting (@vryahn).
|
||||
|
||||
#### Fixed — Windows
|
||||
- icacls grants by SID — hostname==username no longer bricks ~/.gstack
|
||||
(@asizux2; independently fixed by @Icandi40, @chiragborse1, @IntegriGit,
|
||||
@voltapix26).
|
||||
- windowsHide forwarded through every spawn shim (@jerrynicholsai;
|
||||
subsets by @jwilk-hrep, @rroojrooj, @WimvandenHeijkant); watchdog uses
|
||||
signal-0 liveness with a reachable circuit breaker (@SYKhayyat); terminal
|
||||
agents tie their lifetime to the owner PID (@csarigoz).
|
||||
- All three plan-tune hooks spawn their bins through a shared
|
||||
Windows-aware helper (@rafassousa); setup registers the SessionStart
|
||||
hook with a bash prefix (@NikhileshNanduri); BROWSE_BIN gets its .exe
|
||||
(@rroojrooj); the polyfill exposes an exited promise (@punksterlabs)
|
||||
and the CJK terminal issues are gone (double-send fixed by
|
||||
@mindsurf0176, full-width font cells by @tomfluff).
|
||||
- New Windows regression tests run on windows-latest CI, not just as
|
||||
static checks on macOS.
|
||||
|
||||
#### Fixed — /codex
|
||||
- mktemp templates keep the X-run trailing — /codex works past the first
|
||||
run on macOS (@ShuratCode and @noron12234; also @cathrynlavery).
|
||||
- codex review receives explicit diff args instead of silently reviewing
|
||||
the dirty tree (@fangearhq-boop), wrapped in timeouts so truncation
|
||||
stops reading as no-findings (@aegixx).
|
||||
- Review mode runs sandboxed read-only; the P0/P1/P2 gate fails closed on
|
||||
empty, untagged, or non-zero output; model-entitlement 400s get
|
||||
actionable guidance.
|
||||
|
||||
#### Fixed — everything else
|
||||
- Artifacts Sync and telemetry-finalize un-deadened in 49 skills (quoted
|
||||
tilde never expands — @jawadakram20). update_check:false now silences
|
||||
the preamble prose too (@jc0d35). Codex hosts read AGENTS.md, not
|
||||
CLAUDE.md (@exGeni). setup --help prints help (@saen-ai). Model overlays
|
||||
for the current Claude generation (@chrisquorum). Plus ~20 more small
|
||||
fixes credited in the git log: deploy-config URL parsing, artifacts-init
|
||||
protocol handling, keychain auth detection, catalog description
|
||||
truncation, tracked-file test counts, update-check crash sentinel,
|
||||
Ubuntu 26.04 detection, CRLF-stable generation, telemetry error fields,
|
||||
server-lock diagnostics, shell-quoted paths, benchmark arg validation,
|
||||
and more.
|
||||
|
||||
#### For contributors
|
||||
- The enumerate-first repair protocol used here (defuse, enumerate, repair
|
||||
before removing) is documented in the PR; the audit records live in the
|
||||
session workflow journals. Four follow-up waves are captured in TODOS.md
|
||||
with full context.
|
||||
|
||||
## [1.63.0.0] - 2026-08-13
|
||||
|
||||
**Everything gstack sends off your machine now leaves a receipt you can read.**
|
||||
|
|
|
|||
33
TODOS.md
33
TODOS.md
|
|
@ -2750,3 +2750,36 @@ rendering quirks"); or (c) move this test to periodic until (a)/(b) lands.
|
|||
**Context:** `test/skill-e2e-plan-design-with-ui.test.ts`,
|
||||
`test/helpers/claude-pty-runner.ts:308` (`isNumberedOptionListVisible`). Evidence:
|
||||
`~/.gstack-dev/eval-runs/pdwu-verify-*.log`. **Effort:** M (human ~half day / CC ~30min).
|
||||
|
||||
### P2: Follow-up fix waves from the 2026-08-14 tracker audit (v1.64.0.0)
|
||||
|
||||
The full-tracker audit behind v1.64.0.0 verified every open PR/issue against
|
||||
main and consciously deferred four coherent fix waves. Audit records:
|
||||
`~/.gstack/projects/garrytan-gstack/` eng-review artifacts + the v1.64 PR body.
|
||||
|
||||
**Wave A — browse-daemon lifecycle.** Watchdog kills headed handoff sessions
|
||||
(PRs 2565/2405/2346), macOS headed launch broken by the rebrand-invalidated
|
||||
Chromium signature + XProtect (issues 2554/2242/2138/1829/1379 — the three
|
||||
darwin-skipped handoff tests in browse/test/handoff.test.ts un-skip when this
|
||||
lands), busy-daemon kill (2219/2231), cosmetic SIGTERM ignore (2220),
|
||||
Playwright pin bump (PR 1761, #1703 — rebuilds the CI browser image).
|
||||
Start with the signature/re-sign question; everything else is small.
|
||||
|
||||
**Wave B — install integrity.** connect-chrome alias shadowing (PR 2202,
|
||||
issues 2201/2511), Playwright bootstrap aborts/timeouts (PRs 2233/2359,
|
||||
issues 1902/2136), --host cursor/slate wiring (PRs 2547/2432, issue 2361),
|
||||
review checklist/specialists never copied (issues 2317/2518), Windows re-run
|
||||
refresh (#2444). Blast radius is `setup` — one focused PR.
|
||||
|
||||
**Wave C — gbrain trust boundary.** Transcript trust/scope/source isolation
|
||||
(PR 2232, issue 2140), brain-sync queue truncation (#2549), worktree source
|
||||
pins (PR 2417, #2516), thin-client detection gaps (#2520/#2456), plus small
|
||||
absorbs (2371/2360/2406/2369/2368/2321). Needs never-double-store review.
|
||||
|
||||
**Wave D — ship/version allocator.** Queue-down fallback (PRs 2545/2546),
|
||||
npm-invalid subdir manifest versions (PR 2531), versionless repos
|
||||
(2343/2334/2501, #1474), diff-scope specialist routing rewrite
|
||||
(#2526/#2299/#2455), /review token runaway (#2519).
|
||||
|
||||
**Depends on:** v1.64.0.0 landing. Each wave is one bundled PR per the
|
||||
fix-wave pattern.
|
||||
|
|
|
|||
Loading…
Reference in New Issue