更新日誌

owlp CLI 每個版本的更新內容

v0.9.1

`owlp chains` now lists only the networks you can actually use

  • 問題修正

    owlp chains used to include a few networks — Bitcoin, Base, and Sui — that the CLI can't yet send from or check balances on. It now lists only the seven networks that work everywhere else in owlp, so what you see matches what owlp send, owlp balance, and owlp tokens accept.

完整技術更新紀錄
Changed
  • **owlp chains now lists only chains the CLI can operate on** — the output is the intersection of the backend chain-list and the local web3 registry (WEB3_CHAINS). Display-only chains the backend advertises but the CLI cannot transact on (currently bitcoin, base, sui) are dropped, so every listed slug is one owlp send / owlp balance / owlp tokens --chain actually accepts. Agents that enumerated chains and then hit UNSUPPORTED_CHAIN on those slugs are unaffected going forward. JSON envelope and per-row fields are unchanged.

v0.9.0

Seven blockchains for send and balance, plus a KYC link cleanup

  • 升級注意

    If anyone still completes identity verification through a link generated by an owlp version older than 0.8.0, that link has stopped working — the old-style verification URL no longer resolves.

    你需要做的: Make sure everyone doing browser-based identity verification is on owlp 0.8.0 or later before generating a new link. Already on 0.8.0 or newer? Nothing changes for you.

  • 新功能

    owlp send and owlp balance now support four more networks — Avalanche, Polygon, Optimism, and Arbitrum — alongside Ethereum, Stellar, and Solana. The new networks share your existing wallet address, so there's nothing to set up.

  • 體驗改進

    Checking balances across chains no longer fails outright if one network has trouble — you still get results for the chains that responded, plus a clear note about which one didn't.

  • 體驗改進

    Creating or importing a wallet is faster now that setup for all your chains happens at once instead of one after another.

  • 問題修正

    Plus smaller fixes: gas fee estimates now show the right currency for each network, and owlp balance --address requires --chain so you can't accidentally check the wrong wallet.

完整技術更新紀錄
BREAKING
  • **cli-service: legacy KYC handoff paths removed.** The pre-0.8.0 GET /kyc?access_token=… redirect now returns 404, and the KYC page no longer accepts access_token, callback, state, or sumsub_check_closure_delay_seconds query parameters — /app/kyc?session= is the only entry point. Browser-based KYC requires owlp ≥0.8.0 (current CLIs are unaffected; they already use session handoff + status polling). The dead notifyCliCallback browser→CLI POST (unused since the localhost callback server was removed in 0.5.13) is gone as well.
Added
  • **Four new EVM chains: avalanche, polygon, optimism, arbitrum** — owlp send, owlp balance, and the owlp tokens --chain filter now accept every EVM chain the backend supports (--chain help text lists all seven slugs). All EVM chains share the wallet's single derived EVM address; no re-import needed. Native-symbol aliases are per chain (POL on polygon, AVAX on avalanche, ETH on ethereum/arbitrum/optimism), the interactive send wizard lists all seven networks, and wallet create/import now registers the EVM address on all five EVM chains (best-effort, as before). Additive: existing ethereum/stellar/solana behavior, event shapes, and JSON contracts are unchanged.
Changed
  • **owlp balance degrades gracefully on partial failures** — a failed get-balance query for one chain/token no longer fails the whole command: successful rows still print (JSON data remains a flat array), each failure is reported as a warning line on stderr, and in --json mode the envelope additionally carries an additive top-level failures: [{chain, token, message}] field (absent when nothing failed) so agents can detect a partial report from stdout alone. Exit stays 0. Previously any single query failure aborted the entire report. Human mode also explains empty output instead of printing nothing (no tokens configured / all queries failed).
  • Wallet create/import runs all server setup concurrently — per-chain registrations and the Stellar trustline (previously sequential; failure semantics unchanged).
Fixed
  • EVM fee estimates now display the chain's native symbol instead of a hardcoded ETH unit (mattered only for the new non-ethereum EVM chains), and the gas×price product is computed as BigInt (values routinely exceed 2^53); malformed fee responses still degrade to ? instead of aborting the send.
  • owlp balance --address without --chain now exits 3 with INPUT_REQUIRED instead of silently ignoring the flag and reporting the wallet's own balances.

v0.8.0

