Skip to content

Commit abd19d7

Browse files
garrytanclaude
andcommitted
v1.17.0.0: rebump again — bump-detection now classifies branch as MINOR
CI's version-stale check (job 73106360896) failed: PR #1234 claims v1.16.1.0 but the queue moved to v1.17.0.0. Root cause: bumping 1.15.1.0 → 1.16.1.0 to dodge the prior collision turned the branch's diff classification from PATCH (1.15.0 → 1.15.1) into MINOR (1.15.0 → 1.16.x). detect-bump.ts now sees MINOR, gstack-next-version walks the MINOR lane past #1233's v1.16.0.0 claim, and the next free slot is v1.17.0.0. Honestly accurate per CLAUDE.md scale-aware bumps: this branch IS a MINOR ("substantial new capability shipped — skill, harness, command, big refactor"). The new helper + migration + integration totals ~1200 lines added across 11 files with 26 new tests. PATCH was always the wrong honest classification; the queue collision forced the right answer. Files updated: - VERSION 1.16.1.0 → 1.17.0.0 - package.json 1.16.1.0 → 1.17.0.0 - CHANGELOG.md heading + After column 1.16.1.0 → 1.17.0.0 - CHANGELOG removal targets 1.17.0.0 → 1.18.0.0 - gstack-upgrade/migrations/v1.16.1.0.sh → renamed v1.17.0.0.sh + log prefix - bin/gstack-brain-consumer "DEPRECATED in" + "removal in" 1.16.1.0/1.17.0.0 → 1.17.0.0/1.18.0.0 - bin/gstack-brain-uninstall "since vX.Y.Z.W" 1.16.1.0 → 1.17.0.0 - test/gstack-upgrade-migration-v1_16_1_0.test.ts → renamed v1_17_0_0.test.ts 26/26 tests still pass. No behavior change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 28257b7 commit abd19d7

7 files changed

Lines changed: 19 additions & 19 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## [1.16.1.0] - 2026-04-26
3+
## [1.17.0.0] - 2026-04-26
44

55
## **Your gstack memory now actually lives in gbrain.**
66

