Skip to content

Releases: urlbox/urlbox-cli

v0.10.0

19 May 13:01

Choose a tag to compare

Changelog

v1.0.4

15 May 10:56

Choose a tag to compare

Deprecated — use v0.10.0.


Changelog

  • 61492a8: fix(config): close credential/host validation gaps across all input sources (@gdameneses)
  • 80338ef: feat(security): harden outbound HTTP + OS URL dispatch (@gdameneses)
  • 11c768b: fix(output): errors and warnings honor stream + format contract (@gdameneses)
  • 3ed62b6: feat(skill,config): safe-write helper + --force on skill install (@gdameneses)
  • 7466629: feat(render,skill): client-side auth pre-flight + sandbox docs in SKILL.md (@gdameneses)
  • 1cc10b2: docs(surface): document SURFACE.txt's exclusion rule explicitly (@gdameneses)
  • cb50674: docs(readme,changelog,npm): v1.0.4 entry + onboarding clarifications (@gdameneses)

v1.0.3

13 May 08:57

Choose a tag to compare

Deprecated — use v0.10.0.


Changelog

  • d320cd1: fix(hints): replace ghost-command references in error hints (@gdameneses)
  • 7f509dc: fix: cross-reviewer Importants from Round 1 (@gdameneses)
  • 2f70a0f: feat(security): --api-secret-stdin / --api-secret-file across commands (@gdameneses)
  • b196bca: feat(security): auth overwrite guard + masked config get (@gdameneses)
  • 18a2e5f: refactor(validation): drop package-global lastWarnings; return warnings (@gdameneses)
  • ad5a074: security(installers): verify sha256 + sigstore on install.sh and npm/install.js (@gdameneses)
  • 570539c: security(installers): close sigstore-downgrade gap; loud SKIP banner; execFileSync (@gdameneses)
  • 1ff3a63: fix(security): cap --api-secret-stdin/-file at 4KiB; friendly file errors (@gdameneses)
  • a1e8d87: fix(auth): unify overwrite-refused exit code on ErrConflict (exit 7) (@gdameneses)
  • e73de68: fix: four polish nits from Round 3 reviewers (@gdameneses)
  • 3ebbe22: fix(auth): honor --profile + URLBOX_PROFILE; reject unknown names (@gdameneses)
  • fcdd466: fix(doctor): treat non-2xx auth response as failure, not "credentials valid" (@gdameneses)
  • 7d24add: fix(render): preflight --output sandbox + writability before API call (@gdameneses)
  • 655b40e: fix: input/output validation polish (M2, M3, M4) (@gdameneses)
  • 54c1bf1: fix(render): extend large-int guard to the --json path (@gdameneses)
  • afdcdfb: fix(profile): reject unknown URLBOX_PROFILE on every command (Adv-2) (@gdameneses)
  • 0500afc: fix(config): validate profile names at creation time (Adv-4) (@gdameneses)
  • 471bf74: fix(doctor): bump per-check timeout to 10s for cold-container resilience (@gdameneses)
  • deb5677: fix(config): get/set honor default_profile when 2+ profiles exist (CI-2) (@gdameneses)
  • f790420: fix(api): route InvalidURLError to ErrValidation, not ErrUsage (First-2) (@gdameneses)
  • b7824ef: fix(link): accept positional URL; replace circular auth hint (Lows) (@gdameneses)
  • 6bef881: fix: text mode = summary-only; render quiet = single useful scalar (@gdameneses)
  • 1c12bb6: fix(render): three input-validation lows from Round 5 (@gdameneses)
  • 2d92313: fix(secret): single validated path for every secret-write (class-fix) (@gdameneses)
  • b2e3666: fix(render): JSON int-range guard walks the whole tree (class-fix) (@gdameneses)
  • 37d6dec: fix(doctor): route through config.Resolve so --profile/URLBOX_PROFILE are honored (class-fix) (@gdameneses)
  • 1f0f7bd: fix(suggester): scope candidates to active command (class-fix) (@gdameneses)
  • 7d96c5f: fix(suggester): scope unknown-command suggestions to the parent path (@gdameneses)
  • 39cb1f5: fix(config): file lock around all config writes (class-fix) (@gdameneses)
  • dcd5365: fix(auth): reject invisible Unicode in API secrets (class-fix) (@gdameneses)
  • 45e4324: fix(cli): align profile-not-found envelopes across CLI (class-fix) (@gdameneses)
  • ec553e3: fix(auth): secret validation parity + Mn marks + invalid UTF-8 (class-fix) (@gdameneses)
  • 8bf594d: fix(config): validate api_host on every write path (class-fix) (@gdameneses)
  • 0d6d93d: fix(cli): wire repo overlay loader into every Resolve call site (class-fix) (@gdameneses)
  • ba88357: fix(cli): root-level errors carry command field; add version subcommand (class-fix) (@gdameneses)
  • a0a6e9c: fix(doctor): scalar quiet mode + exit code matches failure category (class-fix) (@gdameneses)
  • 324b29a: fix(config): stale-lock self-recovery + correct exit code class (class-fix) (@gdameneses)
  • f93b2d0: fix(render): reject >2^63 ints + duplicate JSON keys (class-fix) (@gdameneses)
  • 7108c48: fix(cli): output-format consistencies bundle (class-fix) (@gdameneses)
  • 9558f11: fix(cli): reject explicit empty --profile at flag-resolution time (class-fix) (@gdameneses)
  • 4192f0b: fix(output): apply --jq to error envelopes (class-fix) (@gdameneses)
  • f97ccb3: docs(aliases): clarify shared /v1/screenshot endpoint + pdf full-page default (@gdameneses)
  • b354d79: refactor(cmd): inline validateSecretValue shim, move tests to config (@gdameneses)
  • e895e7c: chore(config): delete dead ResolveAPISecret + APISecretSource (review H1) (@gdameneses)
  • 6cabfa8: fix(config): classify read errors by category — Forbidden/Usage, not Server (review M1) (@gdameneses)
  • 053a0a2: docs(auth): clarify that the repo overlay's profile field is ignored (review M4) (@gdameneses)
  • 6c8a815: docs(changelog): add v1.0.3 entry (review M2) (@gdameneses)

v1.0.2

08 May 16:45

Choose a tag to compare

Deprecated — use v0.10.0.


Changelog

  • 72dd157: fix(v1.0.2): five UX/correctness fixes from Round 2 stress-testing (@gdameneses)

v1.0.1

08 May 13:52

Choose a tag to compare

Deprecated — use v0.10.0.


Changelog

  • 2e29fd2: fix(v1.0.1): unquote --jq scalars in quiet mode; humanize status 404 (@gdameneses)

v1.0.0

08 May 12:09

Choose a tag to compare

Deprecated — use v0.10.0.


Changelog

v0.9.0

05 May 13:24

Choose a tag to compare

Changelog

v0.8.1

01 May 16:08

Choose a tag to compare

Changelog

v0.8.0

01 May 15:51

Choose a tag to compare

Changelog

v0.7.0

01 May 11:33

Choose a tag to compare

Changelog