merge: origin/main v1.1.0.0 into garrytan/fix-checkpoints

Main shipped browse Puppeteer parity (v1.1.0.0 — goto file://,
load-html, screenshot --selector, viewport --scale). Resolved conflicts:

- VERSION / package.json: bumped 1.0.1.0 → 1.1.1.0 (main is 1.1.0.0,
  this branch lands next).
- CHANGELOG: moved the /context-save + /context-restore entry to the
  top as v1.1.1.0, above main's v1.1.0.0.
- Migration: renamed gstack-upgrade/migrations/v1.0.1.0.sh →
  v1.1.1.0.sh (matches new version). Test path updated. Migration
  version string inside the script also updated.

No overlap between browse changes and context-save/context-restore code.
SKILL.md files regenerated via bun run gen:skill-docs --host all per
CLAUDE.md's "never resolve generated files by accepting either side"
rule. Golden fixtures (claude/codex/factory ship) regenerated.

bun test: 0 failures. Migration ownership guard: 7/7 pass (~85ms).
This commit is contained in:
Garry Tan
2026-04-18 23:33:55 +08:00
22 changed files with 1455 additions and 108 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ import * as path from 'path';
import * as os from 'os';
const ROOT = path.resolve(import.meta.dir, '..');
const MIGRATION = path.join(ROOT, 'gstack-upgrade', 'migrations', 'v1.0.1.0.sh');
const MIGRATION = path.join(ROOT, 'gstack-upgrade', 'migrations', 'v1.1.1.0.sh');
function runMigration(tmpHome: string): { exitCode: number; stdout: string; stderr: string } {
const result = spawnSync('bash', [MIGRATION], {
@@ -28,7 +28,7 @@ function setupFakeGstackRoot(tmpHome: string): string {
return gstackDir;
}
describe('migration v1.0.1.0 — checkpoint ownership guard', () => {
describe('migration v1.1.1.0 — checkpoint ownership guard', () => {
let tmpHome: string;
beforeEach(() => {