Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/evals-periodic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ jobs:
- name: Emit run manifest (ALL periodic tests minus reasoned excludes)
env:
EVALS_ALL: "1"
run: EVALS_TIER=periodic bun --no-install run scripts/test-paid-shards.ts --tier periodic --emit-plan /tmp/paid-plan/manifest.json --slice-budget 540 --jobs 2 --max-parallel 24
run: EVALS_TIER=periodic bun --no-install run scripts/test-paid-shards.ts --tier periodic --emit-plan /tmp/paid-plan/manifest.json --slice-budget 540 --jobs 2 --max-parallel 25

- name: Derive the periodic executor matrix from the plan
id: periodic-matrix
Expand Down Expand Up @@ -166,7 +166,7 @@ jobs:
fail-fast: false
# Every planned slice starts at once; test/evals-workflow-wiring.test.ts
# fails when the live plan outgrows this cap.
max-parallel: 24
max-parallel: 25
matrix:
slice: ${{ fromJSON(needs.plan-slices.outputs.periodic_slices) }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-title-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
steps:
# Base repo only — trusted infra (the rewrite helper). No PR-head checkout.
- name: Checkout base repo (trusted)
uses: actions/checkout@v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 1

Expand Down
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,42 @@
# Changelog

## [1.91.13.0] - 2026-10-02

**/autoplan runs again for anyone with a SessionStart hook, and /land-and-deploy never merges over red CI.**
**Projects in nested Git groups stop sharing saved state.**

This release fixes the most severe open bugs from a triage of the tracker. /autoplan's phase guard denied every phase when Claude Code's session journal opened with SessionStart hook output, which is the normal shape once any plugin installs a hook, and on Windows it also rejected forward-slash and `/c/` paths. /land-and-deploy treated "no required checks" as "nothing to wait for", so on any repo without branch protection (every private repo on GitHub Free) it could merge while CI was red or still running. Repos under `group/subgroup/repo` remotes collapsed into one `~/.gstack/projects/` bucket, so /context-restore could offer another project's checkpoint.

### What changes for you

- **/autoplan:** works in sessions with SessionStart hooks, after `/compact`, `/clear` and a forked resume, and on Windows. When it does block, the message names the reason and how to run the reviews by hand (`docs/autoplan-guard-troubleshooting.md`). If a future Claude Code journal shape is unrecognized but healthy, /autoplan warns "phase publication was NOT verified for this session" and continues instead of locking you out.
- **/land-and-deploy is stricter.** It now waits for all checks on the exact commit it merges, not only required ones, and that includes `gh pr merge --auto`. A red or pending optional check, or a commit with no CI at all, needs your explicit approval for that commit. The verdict comes from `bin/gstack-ci-gate` (`--help` documents it).
- **Nested-group remotes** (GitLab subgroups, Azure DevOps, Bitbucket Server) now get their own `projects/<repo>-<hash>/` bucket. GitHub buckets do not move. The old shared bucket is left in place; `gstack-slug --adopt-legacy` lists it and copies only the files you confirm. /context-restore only treats this project's checkpoints as latest.
- **never-ask preferences now fire** (#2901). Questions you tuned to never-ask through /plan-tune will start auto-deciding. One-way questions, including the new land-and-deploy CI approvals, never auto-decide.
- **Upgrade:** run `/gstack-upgrade`, then start a new Claude Code session.

### Itemized changes

#### Fixed
- /autoplan publication guard accepts real Claude Code journals: SessionStart attachment chains, a forked session that starts at a compact boundary, and Windows path spellings, with typed reason codes and per-reason messages (#3007, #3009, #2968, #2977, #2986, #3006). Built on #3010 by @CharlesBerg85, with root rules from #3008 by @laurenbdaniels-coder, #2969 by @maydaycyber and #2960 by @elmesery-dev.
- /land-and-deploy no longer merges over red, pending or missing CI when a repo declares no required checks (#2995). Logic from #3001 by @harshitgavita-07, moved into a tested helper.
- Nested-group remotes no longer share a state bucket, and checkpoints carry a credential-free project identity that /context-restore checks (#3003, reported by @tomg65). All six slug resolvers share one canonical-remote rule; the sticky cache is versioned so cache hits stay git-free.
- The AskUserQuestion preference hook reads the same project identity as the writer, so never-ask preferences apply; unknown identity asks instead of auto-deciding (#2901). Idea first proposed in #2332 by @jawadakram20.
- Brain context loaded 0 bytes in every skill because it called `gbrain list_pages`, an MCP tool name; it now uses `gbrain list` and reports failed queries (#2883). Includes #3000 by @TheAngryPit.
- /sync-gbrain's code stage failed on managed gbrain (>= 0.51); it now passes `--no-pull` and never retries without it (#2985).
- /sync-gbrain no longer re-creates duplicate curated pages; `--sources` selects memory types (#2922). Based on #2997 by @harshitgavita-07.
- A clean Codex review could never pass the /codex gate. Untagged output is now UNVERIFIED instead of FAIL, and P2/P3-only output passes (#2769).
- `/cso import-sarif` dropped every semgrep and trivy result that used `uriBaseId`; captured scanner shapes now import, and rejected results are counted with the rule and path (#3011).
- The pre-push redact hook flagged the repo's own 4-part VERSION as a public IP on every /ship (#2856).
- `gstack-update-check` cached "up to date" when it could not read the remote version; it now caches a short-lived CHECK_FAILED (#2786).

#### Added
- `SECURITY.md` with a private vulnerability reporting path (#2984).
- Periodic drift canary that reads fresh journals from the pinned `claude` and fails if the guard stops recognizing them.

#### Changed
- `pr-title-sync.yml`, which runs with a write token on `pull_request_target`, pins `actions/checkout` to a reviewed SHA.

## [1.91.12.0] - 2026-10-01

**Weekly evals finish in minutes, not hours, and a red now means something.**
Expand Down
32 changes: 32 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Security Policy

## Reporting a vulnerability

Please report security vulnerabilities privately, not in public issues,
pull requests, or discussions.

**Preferred:** use GitHub private vulnerability reporting:
<https://github.com/garrytan/gstack/security/advisories/new>

Include what you can: the affected file, skill, or command; the gstack
version (`cat VERSION` in your install, or the `/gstack-upgrade` output);
steps to reproduce; and the impact you observed.

**If that link does not work:** open a minimal public issue titled
"Request for a private security contact". Do not include any technical
details, affected files, or proof of concept in it. A maintainer will reply
with a private channel, and you can send the details there.

## Scope

gstack is a set of skills, scripts, and helper binaries that run on your own
machine with your own credentials. Reports about the code in this repository
are in scope: the skill templates and generated `SKILL.md` files, `bin/`,
`lib/`, `browse/`, `scripts/`, the installer (`setup`), and the GitHub Actions
workflows. Vulnerabilities in third-party tools gstack drives (Claude Code,
Codex, gbrain, scanners, browsers) should go to those projects.

## Supported versions

Fixes land on `main` and ship in the next release. Run `/gstack-upgrade` to
get them; older versions are not patched separately.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.91.12.0
1.91.13.0
2 changes: 1 addition & 1 deletion agents-digest/gstack-AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# gstack digest v1.91.12.0 — regenerate/re-copy after upgrading gstack
# gstack digest v1.91.13.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,
Expand Down
Loading
Loading