# gstack 1.74.0.0 - Product: gstack (https://whatsnew.fyi/product/gstack) - Vendor: gstack - Date: 2026-08-29 - Version: 1.74.0.0 - Original notes: https://raw.githubusercontent.com/garrytan/gstack/main/CHANGELOG.md - Permalink: https://whatsnew.fyi/product/gstack/releases/1.74.0.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Three CI eval jobs that ran zero tests and passed on every PR now execute actual test content - **fixed** — Four paid test files that could never execute in any lane are now activated - **fixed** — Required free-tests check no longer silently skips nine make-pdf gates on Linux - **fixed** — Fifty-seven E2E files that ran in no scheduled lane are now included in test lanes - **fixed** — Free suite now packs shards by recorded per-file durations instead of file counts for faster execution - **removed** — Serial tree-mutating shard removed from free suite - **changed** — Paid lane re-platforms CI onto the same sharded runner used locally with one planner manifest and sliced executors - **changed** — Paid CI report now fails closed when a slice's artifact never lands - **added** — Required free-tests lane builds gate binaries and runs nine make-pdf E2E gates - **removed** — Two vestigial eval matrix rows that ran zero tests per PR deleted - **changed** — One hundred thirty-five touchfiles keys now name their own declaring test file - **fixed** — Five quarantined browse tests reactivated - **changed** — Two expect(true) paid stubs converted to test.todo - **fixed** — Five test files stopped assigning GSTACK_HOME at module scope - **fixed** — Shared /tmp artifact paths in six PTY tests became per-test mkdtemps - **changed** — restrictDirectoryPermissions now warns and skips symlinked dirs on both platforms - **changed** — Judges resolve their model through lib/eval-model.ts - **fixed** — Seven 28-minute test timeouts inside 25-minute CI jobs trimmed to the physical ceiling - **added** — Ninety-five tests added for six zero-coverage surfaces Green now means green: every test runs somewhere, provably. The suites got faster by deleting lies, not by skipping work. This release is a full audit and overhaul of gstack's own test and CI system. The audit found the safety net lying in specific ways: three CI eval jobs ran zero tests and passed on every PR, four paid test files could never execute in any lane, the required free-tests check silently skipped nine make-pdf gates on Linux for their entire life, and about 57 E2E files ran in no scheduled lane at all. All of it is fixed, and each fixed class now has a tripwire so it cannot quietly return. Speed came from structure. The free suite packs shards by recorded per-file durations instead of file counts, and the serial tree-mutating shard is gone entirely. The paid lane re-platforms CI onto the same sharded runner you use locally, with one planner manifest, sliced executors, and a report that fails closed when a slice's artifact never lands. The required free-tests lane builds the gate binaries and runs the nine make-pdf e2e gates. Deleted the two vestigial eval matrix rows that ran zero tests per PR. Activated the four paid test files whose names fell outside the paid globs. 135 touchfiles keys now name their own declaring test file. Five quarantined browse tests reactivated. The two expect(true) paid stubs are test.todo. Five test files stopped assigning GSTACK_HOME at module scope. Shared /tmp artifact paths in six PTY tests became per-test mkdtemps. restrictDirectoryPermissions warns and skips symlinked dirs on both platforms. Judges resolve their model through lib/eval-model.ts. Seven 28-minute test timeouts inside 25-minute CI jobs trimmed to the physical ceiling. Free suite: duration-aware LPT shard packing. TREE_MUTATING is empty: gen-skill-docs.ts gained a main() guard. Paid runner: full-stream spooling to per-shard log files. Paid CI re-platform: evals.yml gains a sliced lane. The four worst fixed sleeps became condition polls or stdin-EOF-bound child lifetimes. CI hygiene: least-privilege permissions on every workflow, one pinned Bun version everywhere, the image-tag triple bound by test. 95 tests for six zero-coverage surfaces. Policy and tripwire tests for paid-orphan tripwire, GSTACK_HOME module-scope tripwire, bun-version drift, image-tag binding.