# gstack 1.68.1.0 - Product: gstack (https://whatsnew.fyi/product/gstack) - Vendor: gstack - Date: 2026-08-18 - Version: 1.68.1.0 - Original notes: https://raw.githubusercontent.com/garrytan/gstack/main/CHANGELOG.md - Permalink: https://whatsnew.fyi/product/gstack/releases/1.68.1.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** — Phantom hook errors are eliminated by having settings.json heal itself on every setup, preventing ephemeral paths from being baked in - **changed** — Hook registration is now canonical-only: commands point at the stable ~/.claude/skills/gstack install or are not registered at all - **changed** — Ownership is decided by a fixed identity table in bin/gstack-settings-hook per hook item, surviving tag-stripping and preventing false claims of hooks - **added** — Every ./setup run now heals first: gstack-settings-hook prune-stale --repoint removes dead gstack entries, re-points stale ones, restores stripped tags, and collapses duplicates - **added** — gstack-settings-hook prune-stale command with [--repoint] [--all] flags for self-healing hook registrations - **added** — gstack-config has for key-presence check - **added** — KNOWN_HOOKS identity table covering all six gstack hooks - **added** — Mutation lock around every settings.json write with ownership-checked release and atomic stale-lock takeover - **changed** — Backups get unique names and rotate with 10 kept - **fixed** — Setup never writes a running-tree path into global settings - **changed** — The Conductor auto-opt-in for AskUserQuestion reliability hooks now respects explicit decisions - **changed** — add-event is the single quoting authority: registered commands are normalized once - **changed** — All settings.json mutators are per-item so a hook co-located in the same entry as a gstack hook survives every gstack operation - **changed** — Teardown paths run hook cleanup before any deletion - **fixed** — Deleted Conductor workspaces and worktrees no longer leave dead hooks - **changed** — A corrupt settings.json is preserved and reported instead of being replaced - **changed** — settings.json file mode is preserved across rewrites; fresh files are created 0600 - **changed** — Liveness checks treat only provable absence as dead - **fixed** — A vacuous test in the banner-tripwire check now passes the script as argv Phantom hook errors are dead. Your settings.json now heals itself on every setup, and no ephemeral path can ever be baked in again. Hook registration is now canonical-only: commands point at the stable ~/.claude/skills/gstack install or are not registered at all. Ownership is decided by a fixed identity table in bin/gstack-settings-hook, per hook item, so it survives tag-stripping and can never claim a hook you wrote yourself. Every ./setup run now heals first: gstack-settings-hook prune-stale --repoint removes dead gstack entries, re-points stale ones, restores stripped tags, and collapses duplicates. gstack-settings-hook prune-stale with [--repoint] [--all] for self-healing hook registrations. gstack-config has for key-presence check. KNOWN_HOOKS identity table covering all six gstack hooks. A mutation lock around every settings.json write with ownership-checked release and atomic stale-lock takeover. Backups get unique names and rotate with 10 kept. Hook registration is canonical-only. Setup never writes a running-tree path into global settings. The Conductor auto-opt-in for AskUserQuestion reliability hooks now respects explicit decisions. add-event is the single quoting authority: registered commands are normalized once. All settings.json mutators are per-item: a hook you co-located in the same entry as a gstack hook survives every gstack operation. Teardown paths run hook cleanup before any deletion. Deleted Conductor workspaces and worktrees no longer leave dead hooks. A corrupt settings.json is preserved and reported instead of being replaced. settings.json file mode is preserved across rewrites; fresh files are created 0600. Liveness checks treat only provable absence as dead. A vacuous test in the banner-tripwire check now passes the script as argv.