Repository navigation
v1.91.16.0 fix: safe installs and upgrades, skills start everywhere, truthful completion (parallel wave) - #3014
Merged
Merged
Conversation
…er-scope migrations, host tiers and conformance kit, OpenCode/Hermes fixes, Copilot CLI (experimental), disabled_skills, slimmer CLAUDE.md (#1925, #2879, #2347, #2338, #2626, #2629, #2825, #2015, #393, #1206, #2096) Co-authored-by: Andrey Esipov <61357035+andrey-esipov@users.noreply.github.com> Co-authored-by: Matthew Williams <5863886+ridermw@users.noreply.github.com> Co-authored-by: Rocky Wu <92764750+lolisaigao1234@users.noreply.github.com>
… docs, TODOS, touchfiles, duration seeds, Bun 1.3 telemetry test fix, replay fixtures pinned to their recorded bytes
|
😎 This pull request was merged. |
…returns EPERM for a live group
Contributor
E2E Evals: ✅ PASS104 executed, 14 reused rule/judge records | 0 manual accepted (unscored; no score-cache credit) | $86.82 rule/judge cost | reconcile exit: 0 Profile: pr / full-fallback; selected behaviors: 103, judges: 24. Deferred to scheduled/release coverage: 108 behaviors and 29 changed prompt files. Deferred checks did not run and receive no PR-pass credit. Rule and judge shards
Fail-closed reconciliationSliced lane: planner → duration-packed executors → fail-closed report. Behavior cases run a pre-registered 3-trial panel (PASS at 2/3 with no contract violation); a PASS 2/3 is shown with its failed trial, never as a clean pass. Reused results retain their original provenance and expiry. |
…, truthful home-guard attribution with --attribute-home, gstack-paths shim in ship-hook fixtures, Copilot in team-init probes, test-of-test detector, cookie review fixture pinned to the approved excerpt
…ath.relative fixture containment, ship push test spawn timeouts
…s so a loaded macOS runner can't time out the single-batch call
…so overlapping sessions keep their cleanup deadline, bws setup cases use the standard JUDGE_MS tier
…is a shebang script, like the PTY harness it covers)
…d, and skips the Step 7 artifact nothing consumes (removes the mechanism behind 3 of 4 historical timeouts)
…r record before spawning, like the product) and qa-evidence resumed pipe (barrier on a full high-water mark instead of a sleep)
…g the daemon; shutdown test awaits the stubbed exit
…TACK_HOME bypass), negative cases check every root; tpa shims live outside the agent's cwd and answer consistently
…ls and [+] groups; coverage prompts name absolute skill paths; TODOs from the gate eval census
…Scope pending' exit); PTY harness ends idle turn-ends and API-error panels promptly with a precise diagnostic
…&& chains (labels, context ranges, git displays in either order) and still rejects forged output
… (never retyped); spawned-marker evidence is the child output; refreshed codex/factory ship goldens
…-command observer refuses backslash paths by design)
…ess 'dimensions or focus' wording (replayed on the captured CI run, negative controls kept)
This was referenced Oct 3, 2026
Closed
5 tasks done
This was referenced Oct 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
One reliability release, planned with /autoplan (CEO, DX and Eng reviews, each with Claude and GPT-6 Astra voices; design skipped, no UI) and approved by Garry. It ships three promises, each backed by tests.
1. Installing or upgrading never quietly changes another copy
./setup --status: every activated install is a row in$GSTACK_STATE_ROOT/installs.tsv(one locked writer,bin/gstack-install-registry.sh). Setup and/gstack-upgradeend with one row per install;--statusis read-only.--host codexleaves Claude's hooks and render alone (./setup --host codex also exposes gstack to Claude Code #2347); a second checkout no longer silently repoints the global Claude link (--globaldoes it on purpose); vendored relink touches only its copy; uninstall drops registry rows. Pre-registry captured Codex installs are reported (./setup run inside a project-vendored gstack silently captures the machine-global Codex skill namespace #2879)../setupauto-detects.test/host-conformance.test.tsruns real setup for all installable hosts. OpenCode (OpenCode: slash commands route to non-existent 'plan' subagent #2629, Opencode host skills contain hardcoded Claude-specific tools and config paths #2626) and Hermes (gen:skill-docs --host hermes: directory is gstack-<skill>, frontmatter name is <skill> — Hermes indexes by frontmatter #2825, Hermes host skills should use clarify instead of AskUserQuestion #2015) fixes; hookless hosts say /careful, /freeze, /guard are advisory.disabled_skills(Add a way to disable skills I don't use #1206); CLAUDE.md 51,981 → 32,420 chars (System diagnostics ⚠ Large ~/.claude/skills/gstack/CLAUDE.md will impact performance (58.5k chars > 40.0k) #2096).2. Skills start everywhere
eval "$(…gstack-slug…)"andeval "$(…gstack-paths)"were all refused (Every skill's start preamble is refused by worktree-isolated Claude Code sessions (compound shape; 49 SKILL.md files) #2763). Now: one literal start line (helper derives its parent PID),bin/gstack-context-recovery, andgstack-paths/slug --getreplace every eval in skill blocks. Re-validated in the same harness with 0 refusals.CLAUDE_CONFIG_DIRandCODEX_HOMEinstalls, with a space-free alias for paths with spaces (Skills hardcode~/.claude/skills/gstack/paths — any install dir not namedgstacksilently breaks aftersetup#1882); /cso names the right launcher per host (/cso on Codex: launcher reported missing because the skill dir has no bin/ and the SKILL.md names no path #2906).$Ntokens Claude Code rewrites are gone and tripwired (Claude Code rewrites $1/$2/$9/$0 in 8 generated skills when they are invoked with arguments #2896); plan-mode preamble no longer claims precedence over host restrictions (Generated plan-mode preamble incorrectly claims skill precedence over host restrictions #2851).3. Truthful completion
start(/cso on Windows: a dead-owner mutation lease is never reclaimed, bricking every later run #2894; Windows diagnostic case incso-windows-launcher).env.kvstops flagging env reads (/cso withholds whole source files that read an API key from the environment (env.kv false positive + locateSpan cannot relocate ^-anchored matches) #2912).GSTACK_CODEX_MODEL→ config.toml incl.review_model→gpt-6-astra), printed before any paid call, no silent fallback (Forcing gpt 6 astra on codex ignoring the app settings is not good #2914). Outside-voice timeouts derive their own Bash gate with KILL escalation (/plan-eng-review and /plan-ceo-review: the Codex outside voice is killed by a hard-coded 300 s Bash timeout (no wrapper, no config knob), then silently replaced by a same-model fallback #2776); probe cache identity (gstack-codex-probe returns cached MODEL_OK after the codex binary or env-var auth changed #2787); guarded mktemp (/codex: an unguarded mktemp still hands codex an empty stderr path (fail closed like the other skills) #2881); nested Codex hides installed skills (Codex adversarial pass in /review self-triggers its own installed skills, burns timeout on setup instead of the task #2847).Also in this release
--toc: real page numbers (print, read, refill, verify; exit 3 instead of empty cells) and one heading inventory for anchors (make-pdf: --toc page-number cells are always empty (no target-counter rule in the print CSS) #2903).gpt-5.5withimage_generationpinned togpt-image-2ahead of OpenAI's 2026-10-23gpt-image-1shutdown;GSTACK_DESIGN_MODELoverride; live-checked with a real key (designstill hardcodesgpt-4oin 11 places — and the obvious fix (bump to gpt-5.x) breaks 5 of them onmax_tokens#2807).macos-named-regressionsjob.~/.gstack(Free tests write to the developer's real $HOME (setup run in team-mode tests, prepush skip log) #2895); no orphaned browse daemons (test:free leaves orphaned browse/src/server.ts processes after shards finish #2816); gbrain-on-PATH isolation (test:free runs the realgbrainwhen it is on PATH; brain-cache tests hit a remote brain and trip the 30s exec timeout #2829); symlinked-TMPDIR (macOS) fixes (macOS: 3 tests in test/gstack-design-detect.test.ts fail deterministically — $TMPDIR vs its realpath (/var -> /private/var) #2841, test: snapshot-bound scan tests fail on macOS (fake gbrain compares a realpath to an unresolved $HOME) #2982, test/plan-count-file-permission.test.ts: "cropped" / "path-cropped" variants fail on macOS — fake 120-column terminal crops the path at every possible $TMPDIR #2911, test/cso-git-hardening.test.ts: "pins every metadata read ... ignores configured global excludes" fails on macOS (case-insensitive APFS) #2909, browse/test/chromium-profile-isolation.test.ts: 2 of 9 cases fail on macOS — afterEach kill(-pgid) throws EPERM on an already-dead daemon #2908, test/spec-quality-gate-secret-sink.test.ts: both "MEDIUM pauses dispatch pending its existing user disposition" cases fail on macOS (mktemp ignores $TMPDIR) #2910). Browse Windows: browse: EEXIST on Windows when .gstack exists — mkdirSecure rethrows EEXIST from recursive mkdir (Bun) #2048, Windows: terminal-agent frombrowse connectdies with the CLI console (missing detached) and runs with its owner watchdog disabled (missing ownerPid) #2637; ship: redact pre-push guard never auto-installs on Windows (HOOKS_IN_GIT_DIR path-format mismatch) #2805 regression test.Co-authored-by credits for the Copilot port are on its commit (@andrey-esipov, @ridermw, @lolisaigao1234).
Eval and test reliability (found while shipping)
The full paid gate ran on every push because this PR regenerates every SKILL.md, which exposed rotating reds. Each was traced to its source and fixed, with no thresholds lowered and no trials added:
/qaprotocol names defined so the clarity judge can act on them; plan-eng-review's scope gate always sends its menu (no headless "Scope pending" exit)./shipdocumentation section has one saved source inserted bycat, never retyped.API Error:panel, one position-bound coverage-read rule (consolidated two detectors; replayed on 243 captured sessions), plan-design focus-title rule, skillify state-root fixture, TPA shims out of the agent's cwd, coverage prompts with absolute paths.JUDGE_MStier (120 s) per the repo's timeout policy.--casecan't select loop-registered cases, and an API-error fail-fast policy call.Validation