mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-02 03:35:09 +02:00
v1.16.1.0: rebump after queue-collision (PR #1233 took v1.16.0.0)
CI's "Check VERSION is not stale vs queue" job (job 73105686380) failed with: "VERSION drift: PR #1234 claims v1.15.1.0 but the queue has moved — next free slot is v1.16.1.0." PR #1233 (garrytan/browserharness) entered the queue claiming v1.16.0.0 between when this branch's prior /ship ran and when CI evaluated, so v1.15.1.0 is stale. Rebumping on top. Files updated: - VERSION 1.15.1.0 → 1.16.1.0 - package.json 1.15.1.0 → 1.16.1.0 - CHANGELOG.md heading + Before/After columns 1.15.1.0 → 1.16.1.0 - CHANGELOG removal target (consumers.json + config keys) 1.16.0.0 → 1.17.0.0 - gstack-upgrade/migrations/v1.15.1.0.sh → renamed v1.16.1.0.sh + log prefix - bin/gstack-brain-consumer "DEPRECATED in" + "removal in" 1.15.1.0/1.16.0.0 → 1.16.1.0/1.17.0.0 - bin/gstack-brain-uninstall "since vX.Y.Z.W" 1.15.1.0 → 1.16.1.0 - test/gstack-upgrade-migration-v1_15_1_0.test.ts → renamed v1_16_1_0.test.ts No behavior change. 26/26 wireup + migration tests still pass on the rename. Full bun test suite: exit 0, 0 failures. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+5
-5
@@ -1,6 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
## [1.15.1.0] - 2026-04-26
|
||||
## [1.16.1.0] - 2026-04-26
|
||||
|
||||
## **Your gstack memory now actually lives in gbrain.**
|
||||
|
||||
@@ -27,7 +27,7 @@ The helper locks the database URL at startup (precedence: `--database-url` flag
|
||||
|
||||
`/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`.
|
||||
|
||||
`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.16.0.0 after one cycle of grace.
|
||||
`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.
|
||||
|
||||
`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`.
|
||||
|
||||
@@ -35,7 +35,7 @@ The helper locks the database URL at startup (precedence: `--database-url` flag
|
||||
|
||||
These are reproducible on any machine after upgrade. Run the verify commands above to see your own delta.
|
||||
|
||||
| Metric | Before (v1.15.0.0) | After (v1.15.1.0) |
|
||||
| Metric | Before (v1.16.0.0) | After (v1.16.1.0) |
|
||||
|---|---|---|
|
||||
| `gbrain sources list` size | 1 (default `/data/brain`) | 2 (default + `gstack-brain-{user}`) |
|
||||
| `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
|
||||
|
||||
### For contributors
|
||||
|
||||
- `bin/gstack-brain-consumer` is deprecated in this release; removal in v1.16.0.0.
|
||||
- The `gbrain_url` and `gbrain_token` config keys are now no-ops. They remain readable for one cycle for back-compat, removed in v1.16.0.0.
|
||||
- `bin/gstack-brain-consumer` is deprecated in this release; removal in v1.17.0.0.
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
## [1.15.0.0] - 2026-04-26
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# gstack-brain-consumer — manage the consumer (reader) registry.
|
||||
#
|
||||
# DEPRECATED in v1.15.1.0. This binary targets a gbrain HTTP /ingest-repo
|
||||
# DEPRECATED in v1.16.1.0. This binary targets a gbrain HTTP /ingest-repo
|
||||
# endpoint that never shipped on the gbrain side. Live federation now uses
|
||||
# `gbrain sources` directly via bin/gstack-gbrain-source-wireup. This file
|
||||
# stays for one cycle to avoid breaking external scripts; removal in v1.16.0.0.
|
||||
# stays for one cycle to avoid breaking external scripts; removal in v1.17.0.0.
|
||||
#
|
||||
# Consumer = a reader that ingests the gstack-brain git repo as a source of
|
||||
# session memory. v1 primary consumer is GBrain; later versions can register
|
||||
|
||||
@@ -129,7 +129,7 @@ if [ -x "$WIREUP_BIN" ]; then
|
||||
"$WIREUP_BIN" --uninstall 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# ---- legacy consumers.json (no longer written by gstack-brain-init since v1.15.1.0) ----
|
||||
# ---- legacy consumers.json (no longer written by gstack-brain-init since v1.16.1.0) ----
|
||||
rm -f "$GSTACK_HOME/consumers.json" 2>/dev/null || true
|
||||
|
||||
# ---- clear config keys ----
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# Migration: v1.15.1.0 — Wire existing brain-sync repos as gbrain federated sources
|
||||
# Migration: v1.16.1.0 — Wire existing brain-sync repos as gbrain federated sources
|
||||
#
|
||||
# Pre-1.15.1.0 /setup-gbrain wrote ~/.gstack/consumers.json with a placeholder
|
||||
# Pre-1.16.1.0 /setup-gbrain wrote ~/.gstack/consumers.json with a placeholder
|
||||
# `status: "pending"` and an empty `ingest_url`, expecting a gbrain HTTP
|
||||
# /ingest-repo endpoint that never shipped. This migration runs the real
|
||||
# wireup (gbrain sources add + worktree + initial sync) for users who
|
||||
@@ -17,7 +17,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "${HOME:-}" ]; then
|
||||
echo " [v1.15.1.0] HOME is unset or empty — skipping migration." >&2
|
||||
echo " [v1.16.1.0] HOME is unset or empty — skipping migration." >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -44,13 +44,13 @@ fi
|
||||
|
||||
# Skip if helper missing (defensive — should always be present post-upgrade).
|
||||
if [ ! -x "$WIREUP_BIN" ]; then
|
||||
echo " [v1.15.1.0] $WIREUP_BIN missing or non-executable — skipping wireup." >&2
|
||||
echo " [v1.16.1.0] $WIREUP_BIN missing or non-executable — skipping wireup." >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo " [v1.15.1.0] Wiring brain-sync repo into gbrain (federated source + initial sync)..."
|
||||
echo " [v1.16.1.0] Wiring brain-sync repo into gbrain (federated source + initial sync)..."
|
||||
|
||||
# No --strict: missing/old gbrain is a benign skip during a batch upgrade.
|
||||
"$WIREUP_BIN" || {
|
||||
echo " [v1.15.1.0] Wireup exited non-zero — re-run manually with: $WIREUP_BIN" >&2
|
||||
echo " [v1.16.1.0] Wireup exited non-zero — re-run manually with: $WIREUP_BIN" >&2
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gstack",
|
||||
"version": "1.15.1.0",
|
||||
"version": "1.16.1.0",
|
||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* gstack-upgrade/migrations/v1.15.1.0.sh — migration script unit tests.
|
||||
* gstack-upgrade/migrations/v1.16.1.0.sh — migration script unit tests.
|
||||
*
|
||||
* The migration runs on /gstack-upgrade for users with brain-sync configured but
|
||||
* never wired up to gbrain. It has 4 skip conditions and one happy path.
|
||||
@@ -16,7 +16,7 @@ import * as path from 'path';
|
||||
import { spawnSync } from 'child_process';
|
||||
|
||||
const ROOT = path.resolve(import.meta.dir, '..');
|
||||
const MIGRATION = path.join(ROOT, 'gstack-upgrade', 'migrations', 'v1.15.1.0.sh');
|
||||
const MIGRATION = path.join(ROOT, 'gstack-upgrade', 'migrations', 'v1.16.1.0.sh');
|
||||
|
||||
let tmpHome: string;
|
||||
let fakeBinDir: string;
|
||||
@@ -85,7 +85,7 @@ afterEach(() => {
|
||||
} catch {}
|
||||
});
|
||||
|
||||
describe('migrations/v1.15.1.0.sh', () => {
|
||||
describe('migrations/v1.16.1.0.sh', () => {
|
||||
test('HOME unset: prints message + exit 0 (defensive)', () => {
|
||||
// Override HOME to empty string. Bash's [ -z "${HOME:-}" ] guard should fire.
|
||||
const r = run({ env: { HOME: '' } });
|
||||
Reference in New Issue
Block a user