mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-23 05:10:50 +02:00
v1.87.5.0 perf: remove idle waits from tests and CI planning (#2897)
* v1.87.5.0 perf: remove idle waits from tests and CI planning * fix: settle split PTY redraws before routing input * docs: record final burst-safe test benchmarks * fix: keep cold-setup snapshot metadata dependency-free * fix: avoid early-reader pipe races in artifact URL parsing * fix: preserve safety matches for multiline command payloads * fix: recognize concurrent CSO publication removal * test: preload the UI design-review target before invocation * docs: record validation blocker fixes * fix: bind plan observer rejection to the invoked command * fix: count only native design decisions in the UI gate * docs: clarify UI-positive eval evidence requirements * test: recognize native UI decisions without weakening finding counts * test: decouple native UI evidence from question punctuation * test: recognize concrete native UI decisions independently of prose format * fix: retain failed eval logs under the hidden CI cache * test: await telemetry completion instead of racing disk writes
This commit is contained in:
@@ -1,5 +1,43 @@
|
||||
# Changelog
|
||||
|
||||
## [1.87.5.0] - 2026-09-17
|
||||
|
||||
**Tests finish sooner without dropping checks.**
|
||||
**CI stops waiting on unused tooling.**
|
||||
|
||||
This release speeds up gstack's development feedback loop. Terminal-driven checks react to new output instead of waiting through a fixed polling interval. Synthetic CLIs can announce when their input handlers are ready, while real CLI sessions retain their startup grace and input debounces. Completed processes no longer stay alive just to finish unused timeout timers.
|
||||
|
||||
### The three numbers that matter
|
||||
|
||||
Measured on the same Linux machine with Bun 1.4.0. Run each named file with `bun test <file>` on the previous release and this version. The polyfill and daemon numbers are three-run wall-time medians on both sides; the permission baseline is one observed run, and its after value is a three-run median. These are individual test-file measurements, not whole-suite or production latency claims.
|
||||
|
||||
| Test file | Before | After | Δ |
|
||||
|---|---:|---:|---:|
|
||||
| `browse/test/bun-polyfill.test.ts` | 17.30s | 1.29s | −93% |
|
||||
| `design/test/daemon-discovery.test.ts` | 17.78s | 11.99s | −33% |
|
||||
| `test/plan-count-file-permission.test.ts` | 97.05s | 30.92s | −68% |
|
||||
|
||||
The permission suite still makes all 115 assertions, including its deliberate stale-prompt delay. Terminal observations are capped at four per second so animated output cannot turn faster responses into a busy loop.
|
||||
|
||||
### What this means for contributors
|
||||
|
||||
Local test runs spend less time waiting after work is already complete. CI planning no longer pulls the execution image or waits for image lookup before producing its manifest; executors still require both prerequisites, and missing or failed results still fail reconciliation. Run `bun run test` for the complete free suite.
|
||||
|
||||
### Itemized changes
|
||||
|
||||
#### For contributors
|
||||
|
||||
- Wake plan-count checks on output and exit, retain a silent metadata fallback, and settle output bursts before reading split redraws. Three synthetic CLI suites use explicit startup readiness without changing real-CLI startup behavior.
|
||||
- Cancel unused PTY and Node deadlines, stop already-exited daemon fixtures immediately, clear cookie-picker fixture sessions between suites, and await watchdog shutdown with a bounded completion signal.
|
||||
- Await telemetry append completion in consent tests instead of assuming disk writes finish within 30ms. Consent checks and error swallowing are unchanged.
|
||||
- Run gate and periodic CI planners directly on pinned Bun without dependency installation. Reports also skip unused installs; fork restrictions, executor images, and failure checks remain intact.
|
||||
- Retain failed eval shard logs from the hidden CI cache directory without uploading unrelated cache files.
|
||||
- Inject the CSO Git-pointer race at its first bounded read, preserving the original rejection assertion.
|
||||
- Preload the UI-positive design-review eval in an isolated plan fixture and require an answered native design question, rather than accepting scope or outside-review menus. Bind command-rejection checks to the invoked skill, not a child tool's diagnostics.
|
||||
- Generate skill documentation in a fresh checkout without importing browser runtime dependencies. Keep snapshot flag metadata and public exports unchanged.
|
||||
- Eliminate early-reader pipe races in artifact URL normalization and safety-hook matching. Multiline commands retain their warnings even with large trailing content.
|
||||
- Treat a publication removed by another CSO recovery helper during candidate enumeration as a bounded retry; replacement inodes still fail closed.
|
||||
|
||||
## [1.87.4.0] - 2026-09-16
|
||||
|
||||
**Failed checks stay failed.**
|
||||
|
||||
Reference in New Issue
Block a user