Safer automation, clearer errors, and no more endless identity-check waits

  • 升級注意

    If you pipe owlp's output into scripts or CI, output in automated environments is now always machine-readable JSON lines — the same format --json produces. Using the CLI by hand in a terminal is unchanged.

    你需要做的: Update scripts that matched human-formatted text to parse JSON instead (e.g. with jq), and update any filter using the old kyc_… event names to the new kyc.… ones.

  • 新功能

    Transfers and payments can now be made retry-safe: pass --idempotency-key to send and pay, and an accidental re-run returns the original result instead of moving funds twice.

  • 新功能

    AI agents get machine-readable guidance everywhere: every flow that pauses for a browser step now says exactly which command resumes it, and validation errors list every missing flag at once.

  • 體驗改進

    Identity verification no longer waits forever — after 30 minutes the CLI hands back control and tells you how to check later. The verification link also stopped carrying your access token; it now uses a single-use, 10-minute session.

  • 體驗改進

    Errors point at the fix: most failures now include the exact next command to run, and a stopped companion service is reported by name instead of a cryptic connection error.

  • 問題修正

    Plus smaller fixes across deposits, wallet lookup by address, and page-size options — see the technical changelog below.

完整技術更新紀錄
BREAKING
  • **KYC NDJSON event types renamed** to follow the domain.stage[.detail] convention. Update any script that filters on these type strings (old names are not dual-emitted):
  • **Event-stream commands emit NDJSON whenever agent mode is detected** — via --json, --json-pretty, agent env vars (CLAUDECODE, CI, CURSOR_AGENT), or non-TTY stdio — not only when --json is passed. This corrects the documented contract; scripts that relied on human-formatted event lines under CI=1 or piped stdout must parse jq-compatible NDJSON now.
Added
  • **Unified resume guidance for browser-pausing flows** — auth.code_required, kyc.browser_required, and card.browser_required events (and their exit-3 error events) now carry next_action: "complete_in_browser_then_resume" and a ready-to-run resume_command string, so agents can handle all three flows with one generic handler. Additive; existing fields unchanged.
  • **Structured missing field on flag validation** — agent-mode required-flag checks now collect every missing flag into a single INPUT_REQUIRED error (Missing required flags: --a, --b) with a machine-readable missing: ["--a", "--b"] array on the JSON error envelope (and on NDJSON error events, should such an error ever be raised mid-stream). Previously flags were reported one per retry.
  • **--idempotency-key on send and pay** — opt-in replay protection using the same client-side store as deposit: re-running with the same key + args returns the cached result flagged idempotentReplay: true without signing or broadcasting again; same key + different args exits 3 with IDEMPOTENCY_KEY_REUSED. Only received successes are recorded (an on-ledger Stellar failure is never cached, so retrying it re-sends), and send forwards the key as the server Idempotency-Key header. Unlike deposit submit, no key is generated implicitly — without the flag, behavior is unchanged. Note the client-side store cannot cover a dispatched-but-response-lost submit; verify state before retrying an unknown outcome (see skills docs).
  • **owlp kyc wait --timeout **, **owlp tx list --per-page ** (honored in both agent and interactive mode, validated as a positive integer), and duration-string support (45m, 90s, or plain ms) on the deposit --timeout flags.
  • **Actionable hints on errors** — most business errors now carry a hintAction (JSON field / line on stderr) naming the next command to run.
Changed
  • **KYC waiting has a timeout** — owlp kyc submit / owlp kyc wait give up after 30 minutes without a terminal status, emitting a kyc.poll.timeout event and exiting 3 with KYC_WAIT_TIMEOUT (previously they polled forever). Check later with owlp kyc status. During owlp onboard, the timeout no longer fails the whole command — setup finishes with a warning.
  • **KYC browser URL no longer carries the Sumsub access token.** The CLI now binds the token to a single-use, 10-minute session on the CLI service (POST /api/kyc/sessions) and opens …/app/kyc?session= instead of …?access_token=. Requires owlp-cli-service 0.8.0+; session creation failure exits 3 with KYC_SESSION_CREATE_FAILED.
  • The global --wallet flag resolves identically on every command (exact name → case-insensitive name → address prefix, with an ambiguity error) — deposit previously matched by name only.
Fixed
  • Auth session/claim failures with 4xx statuses exit 3 (non-retryable) instead of 4 — agents no longer retry-loop on permanently dead codes; an unreachable CLI service reports CLI_SERVICE_UNREACHABLE with the origin and a start-the-service hint instead of a bare fetch failed.
  • A failed idempotency-cache write after a committed deposit/card/send/pay no longer masks the successful operation — it degrades to a warning event stating the operation DID go through.

v0.7.0

Pay the web with one command

  • 新功能

    New owlp pay <url> — pay x402-protected resources and OwlPay checkout links straight from the terminal. Your USDC covers the payment; the network fee is paid for you.

  • 新功能

    Preview before you spend: run without --confirm to see the amount and recipient first, set --max-amount as a spending guardrail, or use --inspect for a read-only look.

  • 體驗改進

    wallet export-key now uses --confirm, matching send and pay. The old --yes keeps working.

