diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a5072300..652d0f91a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.91.208.0] - 2026-10-25 + +**The Capy install guide says that the team-mode session-start updater also waits for live workflow leases.** With #3385 (#3363), `bin/gstack-session-update` skips its background fast-forward while another session holds a live workflow lease, the same leases `bin/gstack-upgrade` already honors. `docs/capy-install.md` described only the upgrade side. + +### Documentation +- **`docs/capy-install.md`**: the workflow-lease paragraph now says the team-mode SessionStart hook (`bin/gstack-session-update`) honors the same leases. It logs `SKIP leased pid=

/m` to `analytics/session-update.log` and tries again at the next session start, without writing its hourly throttle stamp. + ## [1.91.207.0] - 2026-10-25 **Per-repository session counts include sessions from removed Claude Code worktrees (ported from #3334 by @Shweta-Mishra-ai).** Claude Code creates worktrees at `/.claude/worktrees/` and removes them once their branch merges, but their session history stays. `gstack-global-discover` resolved each session's recorded directory with git, so a removed worktree resolved to nothing: its sessions counted in the tool total and in no repository. Reproduced on main: 2 sessions in a repo plus 3 in a removed worktree gave `total_sessions 5` but 2 for the repo. diff --git a/VERSION b/VERSION index c5d5571bc..b3d823cb4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.91.207.0 +1.91.208.0 diff --git a/agents-digest/gstack-AGENTS.md b/agents-digest/gstack-AGENTS.md index 2ce846c8e..2283fc59f 100644 --- a/agents-digest/gstack-AGENTS.md +++ b/agents-digest/gstack-AGENTS.md @@ -1,4 +1,4 @@ -# gstack digest v1.91.207.0 — regenerate/re-copy after upgrading gstack +# gstack digest v1.91.208.0 — regenerate/re-copy after upgrading gstack Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed for agent hosts without a full skill install. The full skills add workflows, diff --git a/docs/capy-install.md b/docs/capy-install.md index a52e9aa20..c2d0ce97b 100644 --- a/docs/capy-install.md +++ b/docs/capy-install.md @@ -109,7 +109,11 @@ and `/proc` start time; elsewhere `ps -o lstart`), because a pid is reused after a reboot or a machine wake. `bin/gstack-upgrade`, and so the session-start self-upgrade, refuses with [UPGRADE_BUSY](troubleshooting.md#upgrade-busy) while a lease held by a live process outside its own chain exists, naming each -holder as `pid

(m )`. A lease whose pid now belongs to another +holder as `pid

(m )`. The team-mode SessionStart hook +(`bin/gstack-session-update`) honors the same leases: it logs +`SKIP leased pid=

/m` to `analytics/session-update.log` and tries again at +the next session start, without writing its hourly throttle stamp. A lease whose +pid now belongs to another process, or an identity-less lease from an older gstack past 120 minutes, is stale: `bin/gstack-lease live` reclaims it (`gstack-lease: reclaimed stale lease …`). Stale needs proof: two well-formed identities from the same backend diff --git a/package.json b/package.json index 53b6f1d2f..cd2c1099d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.91.207", + "version": "1.91.208", "description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.", "license": "MIT", "type": "module",