14 Commits

Author SHA1 Message Date
Julius Brussee b36219e2b1 chore(release): cut @caveman-ai/cli 1.3.3 on the bin-v1.1.6 runtime
Bump every BINARY_RELEASE pin to bin-v1.1.6 and regenerate the compiled
agent-skills bundle, which still carried the pre-ASD-STE100 caveman skill.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W2f7Lf7G9erA7YNn5SXPEj
2026-09-04 02:18:53 +02:00
Julius Brussee f9a039a93d chore(release): cut v2.5.0 and @caveman-ai/cli 1.3.2 on the bin-v1.1.5 runtime
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 15:39:01 +02:00
Julius Brussee a42f383fdf fix(cli): support documented version flag 2026-08-29 23:33:18 +02:00
Julius Brussee e11d0029f9 fix: harden weekly integrations and prepare v2.4.0 2026-08-29 21:57:23 +02:00
Julius Brussee 7bb71309e8 chore(release): cut @caveman-ai/cli 1.2.5
Prompt-time proxy revive. No Go changes since bin-v1.1.3, so the runtime pin
stays put.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-23 14:03:52 +02:00
Julius Brussee 0d2f052bab chore(release): cut v2.3.0 on the bin-v1.1.3 runtime
- pins the installer, README and INSTALL bootstrap at v2.3.0
- packages/cli/BINARY_RELEASE moves to bin-v1.1.3 so the Go companions
  carry the learn v3 store work; regenerates the five release constant
  files (cli, shared, mcp, shrink, browse)
- CLI package version 1.2.4

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KA6VNr91eQ7MCQAB9E1LVN
2026-08-23 10:47:02 +02:00
Julius Brussee 9aa63945a3 release: caveman v2.2.0, cli 1.2.3 on bin-v1.1.2 runtime
Installer pins move to v2.2.0 (install.sh, install.ps1, bin/install.js, and the
one-liners in README/INSTALL). The CLI pins the bin-v1.1.2 runtime that carries
the engine line-ending and proxy cache-epoch fixes. Root installer package
version resyncs to the product tag after drifting at 2.0.0.

@caveman-ai/pi stays 0.1.0 — pi-v0.1.0 is its first release.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqmbqWDtNexzDfH5V3BMRz
2026-08-20 13:10:04 +02:00
Julius Brussee 216e685646 feat(cli): wire pi as a native host — wrap, enable, doctor, conformance
Pi joins every host surface: NativeAgent unions, capability matrix (incl.
post_tool_rewrite; PostToolUseFailure now returns raw responses for pi and
opencode), native-hook output contracts, Go validAgent +
directOutputRewriteAgent, doctor/status/enable/disable/expectedRoute rows,
and the porcelain agent list (visible cap 7 → 8: '+1 more' rendered longer
than the id it hid).

Wrap door: buildPiWrapArgs prepends the profile-declared loader flag plus the
bundled extension (CAVEMAN_PI_EXTENSION → dist/caveman-pi-extension.mjs),
stamps CAVEMAN_PI_HOOK_CMD + CAVE_GATEWAY_URL, and skips the generic base-URL
env spray — pi routing is extension-side, behind its recovery gate. Missing
asset fails open to a direct launch with a warning; the bundler script fails
the build instead of silently shipping without the asset.

Enable door: journaled write of banner + baked hook invocation + bundle to
~/.pi/agent/extensions/caveman-native.js (Pi auto-discovers only .ts/.js;
.mjs would journal fine and never load). settings.json stays byte-identical.
Status/doctor: pi route health = on-disk artifact ends with the currently
shipped bundle (catches stale bundles after CLI upgrades; the gateway is
resolved at runtime by the extension through the same chain as gatewayURL(),
so enable-time route recording would only manufacture false drift).
hooks install/uninstall pi exit 0 and point at enable/disable — the rewrite
surface ships inside the native extension.

