chore: re-slot release as v1.62.1.0 (PATCH per user)

Main claimed 1.62.0.0 while the wave was in flight; the user chose the
PATCH slot over queue-advancing MINOR. Renumbers the identity-pin
migration notice (now version-free flag name so a re-slot never orphans
an already-set flag), the CLAUDE.md /health note, the CHANGELOG heading,
and the TODOS section titles.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Garry Tan 2026-08-13 10:34:01 -07:00
parent ac6d2c5920
commit 92a107db13
No known key found for this signature in database
GPG Key ID: C1F69E85C74EFE1D
6 changed files with 16 additions and 15 deletions

View File

@ -1,6 +1,6 @@
# Changelog
## [1.63.0.0] - 2026-08-12
## [1.62.1.0] - 2026-08-12
**Everything gstack sends off your machine now leaves a receipt you can read.**
**And the eval harness stopped grading itself a passing grade.**

View File

@ -282,7 +282,7 @@ PTY via `window.gstackInjectToTerminal(text)`, exposed by
`sidepanel-terminal.js`. No `/sidebar-command` POST — the live REPL is
the only execution surface in the sidebar now.
**`/health` MUST NOT surface any token — and it no longer does** (v1.63+).
**`/health` MUST NOT surface any token — and it no longer does** (v1.62.1+).
The historical headed-mode leak of `AUTH_TOKEN` is fixed: `GET /health` is
liveness/status only in every mode. Token bootstrap is `POST /extension-token`,
which validates the caller's Origin against the pinned extension identity

View File

@ -2723,9 +2723,9 @@ log already streams per-shard results).
**Effort:** S (human ~2h, CC ~15min). **Depends on:** v1.62 port wave landed.
## v1.63 port-wave review follow-ups (deferred from /ship review army — non-blocking polish)
## v1.62.1 port-wave review follow-ups (deferred from /ship review army — non-blocking polish)
Genuine review findings deferred from the v1.63 ship because they are
Genuine review findings deferred from the v1.62.1 ship because they are
informational/polish, not correctness-blocking, and several want their own
tests. Filed so they are tracked, not dropped.
@ -2756,7 +2756,7 @@ tests. Filed so they are tracked, not dropped.
## P2: harden or re-tier skill-e2e-plan-design-with-ui PTY detection
**What:** The gate-tier `test/skill-e2e-plan-design-with-ui.test.ts` began executing
for the first time once v1.63's `seedSkills` registered skills in hermetic PTY
for the first time once v1.62.1's `seedSkills` registered skills in hermetic PTY
children (the fork had deleted this file; it measured nothing before). It now
reliably TIMES OUT even though the skill runs correctly: the transcript shows
`/plan-design-review` reaching its scope-gate AskUserQuestion (5 options, the

View File

@ -1 +1 @@
1.63.0.0
1.62.1.0

View File

@ -588,24 +588,25 @@ chrome.tabs.onUpdated.addListener((_id, changeInfo) => {
}
});
// ─── v1.63 identity-pin migration notice ────────────────────────
// ─── identity-pin migration notice (v1.62.1) ────────────────────
//
// The manifest "key" added in v1.63 pins the extension ID, which changes
// The manifest "key" added in v1.62.1 pins the extension ID, which changes
// the ID for existing installs — chrome.storage.local is keyed by
// extension ID, so panel-local state (saved port, snoozes) resets once.
// Explain that in-product, one time.
// Explain that in-product, one time. The flag name is version-free so a
// release re-slot never orphans an already-set flag.
async function announceIdentityPinOnce() {
try {
const data = await chrome.storage.local.get('gstack_id_migrated_v163');
if (data.gstack_id_migrated_v163) return;
console.log('[gstack] gstack sidebar: extension identity pinned in v1.63 — panel state reset once.');
const data = await chrome.storage.local.get('gstack_id_pin_migrated');
if (data.gstack_id_pin_migrated) return;
console.log('[gstack] gstack sidebar: extension identity pinned in v1.62.1 — panel state reset once.');
chrome.runtime.sendMessage({
type: 'gstack-migration-notice',
message: 'gstack sidebar: extension identity pinned in v1.63 — panel state reset once.',
message: 'gstack sidebar: extension identity pinned in v1.62.1 — panel state reset once.',
}).catch(() => {
// Expected: panel not open. The console line above still lands.
});
await chrome.storage.local.set({ gstack_id_migrated_v163: true });
await chrome.storage.local.set({ gstack_id_pin_migrated: true });
} catch (err) {
console.debug('[gstack] identity-pin notice failed (non-fatal):', err.message);
}

View File

@ -1,6 +1,6 @@
{
"name": "gstack",
"version": "1.63.0.0",
"version": "1.62.1.0",
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
"license": "MIT",
"type": "module",