diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 9071dff..a50ee6c 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -7,14 +7,14 @@ }, "metadata": { "description": "Deep video and image work for coding agents: analyze, describe, search, caption, clip, detect faces, and publish via the tinycloud CLI.", - "version": "0.3.18" + "version": "0.3.19" }, "plugins": [ { "name": "tinycloud", "source": "./", "description": "Video and image understanding and editing via the tinycloud CLI (Cloudglue): watch/see/extract/search/ask/face over videos and images, captions, clips, collections, plus one-command workflows for sales coaching, blog posts, ad analysis, meeting breakdowns, and YouTube publishing.", - "version": "0.3.18", + "version": "0.3.19", "author": { "name": "Cloudglue" }, "homepage": "https://tinycloud.sh", "repository": "https://github.com/cloudglue/tinycloud", diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 06b0fa6..e692a47 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "tinycloud", "displayName": "Tinycloud Video", "description": "Video and image understanding and editing via the tinycloud CLI (Cloudglue): watch/see/extract/search/ask/face over videos and images, captions, clips, collections, and one-command video workflows.", - "version": "0.3.18", + "version": "0.3.19", "author": { "name": "Cloudglue", "url": "https://cloudglue.dev" }, "homepage": "https://tinycloud.sh", "repository": "https://github.com/cloudglue/tinycloud", diff --git a/CLAUDE.md b/CLAUDE.md index 73c55c7..a06bc3a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -261,7 +261,33 @@ also rejects ``, ``, and `` (the private-only; explicit-children `` stays public-safe). Because the skill teaches the new elements and relies on that extended guard, the floor was raised to 0.3.18 (same merge-after-CDN gate — the dist PR merges -only after CDN `channels.stable` = 0.3.18). The host-level `profile` verb and the leading global flags `--home`/`--profile` +only after CDN `channels.stable` = 0.3.18). 0.3.19 is a **host-agent +reliability release — the silent-stop fix** (no new verbs, flags, or feature +ids — verbs stay 17, features stay 42; the changes live in the interactive +agent and headless `-p`, not the video-verb surface the skill drives, so the +skill floor stays 0.3.18 — the 0.3.13 no-raise pattern): adaptive-thinking +chat models stream a thinking block that spends from the same per-response +`max_tokens` budget as text and tool calls, so a long think could exhaust the +old 8192-token cap, return `stop_reason: max_tokens` with no error, and the +agent silently yielded mid-task with only a duration line (typing `continue` +resumed it). Now a `length`-stopped turn — and an empty `stop`-ended one, +e.g. a dropped stream read as a clean end — surfaces a status line instead of +a quiet handoff; the cap rises to 32000, tunable via +`TINYCLOUD_MODEL_MAX_TOKENS`; a guard blocks the final tool call of a +`length`-stopped message with an error result (truncated tool-call JSON gets +repaired into valid-but-incomplete args, e.g. a write with half a file) so +the model re-issues it in smaller pieces, wired in both the interactive +agent and headless `-p`; a truncated turn auto-continues via a hidden +prompt, bounded to 2 consecutive per user turn, disabled with +`TINYCLOUD_AUTO_CONTINUE=0` or `preferences.autoContinue: false`; streamed +thinking shows a "Reasoning" loader label; and headless `-p --json` traces +gain an additive `stop_reason` field plus a stderr warning on truncation. +Headless `-p` also reaches parity with the interactive agent on model +failures: it gains the 0.3.7 chat-retry layer (`TINYCLOUD_MODEL_RETRIES` now +covers both agents), and an errored turn is truthful — `✖ turn failed` on +stderr, an `error` field in the `--json` trace, exit 1 (previously a +backend blip could exit 0 with an empty, zero-usage trace). +The host-level `profile` verb and the leading global flags `--home`/`--profile` (also `$TINYCLOUD_HOME`; 0.3.3+) relocate state and are intentionally absent from `commands --json` — like the launcher's install/update, they're CLI/host concerns, not video operations. @@ -313,9 +339,9 @@ of printing JSON. Any script invoking the binary must redirect `/`), verifies its checksum, and execs the real binary. The package version pins the binary version, so -`npx @cloudglue/tinycloud@0.3.18` always runs tinycloud 0.3.18. It also adds two +`npx @cloudglue/tinycloud@0.3.19` always runs tinycloud 0.3.19. It also adds two wrapper commands: ```bash -tinycloud install --version 0.3.18 # pre-download a version +tinycloud install --version 0.3.19 # pre-download a version tinycloud install --latest # install latest stable and pin to it tinycloud update # move to latest stable, prune old versions ``` diff --git a/package.json b/package.json index a13fb62..90dea21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cloudglue/tinycloud", - "version": "0.3.18", + "version": "0.3.19", "description": "Agent CLI for deep video and image work, by Cloudglue. Downloads the tinycloud binary on first run.", "bin": { "tinycloud": "bin/tinycloud.js" diff --git a/skills/tinycloud/reference/setup.md b/skills/tinycloud/reference/setup.md index fe2cbf6..52ddbeb 100644 --- a/skills/tinycloud/reference/setup.md +++ b/skills/tinycloud/reference/setup.md @@ -114,7 +114,9 @@ binary reports in `--version --json`. | `TINYCLOUD_UPLOAD_IDLE_TIMEOUT_MS` | Idle (no-progress) deadline for an upload — aborts a wedged transfer in ~1min instead of waiting out the total upload deadline (default 60s; `0` disables) | | `TINYCLOUD_HTTP_RETRIES` | Bounded auto-retries for idempotent (GET/HEAD) Cloudglue calls on transient errors — 408/429/5xx, network blips (default 5; `0` disables) | | `TINYCLOUD_JOB_WAIT_TIMEOUT_MS` | Wall-clock budget for async job waits (the `waitForReady` poll behind `watch`/`extract`/`face`) (default 10min; `0` disables) | -| `TINYCLOUD_MODEL_RETRIES` | Client-side retries for the interactive agent's chat-model turns on transient connection errors (default 5; `0` disables). 0.3.7+ | +| `TINYCLOUD_MODEL_RETRIES` | Client-side retries for agent chat-model turns on transient connection errors (default 5; `0` disables). 0.3.7+ interactive; 0.3.19+ also headless `-p` | +| `TINYCLOUD_MODEL_MAX_TOKENS` | Per-response output-token cap for agent chat-model turns (interactive and headless `-p`) — thinking, text, and tool calls share it (default 32000). 0.3.19+ | +| `TINYCLOUD_AUTO_CONTINUE` | `0` stops the interactive agent auto-resuming after an output-token-truncated turn (default on, bounded to 2 consecutive; also `preferences.autoContinue: false` in config). 0.3.19+ | Every Cloudglue request carries a hard deadline, so a stalled route can never hang the CLI indefinitely; a timeout surfaces as a retryable `upstream` error diff --git a/skills/tinycloud/tinycloud-skill.json b/skills/tinycloud/tinycloud-skill.json index 4823fc3..dc24eec 100644 --- a/skills/tinycloud/tinycloud-skill.json +++ b/skills/tinycloud/tinycloud-skill.json @@ -1,5 +1,5 @@ { - "skill_version": "0.3.18", + "skill_version": "0.3.19", "tinycloud": { "min_version": "0.3.18", "supported_range": ">=0.3.18 <0.4.0",