The status guard covered 429 and 5xx, but the catch branch still replayed
every method, so a consumed registerWebhook or token rotation could run
twice after a lost connection.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
A retried POST /v1/auth/rotate loses the replacement token because the
presented token is already in grace, and a retried webhook registration
creates duplicates. Only idempotent methods now retry a 429 or 5xx. Add
previous_token_grace_until to RotateApiTokenResponse.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
The API answers GET /v1/health/deep with 503 and a full report when a
dependency is down. handleResponse treated that as an error, so
deepHealth() could never report a degraded status. The Go SDK already
accepts 503 for this endpoint.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
Drop the redundant .npmignore and publish dist only; README lists every client method and the real default key id; AGENTS.md records the shared plugin and test modules.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
test-support/harness.mjs owns process, server, JSON, fixture, and plugin-runner helpers; provider helper files keep their APIs as thin wrappers. Guard fixtures write 0600 files and the CLI security test isolates XDG_CONFIG_HOME, so the suite passes on Linux.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
Command files use shell-command and managedScriptReference; runtime checks use managed-runtime-status; jsonc-edit.ts and parseCommentedJsonObject replace copied JSONC helpers.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
Providers use plugins/common.ts, shell-command.ts, and managed-runtime-status; isNodeExecutable recognizes the running executable or a node-named binary.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
Add plugins/shell-command.ts for the shared quoting and command parsers; runtime status checks go through managed-runtime-status; Codex and Cursor write through managed-transaction.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq
Add plugins/common.ts for the helpers and size limits copied across plugin files; managed-transaction compares snapshots in one place; guard template imported directly.
Claude-Session: https://claude.ai/code/session_01Agoc9bRVE9KL7mmWtey9Vq