Conformance: pi joins the matrix — a real wrap through the real proxy build
compresses via /w/pi/openai/v1 with a CCR handle booked under agent_slug=pi,
and the stub refuses to run if wrap failed open.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ez7w7BBtKrMZCiZz9ea4cb
2026-08-20 04:14:48 +02:00
Julius Brussee 664268a4f8 test: force-exit runtime suites so no leaked handle can ever hang CI again
typescript hung a third time (2h+ where a completing run takes ~2min).
The telemetry-stub unref fixed one instance of the class, but ~55 runtime
files hold stub servers/processes, and ANY load-dependent failure that
skips its cleanup pins that file's event loop and node --test waits
forever. --test-force-exit (Node 22.5+) ends each test-file process once
its tests finish, leaked handles or not — a failure now fails, on every
file, permanently. Also gave the hand-rolled noisy-stdout stub the same
10s token-read budget as stubProxyStats (the remaining 400ms flake under
concurrency). Mixed batch at concurrency 4: 61 pass x3 consecutive runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ez7w7BBtKrMZCiZz9ea4cb
2026-08-19 10:27:07 +02:00
Julius Brussee dd8496c507 release: cli 1.2.2 on bin-v1.1.1 runtime
First npm version pinned to the bin-v1.1.1 binaries — delivers the proxy-side
transport retry and wrap keepalive (#860) to npm installs. 1.2.1 shipped the
CLI halves but still pinned bin-v1.1.0. All 38 bin-v1.1.1 release assets
verified anonymously downloadable before this bump.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ez7w7BBtKrMZCiZz9ea4cb
2026-08-19 00:14:30 +02:00
Julius Brussee 66d7d87074 release: cli 1.2.1 on bin-v1.1.0 runtime
Patch release: upstream transport retry, wrap keepalive (#860), and
ENABLE_TOOL_SEARCH restoration. The keepalive heartbeat degrades gracefully
against a bin-v1.1.0 proxy (404, fail-open); the proxy-side halves of the
fixes ship with the next bin-v runtime tag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ez7w7BBtKrMZCiZz9ea4cb
2026-08-18 23:22:14 +02:00
Julius Brussee 09e9ed72be release: cli 1.2.0 on bin-v1.1.0 runtime
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bn1A1mU7TX9dsDb5mbSBE3
2026-08-16 21:26:29 +02:00
Julius Brussee a008ce357e chore(cli): bump to 1.1.0 — telemetry default-on release
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DLNTYJU8vMEdDWpV7e7k7Z
2026-08-12 11:33:44 +02:00
Julius Brussee 82864c8f4c feat: ship Caveman 2.0.0 — engine, proxy, SDKs, unified CLI
Single-commit port of the Caveman 2 tree onto the original repo history
(candidate caveman-2@88878a4 applied over main@3098342). No unrelated-history
merge; original history untouched.

Preserved v1 surfaces:
- skills/caveman/SKILL.md byte-for-byte, plus plugin mirror and caveman.skill zip
- legacy CI (Node 18/20/22 installer + Python 3.11 suites) alongside engine-ci
- cli/install.js compatibility shim forwarding to bin/install.js
- .codex/config.toml ships both hooks and codex_hooks for older Codex (#617)
- README Trendshift + Skills.sh badges and local star-history asset
- v1.10.0-pinned curl installs; benchmarks/tmp-starcharts ignore rules

Fixed for public same-repo release:
- SECURITY.md vulnerability reporting points at this repository
- release-binaries.yml publishes to this repo via job-scoped GITHUB_TOKEN
  (cross-repo PAT removed); binary-release environment still gates signing
- packages/cli/PUBLISHING.md rewritten for packages/ layout and same-repo flow
- profile-contract and provider-catalog lanes skip lane-scope gates on
  initial import so the launch PR can gate on their real validation steps
- ANNOUNCEMENT.md network claim corrected: compression is local; requests
  still go to the provider you configured

Caveman 2 stays opt-in: bin-v1.0.0 binaries and @caveman-ai/cli publish
separately after this lands and soaks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BLvb5QniwYjmcawyssQNw9
2026-08-11 16:46:10 +02:00