Releases: withoneai/cli
Releases · withoneai/cli
v1.29.0
v1.28.0
v1.27.1
v1.27.0
Flow engine quick wins — see #72.
- #59
outputSchemadeclaration + 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.keyHandlebars dispatch - #58 parallel partial-result
status/errorCode/durationMsmetadata
v1.26.0
v1.25.0
v1.24.0
- Step result metadata (#67):
$.steps.Xnow exposesstatus(success|skipped|failed|timeout),error, anderrorCode, 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 witherrorCode: "TIMEOUT"; withonError: continue|fallbackthe result lands asstatus: "timeout". Each retry attempt is independently bounded. - Flattened sub-flow output (#66):
$.steps.loadConfig.output.CHART_URLnow works directly. The legacy nested path (.output.<innerStepId>.output.CHART_URL) still resolves._stepsis an escape hatch for the full sub-flow steps map; collisions emit aflow:warning.
Docs (one guide flows, SKILL, README) updated automatically via flow-schema.ts. No breaking changes.
v1.23.0
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.sourceand.mjsmodules at flow load and as a pre-flight toflow execute - #44 — Validate
$.steps.X/$.input.Xreferences insidecode.sourceandtransform.expression, including forward references - #45 — Document the inline code sandbox (allowed/blocked
node:modules,code.moduleescape hatch) - #46 — Code-step runtime errors now report user-relative line:col with the offending source line
- #47 — Sub-flow step
.outputand.responseare now identical (no more dual-path ambiguity) - #49 —
StepResult.retriespopulated on failure paths; newstep:retry-successevent for recovered runs - #50 — Document
bash.envinjection as the safe alternative for shell interpolation
Features
- #48 — Retry
backoff: "fixed" | "exponential" | "exponential-jitter"withmaxDelayMscap - #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
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-versionmarker 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
Highlights
- Folder-layout flows — flows now live at
.one/flows/<key>/flow.jsonwith an optionallib/*.mjssubfolder 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.modulestep config — code steps can reference a standalone.mjsfile instead of inlining JS as a JSON string. Modules run as a childnodeprocess 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 --agentnow surfaceslayout,stepTypes,requiresBash,usesCodeModules, and per-inputautoResolvable— everything an executing agent needs in one call.
- Pre-flight check: flows with bash steps fail fast without
- 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:
mkdir -p .one/flows/<key>/libmv .one/flows/<key>.flow.json .one/flows/<key>/flow.json- Extract non-trivial
code.sourceblocks intolib/<step-id>.mjs, swapping the step config to{ "module": "lib/<step-id>.mjs" }. one --agent flow validate <key>
See one guide flows for the full walkthrough.
PR: #38