From f43c962b5046ed7b264f73822b553f5bfc9ef173 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Fri, 13 Mar 2026 23:57:24 -0500 Subject: [PATCH] chore: bump version and changelog (v0.3.4) Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 22 ++++++++++++++++++++++ TODOS.md | 12 ++++++++++++ VERSION | 2 +- setup | 7 +++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 TODOS.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bdd600c..689a5581 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## 0.3.4 — 2026-03-13 + +### Added +- **Daily update check** — all 9 skills now check for new versions once per day via `bin/gstack-update-check` (pure bash, <5ms cached). Prompts user via AskUserQuestion with option to upgrade or defer 24h. +- **`/gstack-upgrade` skill** — standalone upgrade command that detects install type (global-git, local-git, vendored), upgrades, and shows a "What's New" summary from CHANGELOG +- **"Just upgraded" confirmation** — after upgrading, the next skill invocation shows "Running gstack v{new} (just updated!)" via `~/.gstack/just-upgraded-from` marker +- **`AskUserQuestion` added to 5 skills** — gstack (root), browse, qa, retro, setup-browser-cookies now have AskUserQuestion in allowed-tools for upgrade prompts +- **`Bash` added to plan-eng-review** — enables the update check preamble to run in plan review sessions +- `browse/test/gstack-update-check.test.ts` — 10 test cases covering all script branch paths with `GSTACK_REMOTE_URL` env var for test isolation +- `TODOS.md` for tracking deferred work + +### Changed +- **Version check is now one system** — removed SHA-based `checkVersion()` from `browse/src/find-browse.ts` (~120 lines deleted) and `browse/test/find-browse.test.ts` (~100 lines deleted). Replaced by `bin/gstack-update-check` bash script using semver VERSION comparison with 24h cache. +- Simplified `qa/SKILL.md` and `setup-browser-cookies/SKILL.md` setup blocks — removed old `BROWSE_OUTPUT`/`META` parsing, now use simple `find-browse` call +- Updated `browse/bin/find-browse` shim comments to reflect simplified role (binary locator only) + +### Removed +- `checkVersion()`, `readCache()`, `writeCache()`, `fetchRemoteSHA()`, `resolveSkillDir()`, `CacheEntry` interface from `browse/src/find-browse.ts` +- `META:UPDATE_AVAILABLE` protocol from find-browse output +- Old META-based upgrade instructions from qa and setup-browser-cookies SKILL.md files +- Legacy `/tmp/gstack-latest-version` cache file (cleaned up by `setup` script) + ## 0.3.3 — 2026-03-13 ### Added diff --git a/TODOS.md b/TODOS.md new file mode 100644 index 00000000..161b0908 --- /dev/null +++ b/TODOS.md @@ -0,0 +1,12 @@ +# TODOS + +## Auto-upgrade mode (zero-prompt) + +**What:** Add a `GSTACK_AUTO_UPGRADE=1` env var or `~/.gstack/config` option that skips the AskUserQuestion prompt and upgrades automatically when a new version is detected. + +**Why:** Power users and CI environments may want zero-friction upgrades without being asked every time. + +**Context:** The current upgrade system (v0.3.4) always prompts via AskUserQuestion. This TODO adds an opt-in bypass. Implementation is ~10 lines in the preamble instructions: check for the env var/config before calling AskUserQuestion, and if set, go straight to the upgrade flow. Depends on the full upgrade system being stable first — wait for user feedback on the prompt-based flow before adding this. + +**Effort:** S (small) +**Priority:** P3 (nice-to-have, revisit after adoption data) diff --git a/VERSION b/VERSION index 1c09c74e..42045aca 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.3 +0.3.4 diff --git a/setup b/setup index 1f1ad097..0bf2736b 100755 --- a/setup +++ b/setup @@ -85,3 +85,10 @@ else echo " browse: $BROWSE_BIN" echo " (skipped skill symlinks — not inside .claude/skills/)" fi + +# 4. First-time welcome + legacy cleanup +if [ ! -d "$HOME/.gstack" ]; then + mkdir -p "$HOME/.gstack" + echo " Welcome! Run /gstack-upgrade anytime to stay current." +fi +rm -f /tmp/gstack-latest-version