chore(changesets): simplify entries to one sentence each

Per junliang review on PR #590: shorten each changeset to a single
sentence and drop multi-paragraph explanations. Descriptive detail
belongs in the linked PRs and docs, not the release notes.

Pre-existing cli-hyperbrowser-proxy-country.md and .changeset/config.json
left untouched — the "Thanks @author!" prefix comes from the
@changesets/changelog-github generator and is controllable only via
config, flagged for junliang's call.
This commit is contained in:
mcfn
2026-04-22 15:39:08 +08:00
parent 8b04ed45f5
commit 72267e27f1
8 changed files with 8 additions and 12 deletions
+1 -1
View File
@@ -2,4 +2,4 @@
"@actionbookdev/cli": patch
---
`browser close` is now idempotent. When the target session is already gone (never started, or closed by another caller), the command returns success with `meta.warnings: ["SESSION_ALREADY_GONE: ..."]` instead of a fatal error. Cleanup scripts can call `browser close` unconditionally without having to first check session existence. A concurrent close for the same session still returns the fatal `SESSION_CLOSING` code (unchanged).
`browser close` is idempotent — when the session is already gone it returns ok with `meta.warnings: ["SESSION_ALREADY_GONE: ..."]` instead of a fatal error.
+1 -3
View File
@@ -2,6 +2,4 @@
"@actionbookdev/cli": minor
---
Structured CDP error taxonomy. CDP failures now surface through a fixed set of codes in `error.code``CDP_NAV_TIMEOUT`, `CDP_NOT_INTERACTABLE`, `CDP_NODE_NOT_FOUND`, `CDP_TARGET_CLOSED`, `CDP_PROTOCOL_ERROR`, `CDP_GENERIC` — each with a stable `retryable` flag and `error.details` containing `cdp_code` (upstream numeric code) and `reason` (raw message). Replaces the previous single `CDP_ERROR` literal for classified cases.
Behavior change: `CDP_NAV_TIMEOUT` and `CDP_TARGET_CLOSED` now report `retryable: true` (previously all CDP errors were `retryable: false`). Callers that key retry decisions off the envelope's `retryable` flag should verify the new behavior matches their expectations. Fifteen-plus hand-crafted `CDP_ERROR` literals remain as a legacy fallback and will migrate in a follow-up.
CDP errors surface as six classified codes (`CDP_NAV_TIMEOUT`, `CDP_NOT_INTERACTABLE`, `CDP_NODE_NOT_FOUND`, `CDP_TARGET_CLOSED`, `CDP_PROTOCOL_ERROR`, `CDP_GENERIC`), with `CDP_NAV_TIMEOUT` and `CDP_TARGET_CLOSED` now `retryable: true`.
@@ -2,4 +2,4 @@
"@actionbookdev/cli": patch
---
Daemon now sweeps empty session directories and stale `__fetch_*.json` files at start and stop. Prevents `~/.actionbook/sessions/` from accumulating orphan directories when sessions exit abnormally.
Daemon sweeps empty session directories and stale `__fetch_*.json` files at start and stop.
+1 -1
View File
@@ -2,4 +2,4 @@
"@actionbookdev/cli": minor
---
`browser eval` now accepts expression input from a file via `--file <path>` or from stdin when the positional expression is omitted. Existing positional-arg usage is unchanged. Useful for evaluating multi-line scripts without escaping them on the shell.
`browser eval` accepts expressions from `--file <path>` or stdin when no positional expression is given.
@@ -2,4 +2,4 @@
"@actionbookdev/cli": minor
---
`browser eval` now returns a structured error envelope with an `EvalErrorCode` taxonomy in `error.code`: `EVAL_COMPILE_ERROR`, `EVAL_RUNTIME_ERROR`, `EVAL_TIMEOUT`, `EVAL_SERIALIZATION_ERROR`, `EVAL_INVALID_INPUT`. The raw V8 reason and line/column offsets are preserved under `error.details`. Replaces the previous free-form error message so callers can branch on the code instead of string-matching.
`browser eval` returns structured error codes (`EVAL_COMPILE_ERROR`, `EVAL_RUNTIME_ERROR`, `EVAL_TIMEOUT`, `EVAL_SERIALIZATION_ERROR`, `EVAL_INVALID_INPUT`) with the raw V8 reason preserved in `error.details`.
+1 -1
View File
@@ -2,4 +2,4 @@
"@actionbookdev/cli": minor
---
HAR truncation now surfaces explicitly in the `browser network har stop` envelope. When the FIFO ring buffer dropped older entries, the response adds `meta.truncated: true`, `meta.warnings: ["HAR_TRUNCATED: N earlier entries dropped (max_entries=M); raise --max-entries or stop recording sooner to keep the full trace"]`, and `data.max_entries` (the configured cap). Clean stops emit no truncation marker. `DEFAULT_MAX_ENTRIES` is bumped from 2000 to 10000 so longer interactive sessions fit without truncation.
`browser network har stop` surfaces truncation via `meta.truncated` / `meta.warnings` / `data.max_entries`, and `DEFAULT_MAX_ENTRIES` is raised from 2000 to 10000.
+1 -3
View File
@@ -2,6 +2,4 @@
"@actionbookdev/cli": minor
---
`browser start --set-session-id <id>` is now get-or-create (functional alias for `--session <id>`). Previously it always created a new session and failed with `SESSION_ALREADY_EXISTS` when the ID was already running; scripts calling it twice for idempotent attach had to handle that error. Both flags now reuse a Running session with the given ID or create one if not found.
When reusing, passing `--profile <name>` that does not match the session's bound profile fails with the new `SESSION_PROFILE_MISMATCH` error code (retryable: false). `error.hint` explains the required profile; `error.details` includes `session_id`, `bound_profile`, and `requested_profile`. Omit `--profile` or pass the matching value to reuse successfully.
`browser start --set-session-id` is get-or-create (alias for `--session`); reusing with a conflicting `--profile` returns the new `SESSION_PROFILE_MISMATCH` error code.
@@ -2,4 +2,4 @@
"@actionbookdev/cli": patch
---
`wait network-idle` is now edge-triggered: pre-existing long-lived connections at the start of the wait (websockets, long-poll requests that opened before the command ran) are ignored. Previously these could keep the wait from ever resolving on pages with persistent background traffic.
`wait network-idle` is edge-triggered: long-lived connections opened before the wait started are ignored.