mirror of
https://github.com/garrytan/gstack.git
synced 2026-08-08 23:36:06 +02:00
fix: review pass — package.json version, import dedup, error context, stale help
Findings from /review on the wave PR: - [P1] package.json version was 0.18.0.1 but VERSION is 0.18.1.0, failing test/gen-skill-docs.test.ts:177 "package.json version matches VERSION file". Bumped package.json to 0.18.1.0. - [P2] Duplicate import of cookie-picker-routes in browse/src/server.ts (handleCookiePickerRoute at line 20 + hasActivePicker at line 792). Merged into single import at top. - [P2] cookie-import-browser.ts:494 generic rethrow loses underlying error. Now preserves the message so "ENOENT" vs "JSON parse error" vs "permission denied" are distinguishable in user output. - [P3] setup:46 "Missing value for --host" error message listed an incomplete set of hosts (missing factory, openclaw, hermes, gbrain). Aligned with the "Unknown value" error on line 94. Kept as-is (not real issues): - cookie-import-browser.ts:869 empty catch on Chrome version fetch is the correct pattern for best-effort diagnostics (per slop-scan philosophy in CLAUDE.md — fire-and-forget failures shouldn't throw). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
274c104571
commit
c7444a9916
@@ -493,9 +493,10 @@ async function getWindowsAesKey(browser: BrowserInfo): Promise<Buffer> {
|
|||||||
let localState: any;
|
let localState: any;
|
||||||
try {
|
try {
|
||||||
localState = JSON.parse(fs.readFileSync(localStatePath, 'utf-8'));
|
localState = JSON.parse(fs.readFileSync(localStatePath, 'utf-8'));
|
||||||
} catch {
|
} catch (err) {
|
||||||
|
const reason = err instanceof Error ? `: ${err.message}` : '';
|
||||||
throw new CookieImportError(
|
throw new CookieImportError(
|
||||||
`Cannot read Local State for ${browser.name} at ${localStatePath}`,
|
`Cannot read Local State for ${browser.name} at ${localStatePath}${reason}`,
|
||||||
'keychain_error',
|
'keychain_error',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import { BrowserManager } from './browser-manager';
|
|||||||
import { handleReadCommand } from './read-commands';
|
import { handleReadCommand } from './read-commands';
|
||||||
import { handleWriteCommand } from './write-commands';
|
import { handleWriteCommand } from './write-commands';
|
||||||
import { handleMetaCommand } from './meta-commands';
|
import { handleMetaCommand } from './meta-commands';
|
||||||
import { handleCookiePickerRoute } from './cookie-picker-routes';
|
import { handleCookiePickerRoute, hasActivePicker } from './cookie-picker-routes';
|
||||||
import { sanitizeExtensionUrl } from './sidebar-utils';
|
import { sanitizeExtensionUrl } from './sidebar-utils';
|
||||||
import { COMMAND_DESCRIPTIONS, PAGE_CONTENT_COMMANDS, wrapUntrustedContent } from './commands';
|
import { COMMAND_DESCRIPTIONS, PAGE_CONTENT_COMMANDS, wrapUntrustedContent } from './commands';
|
||||||
import {
|
import {
|
||||||
@@ -789,7 +789,6 @@ if (BROWSE_PARENT_PID > 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ─── Command Sets (from commands.ts — single source of truth) ───
|
// ─── Command Sets (from commands.ts — single source of truth) ───
|
||||||
import { hasActivePicker } from './cookie-picker-routes';
|
|
||||||
import { READ_COMMANDS, WRITE_COMMANDS, META_COMMANDS } from './commands';
|
import { READ_COMMANDS, WRITE_COMMANDS, META_COMMANDS } from './commands';
|
||||||
export { READ_COMMANDS, WRITE_COMMANDS, META_COMMANDS };
|
export { READ_COMMANDS, WRITE_COMMANDS, META_COMMANDS };
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gstack",
|
"name": "gstack",
|
||||||
"version": "0.18.0.1",
|
"version": "0.18.1.0",
|
||||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ TEAM_MODE=0
|
|||||||
NO_TEAM_MODE=0
|
NO_TEAM_MODE=0
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--host) [ -z "$2" ] && echo "Missing value for --host (expected claude, codex, kiro, opencode, or auto)" >&2 && exit 1; HOST="$2"; shift 2 ;;
|
--host) [ -z "$2" ] && echo "Missing value for --host (expected claude, codex, kiro, factory, opencode, openclaw, hermes, gbrain, or auto)" >&2 && exit 1; HOST="$2"; shift 2 ;;
|
||||||
--host=*) HOST="${1#--host=}"; shift ;;
|
--host=*) HOST="${1#--host=}"; shift ;;
|
||||||
--local) LOCAL_INSTALL=1; shift ;;
|
--local) LOCAL_INSTALL=1; shift ;;
|
||||||
--prefix) SKILL_PREFIX=1; SKILL_PREFIX_FLAG=1; shift ;;
|
--prefix) SKILL_PREFIX=1; SKILL_PREFIX_FLAG=1; shift ;;
|
||||||
|
|||||||
Reference in New Issue
Block a user