Skip to content

Releases: withoneai/cli

v1.29.0

09 Apr 01:42
0240dd1

Choose a tag to compare

Per-project config scope for one init. Run init inside a folder to save a scoped config to ~/.one/projects/<slug>/config.json; the CLI prefers it and falls back to global elsewhere. New one config path shows the active scope and fallback chain.

v1.28.0

09 Apr 01:06
eb1dd8f

Choose a tag to compare

Support ONE_API_BASE as env var and .onerc key to override the API base URL per-project. Precedence: env > .onerc > ~/.one/config.json.

v1.27.1

07 Apr 23:21
a966a4a

Choose a tag to compare

Fix: validator no longer captures escape pipes as part of the selector name (#73). Flows using {{$.x | shell}} etc. now validate cleanly.

v1.27.0

07 Apr 22:51
6adcb72

Choose a tag to compare

Flow engine quick wins — see #72.

  • #59 outputSchema declaration + downstream selector validation
  • #54 bash env { json: ... } / { shell: ... } structured values
  • #53 conditional retry (retryOn / failFastOn) + Handlebars escape pipes (json|shell|url|md|html)
  • #61 dynamic flow.key Handlebars dispatch
  • #58 parallel partial-result status / errorCode / durationMs metadata

v1.26.0

07 Apr 22:28
fa6f90f

Choose a tag to compare

Flow input validation, type coercion, and enums (#60, #71). Required check, narrow coercion (number/boolean/array/object), and a new enum field on input declarations — applied to top-level and sub-flow inputs alike.

v1.25.0

07 Apr 22:16
c54b9fb

Choose a tag to compare

Step input contracts via requires (#56, #70). Declare presence preconditions on flow step selectors; engine fails fast with upstream-status explanations and honors onError.

v1.24.0

07 Apr 20:08
4145947

Choose a tag to compare

Closes #67, #58, #66.

  • Step result metadata (#67): $.steps.X now exposes status (success|skipped|failed|timeout), error, and errorCode, so downstream steps can distinguish skip from failure from timeout.
  • Step-level timeoutMs (#58): bounds wall-clock execution per attempt. On expiry the step fails with errorCode: "TIMEOUT"; with onError: continue|fallback the result lands as status: "timeout". Each retry attempt is independently bounded.
  • Flattened sub-flow output (#66): $.steps.loadConfig.output.CHART_URL now works directly. The legacy nested path (.output.<innerStepId>.output.CHART_URL) still resolves. _steps is an escape hatch for the full sub-flow steps map; collisions emit a flow:warning.

Docs (one guide flows, SKILL, README) updated automatically via flow-schema.ts. No breaking changes.

v1.23.0

07 Apr 18:29
0a9a9e4

Choose a tag to compare

Flow engine batch — quality-of-life fixes across validation, code steps, retries, and bash interpolation.

Fixes

  • #41 — Warn when Handlebars {{ }} interpolation stringifies an object/array
  • #43 — Syntax-check inline code.source and .mjs modules at flow load and as a pre-flight to flow execute
  • #44 — Validate $.steps.X / $.input.X references inside code.source and transform.expression, including forward references
  • #45 — Document the inline code sandbox (allowed/blocked node: modules, code.module escape hatch)
  • #46 — Code-step runtime errors now report user-relative line:col with the offending source line
  • #47 — Sub-flow step .output and .response are now identical (no more dual-path ambiguity)
  • #49StepResult.retries populated on failure paths; new step:retry-success event for recovered runs
  • #50 — Document bash.env injection as the safe alternative for shell interpolation

Features

  • #48 — Retry backoff: "fixed" | "exponential" | "exponential-jitter" with maxDelayMs cap
  • #50{{q $.x}} POSIX-shell-quote helper for safe bash interpolation

Verified-as-already-working

  • #42 — Optional chaining (?.) already works in inline code steps; closed with a verified repro

v1.22.0

07 Apr 04:32
84c799e

Choose a tag to compare

Highlights

  • Skill files now auto-sync to the running CLI version. When the CLI self-updates via its existing auto-update mechanism, the skill files copied into ~/.agents/skills/one/ would previously stay frozen at whatever version was installed — user agents kept reading stale docs. Now every CLI command checks a .one-cli-version marker in the canonical skill dir and silently refreshes the files if the running CLI version has moved on. Symlinks at ~/.claude/skills/one, ~/.codex/skills/one, etc. point at the canonical dir and inherit the refresh for free. No user action required.
  • New commands under one config skills:
    • one config skills status — show installed skill version, current CLI version, and canonical path.
    • one config skills sync — force a resync (troubleshooting escape hatch).
  • Safe by default: auto-sync refuses to resurrect skills if you opted out of skill installation during one init. Errors in the sync path never block your command.

Upgrading

Nothing to do. The first command you run on v1.22.0 will write the version marker and (if needed) refresh skill files. From that point on, every CLI upgrade brings the skills along automatically.

PR: #39

v1.21.0 — Folder-layout flows + code modules

07 Apr 04:09
a5f197e

Choose a tag to compare

Highlights

  • Folder-layout flows — flows now live at .one/flows/<key>/flow.json with an optional lib/*.mjs subfolder for code modules, making them composable and shareable like skills. The legacy single-file layout (.one/flows/<key>.flow.json) still loads but is deprecated and emits a warning.
  • code.module step config — code steps can reference a standalone .mjs file instead of inlining JS as a JSON string. Modules run as a child node process with the full Node API: $ is piped in via stdin as JSON, the result is written to stdout as JSON.
  • Executor safety rails so agents can run flows blind:
    • Pre-flight check: flows with bash steps fail fast without --allow-bash, with a structured error naming the fix.
    • flow list --agent now surfaces layout, stepTypes, requiresBash, usesCodeModules, and per-input autoResolvable — everything an executing agent needs in one call.
  • Docs — "Before you execute a flow" checklist, author conventions for descriptions, folder-layout migration walkthrough with before/after source→module translation.

Upgrading

Existing single-file flows continue to work unchanged. To migrate:

  1. mkdir -p .one/flows/<key>/lib
  2. mv .one/flows/<key>.flow.json .one/flows/<key>/flow.json
  3. Extract non-trivial code.source blocks into lib/<step-id>.mjs, swapping the step config to { "module": "lib/<step-id>.mjs" }.
  4. one --agent flow validate <key>

See one guide flows for the full walkthrough.

PR: #38