mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-27 22:15:33 +00:00
Closes the v0.11.0 mega-bug: migration skills never fired on upgrade.
`runPostUpgrade` now does two things:
1. Cosmetic: prints feature_pitch headlines for migrations newer than
the prior binary. Uses the TS registry (Codex K) instead of walking
skills/migrations/*.md on disk — compiled binaries see the same list
source installs do.
2. Mechanical: invokes apply-migrations --yes --non-interactive in the
same process so Phase F (autopilot install) doesn't hit a subprocess
timeout wall. Catches + surfaces errors without failing the upgrade.
Also:
- Drops the early-return on missing upgrade-state.json (Codex H8).
runPostUpgrade now runs apply-migrations unconditionally; it's cheap
when nothing is pending. This repairs every broken-v0.11.0 install on
their next upgrade attempt.
- Bumps the `gbrain post-upgrade` subprocess timeout in runUpgrade from
30s → 300s (Codex H7). A v0.11.0→v0.11.1 migration that has to
schema-init + smoke + prefs + host-rewrite + launchd-install exceeds
30s trivially.
- Removes now-dead findMigrationsDir + extractFeaturePitch helpers and
their filesystem-reading imports (readdirSync, resolve).
- src/cli.ts post-upgrade dispatch now awaits the async runPostUpgrade.
apply-migrations (Lane A-4):
- First-install guard: loadConfig() check at the top. No brain
configured = exit silently for --yes / --non-interactive (postinstall
stays quiet on fresh `bun add gbrain`); explicit message on --list /
--dry-run.
package.json:
- New `postinstall` script: gbrain --version >/dev/null 2>&1 && gbrain
apply-migrations --yes --non-interactive 2>/dev/null || true. The
--version sanity check guards against a half-written binary (Codex
review criticism). || true prevents `bun update gbrain` failure
mid-upgrade.
Manual smoke verified: fresh $HOME with no config → apply-migrations
--yes silently exits 0; --dry-run prints the one-liner "No brain
configured... Nothing to migrate."
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
50 lines
1.6 KiB
JSON
50 lines
1.6 KiB
JSON
{
|
|
"name": "gbrain",
|
|
"version": "0.11.0",
|
|
"description": "Postgres-native personal knowledge brain with hybrid RAG search",
|
|
"type": "module",
|
|
"main": "src/core/index.ts",
|
|
"bin": {
|
|
"gbrain": "src/cli.ts"
|
|
},
|
|
"exports": {
|
|
".": "./src/core/index.ts",
|
|
"./engine": "./src/core/engine.ts",
|
|
"./types": "./src/core/types.ts",
|
|
"./operations": "./src/core/operations.ts",
|
|
"./minions": "./src/core/minions/index.ts",
|
|
"./engine-factory": "./src/core/engine-factory.ts"
|
|
},
|
|
"scripts": {
|
|
"dev": "bun run src/cli.ts",
|
|
"build": "bun build --compile --outfile bin/gbrain src/cli.ts",
|
|
"build:all": "bun build --compile --target=bun-darwin-arm64 --outfile bin/gbrain-darwin-arm64 src/cli.ts && bun build --compile --target=bun-linux-x64 --outfile bin/gbrain-linux-x64 src/cli.ts",
|
|
"build:schema": "bash scripts/build-schema.sh",
|
|
"test": "bun test",
|
|
"test:e2e": "bun test test/e2e/",
|
|
"postinstall": "gbrain --version >/dev/null 2>&1 && gbrain apply-migrations --yes --non-interactive 2>/dev/null || true",
|
|
"prepublish:clawhub": "bun run build:all",
|
|
"publish:clawhub": "clawhub package publish . --family bundle-plugin"
|
|
},
|
|
"openclaw": {
|
|
"compat": {
|
|
"pluginApi": ">=2026.4.0"
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.30.0",
|
|
"@aws-sdk/client-s3": "^3.1028.0",
|
|
"@electric-sql/pglite": "^0.4.4",
|
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
"gray-matter": "^4.0.3",
|
|
"marked": "^18.0.0",
|
|
"openai": "^4.0.0",
|
|
"pgvector": "^0.2.0",
|
|
"postgres": "^3.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bun": "latest"
|
|
},
|
|
"license": "MIT"
|
|
}
|