完整技術更新紀錄
Added
  • owlp pay — pay an x402-protected resource or OwlPay checkout link by signing an EIP-3009 TransferWithAuthorization locally; a facilitator broadcasts the transfer and pays gas. Auto-detects OwlPay Harbor vs standard x402. Flags: --chain, --provider, --kyc/--kyc-file (+ --save-kyc), --max-amount guardrail, --inspect (read-only), --confirm. Emits an NDJSON pay.* event stream. USDC on EVM (exact scheme) for this release.
Changed
  • wallet export-key: --yes renamed to --confirm for consistency with send and pay. --yes is retained as a deprecated, hidden alias, so existing scripts keep working.

v0.6.1

Clearer next step after card deposits

  • 體驗改進

    After submitting a debit-card deposit, the CLI now reminds you (and your AI agent) to confirm the deposit via the email link before it can progress.

完整技術更新紀錄
Added
  • owlp deposit submit --confirm (debit-card) success output now carries next_action: "confirm_via_email" and a relayable next_action_message on the submit.done event (nextAction / nextActionMessage on the final result), so agents know to remind the user to confirm the deposit via the email link before it progresses. Human mode prints the same hint line. Idempotent replays carry the fields; dry-run previews do not.

v0.6.0

Top up with your debit card

  • 新功能

    New deposit flow: add a debit card, get a quote, and convert USD to USDC on-chain — owlp deposit card add, deposit quote, deposit submit, deposit watch.

  • 問題修正

    Native token names like ETH, SOL and XLM now resolve correctly when sending.

  • 問題修正

    Better input checks and error messages across the card deposit flow.

完整技術更新紀錄
Added
  • owlp deposit card add | card list | quote | submit | watch — VDC debit-card on-ramp (USD → USDC). Provider-shaped command tree; debit-card is the first registered method. NDJSON event stream + 14 RFC 2119 requirements covered by 660+ tests. See skills/commands/deposit.md.
Fixed
  • Native token send aliases (e.g. ETH, SOL, XLM resolve correctly)
  • Debit-card deposit CLI flow hardening (validation, error handling)

v0.5.16

The CLI keeps itself fresh

  • 新功能

    New owlp update command, plus an automatic notice whenever a newer version is available.

完整技術更新紀錄
Added
  • owlp update command and automatic update notifications

v0.5.15

A cleaner, easier-to-read terminal

  • 體驗改進

    Setup summaries, transfer previews and wallet addresses now appear in clear boxed layouts with status colors.

  • 體驗改進

    Sensitive reveals (mnemonic, private key) keep their formatting on the secure alternate screen — nothing lands in your scrollback.

完整技術更新紀錄
Changed
  • Onboard summary now shows owlp status output with colored status icons instead of dim gray box
  • Transfer preview and submitted result use box component for readable amounts and tx hashes
  • Wallet addresses (create, import, existing) displayed in box for easy verification
  • Security warning for private key export uses yellow warning icon
  • Mnemonic reveal uses box component preserving color on alternate screen

v0.5.14

Smoother identity checks during onboarding

  • 體驗改進

    Onboarding now checks your verification status first, so you are only asked to verify when it is actually needed.

  • 問題修正

    If a verification attempt is rejected, the CLI keeps waiting so you can resubmit right away.

完整技術更新紀錄
Added
  • KYC status pre-check before Step 3 prompt in onboard flow
Fixed
  • KYC polling continues on rejected status so user can resubmit

v0.5.13

Simpler, safer sign-in

  • 體驗改進

    Signing in no longer needs a local callback server — the CLI waits for your browser sign-in, or accepts a one-time passcode.

  • 新功能

    Identity verification is now optional during onboarding — skip it with --skip-kyc and come back later.

  • 新功能

    AI agents get complete guides for the onboarding and verification workflows.

完整技術更新紀錄
Added
  • Complete agent skills documentation for onboard and KYC workflows
  • Polling and passcode authentication model replacing callback server
  • Optional KYC step with --skip-kyc flag and interactive confirm prompt
  • Skill install hint in branded --help and --json output
Changed
  • Auth flow redesigned from localhost callback to polling with passcode claim

vPre-release

完整技術更新紀錄
Added
  • Core CLI framework with SSO authentication, wallet management, and multi-chain support (EVM, Stellar, Solana)
  • Interactive send wizard with event-driven check/sign/submit pipeline
  • Interactive transaction browser with type filtering and detail dispatch
  • Browser-based onboard flow for account setup and KYC verification
  • Unified status dashboard showing account, KYC, and wallet readiness
  • Two-tier mode classification: agent vs human with unified prompt primitives
  • Mnemonic and private key shown on terminal alternate screen for security
  • Balance queries across all tokens, gas fee estimation, address verification
  • Countries list, wallet export-key, wallet naming and switching
  • Compact JSON envelope with --json-pretty escape hatch
  • esbuild bundling with javascript-obfuscator for distribution
  • Style system with semantic color helpers
  • JSON and human-readable output modes, stage/prod environment switching, debug logging