@@ -27,15 +27,15 @@ The helper locks the database URL at startup (precedence: `--database-url` flag
2727

2828
`/setup-gbrain` Step 7 now invokes the helper with `--strict` after `gstack-brain-init`. `/gstack-upgrade` invokes the helper without `--strict` via `gstack-upgrade/migrations/v1.12.3.0.sh` so missing/old gbrain is a benign skip during batch upgrade. `bin/gstack-brain-restore` invokes the helper after the initial clone so a 2nd Mac gets the wireup automatically. `bin/gstack-brain-uninstall` invokes `--uninstall` plus removes legacy `consumers.json`.
2929

30-
`bin/gstack-brain-init` drops 60 lines of dead consumer-registration code (the HTTP POST block, the `consumers.json` writer, the chore commit). `bin/gstack-brain-restore` drops the 18-line `consumers.json` token-rehydration block (the only consumer that used it never had real tokens). `bin/gstack-brain-consumer` is marked deprecated in its header docstring; removal in v1.17.0.0 after one cycle of grace.
30+
`bin/gstack-brain-init` drops 60 lines of dead consumer-registration code (the HTTP POST block, the `consumers.json` writer, the chore commit). `bin/gstack-brain-restore` drops the 18-line `consumers.json` token-rehydration block (the only consumer that used it never had real tokens). `bin/gstack-brain-consumer` is marked deprecated in its header docstring; removal in v1.18.0.0 after one cycle of grace.
3131

3232
`test/gstack-gbrain-source-wireup.test.ts` is new: 13 unit tests with a fake `gbrain` binary on `$PATH` covering fresh-state registration, idempotent re-runs, drift recovery (gbrain has no `sources update`, only `remove + add`), `--strict` failure modes, source-id fallback chain (`.git` → remote-file → flag), `--probe` non-mutation, sync errors, and `--uninstall`.
3333

3434
### The numbers that matter
3535

3636
These are reproducible on any machine after upgrade. Run the verify commands above to see your own delta.
3737

38-
| Metric | Before (v1.16.0.0) | After (v1.16.1.0) |
38+
| Metric | Before (v1.16.0.0) | After (v1.17.0.0) |
3939
|---|---|---|
4040
| `gbrain sources list` size | 1 (default `/data/brain`) | 2 (default + `gstack-brain-{user}`) |
4141
| `consumers.json` status | `"pending"`, ingest_url `""` | file deleted from new installs |
@@ -51,8 +51,8 @@ Your gstack memory is searchable now. Run a CEO plan review or office-hours sess
5151

5252
### For contributors
5353

54-
- `bin/gstack-brain-consumer` is deprecated in this release; removal in v1.17.0.0.
55-
- The `gbrain_url` and `gbrain_token` config keys are now no-ops. They remain readable for one cycle for back-compat, removed in v1.17.0.0.
54+
- `bin/gstack-brain-consumer` is deprecated in this release; removal in v1.18.0.0.
55+
- The `gbrain_url` and `gbrain_token` config keys are now no-ops. They remain readable for one cycle for back-compat, removed in v1.18.0.0.
5656
- Three pre-existing test failures on this branch (`gstack-config gbrain keys > GSTACK_HOME overrides real config dir`, `no compiled binaries in git > git tracks no files larger than 2MB`, `Opus 4.7 overlay — pacing directive`) were verified to fail on the base branch too. Out of scope for this PR; flagged for a follow-up.
5757

5858
## [1.15.0.0] - 2026-04-26

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.16.1.0
1+
1.17.0.0

bin/gstack-brain-consumer

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#!/usr/bin/env bash
22
# gstack-brain-consumer — manage the consumer (reader) registry.
33
#
4-
# DEPRECATED in v1.16.1.0. This binary targets a gbrain HTTP /ingest-repo
4+
# DEPRECATED in v1.17.0.0. This binary targets a gbrain HTTP /ingest-repo
55
# endpoint that never shipped on the gbrain side. Live federation now uses
66
# `gbrain sources` directly via bin/gstack-gbrain-source-wireup. This file
7-
# stays for one cycle to avoid breaking external scripts; removal in v1.17.0.0.
7+
# stays for one cycle to avoid breaking external scripts; removal in v1.18.0.0.
88
#
99
# Consumer = a reader that ingests the gstack-brain git repo as a source of
1010
# session memory. v1 primary consumer is GBrain; later versions can register

bin/gstack-brain-uninstall

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ if [ -x "$WIREUP_BIN" ]; then
129129
"$WIREUP_BIN" --uninstall 2>/dev/null || true
130130
fi
131131

132-
# ---- legacy consumers.json (no longer written by gstack-brain-init since v1.16.1.0) ----
132+
# ---- legacy consumers.json (no longer written by gstack-brain-init since v1.17.0.0) ----
133133
rm -f "$GSTACK_HOME/consumers.json" 2>/dev/null || true
134134

135135
# ---- clear config keys ----
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env bash
2-
# Migration: v1.16.1.0 — Wire existing brain-sync repos as gbrain federated sources
2+
# Migration: v1.17.0.0 — Wire existing brain-sync repos as gbrain federated sources
33
#
4-
# Pre-1.16.1.0 /setup-gbrain wrote ~/.gstack/consumers.json with a placeholder
4+
# Pre-1.17.0.0 /setup-gbrain wrote ~/.gstack/consumers.json with a placeholder
55
# `status: "pending"` and an empty `ingest_url`, expecting a gbrain HTTP
66
# /ingest-repo endpoint that never shipped. This migration runs the real
77
# wireup (gbrain sources add + worktree + initial sync) for users who
@@ -17,7 +17,7 @@
1717
set -euo pipefail
1818

1919
if [ -z "${HOME:-}" ]; then
20-
echo " [v1.16.1.0] HOME is unset or empty — skipping migration." >&2
20+
echo " [v1.17.0.0] HOME is unset or empty — skipping migration." >&2
2121
exit 0
2222
fi
2323

@@ -44,13 +44,13 @@ fi
4444

4545
# Skip if helper missing (defensive — should always be present post-upgrade).
4646
if [ ! -x "$WIREUP_BIN" ]; then
47-
echo " [v1.16.1.0] $WIREUP_BIN missing or non-executable — skipping wireup." >&2
47+
echo " [v1.17.0.0] $WIREUP_BIN missing or non-executable — skipping wireup." >&2
4848
exit 0
4949
fi
5050

51-
echo " [v1.16.1.0] Wiring brain-sync repo into gbrain (federated source + initial sync)..."
51+
echo " [v1.17.0.0] Wiring brain-sync repo into gbrain (federated source + initial sync)..."
5252

5353
# No --strict: missing/old gbrain is a benign skip during a batch upgrade.
5454
"$WIREUP_BIN" || {
55-
echo " [v1.16.1.0] Wireup exited non-zero — re-run manually with: $WIREUP_BIN" >&2
55+
echo " [v1.17.0.0] Wireup exited non-zero — re-run manually with: $WIREUP_BIN" >&2
5656
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gstack",
3-
"version": "1.16.1.0",
3+
"version": "1.17.0.0",
44
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
55
"license": "MIT",
66
"type": "module",

test/gstack-upgrade-migration-v1_16_1_0.test.ts renamed to test/gstack-upgrade-migration-v1_17_0_0.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* gstack-upgrade/migrations/v1.16.1.0.sh — migration script unit tests.
2+
* gstack-upgrade/migrations/v1.17.0.0.sh — migration script unit tests.
33
*
44
* The migration runs on /gstack-upgrade for users with brain-sync configured but
55
* never wired up to gbrain. It has 4 skip conditions and one happy path.
@@ -16,7 +16,7 @@ import * as path from 'path';
1616
import { spawnSync } from 'child_process';
1717

1818
const ROOT = path.resolve(import.meta.dir, '..');
19-
const MIGRATION = path.join(ROOT, 'gstack-upgrade', 'migrations', 'v1.16.1.0.sh');
19+
const MIGRATION = path.join(ROOT, 'gstack-upgrade', 'migrations', 'v1.17.0.0.sh');
2020

2121
let tmpHome: string;
2222
let fakeBinDir: string;
@@ -85,7 +85,7 @@ afterEach(() => {
8585
} catch {}
8686
});
8787

88-
describe('migrations/v1.16.1.0.sh', () => {
88+
describe('migrations/v1.17.0.0.sh', () => {
8989
test('HOME unset: prints message + exit 0 (defensive)', () => {
9090
// Override HOME to empty string. Bash's [ -z "${HOME:-}" ] guard should fire.
9191
const r = run({ env: { HOME: '' } });

0 commit comments

Comments
 (0)