Commit Graph

94 Commits

Author SHA1 Message Date
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 14b1c15f2a fix(cli): fail closed on unverifiable proxy owners, strip attributed routes on direct launch
Review follow-ups to #945: a listener caveman did not start this run and
cannot prove it owns (foreign process, or a proxy binary too old to
answer) now launches direct, and the direct-launch strip removes the
agent-attributed /w/<agent> route as well as the bare gateway URL, so a
leaked outer route never reaches the child. Qwen's ACP and extension
listing guards accept yargs camelCase spellings. Proxy-aware fetch no
longer sets an IP literal as TLS servername (rejected on Node 26). The
conformance-pin test fixture follows the pinned-upstream-binary job.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 15:39:01 +02:00
Julius Brussee d6c1cd39af fix(cli): launch direct when a foreign process owns the proxy port
A foreign listener on 127.0.0.1:8787 used to get the banner but still
receive the routed launch, which would send the operator's provider
keys to a process caveman does not own (#945). Treat it like a gate
mismatch and fall back to a direct launch.

Also: Claude Code refuses Remote Control behind any non-first-party
ANTHROPIC_BASE_URL, so `caveman claude remote-control` launches direct
and the limitation is documented (#947); caveman-compress reads the
first text block instead of content[0] so a leading tool_use block no
longer crashes after a paid call (closes #932's report); hook checksum
manifest regenerated after #794.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 15:25:28 +02:00
Julius Brussee c24123dd2b Merge remote-tracking branch 'origin/main'
# Conflicts:
#	README.md
#	docs/technical/agent-profile-registry.md
#	packages/cli/src/index.ts
#	packages/cli/tests/subscription-recovery.runtime.mjs
#	proxy/internal/gateway/chatgpt.go
#	proxy/internal/gateway/proxy.go
#	proxy/internal/gateway/retrieve_tool.go
#	proxy/internal/gateway/server.go
#	proxy/internal/gateway/subscription_live_zone_test.go
2026-09-02 15:19:57 +02:00
Julius Brussee 7684fb1cef fix(cli): name per-session recovery and lock Qwen/Kilo control surfaces
Bare start never stamps global recovery; the banner now says which
sessions compress (those whose agent carries caveman_retrieve) and the
status mcp-missing row keys off any installed MCP marker.

Qwen: refuse extension, ACP, session-restore, control-command, and
enforced-auth surfaces that could reactivate a provider route outside
the locked session; replace modelProviders/providerProtocol wholesale
in the routed profile; keep web search and workflows off via env.
Kilo: daemon and console launch direct since they outlive the wrap.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 15:18:19 +02:00
Julius Brussee 60dbb92d62 fix(proxy): lock Qwen side-route surfaces 2026-08-30 06:33:04 +02:00
Julius Brussee cdf3e16bfc fix(proxy): keep Qwen extension guard bounded 2026-08-30 06:15:33 +02:00
Julius Brussee c001dda57b fix(proxy): confine Qwen routed surfaces 2026-08-30 06:14:33 +02:00
Julius Brussee be2f788161 fix(cli): guard Kilo managed routing 2026-08-30 06:07:35 +02:00
Julius Brussee 9978a02b7e fix(cli): parse Kilo boolean arity 2026-08-30 06:01:04 +02:00
Julius Brussee df6251dbe2 fix(cli): honor Kilo config directory 2026-08-30 05:58:49 +02:00
Julius Brussee bc71040245 fix(cli): parse Kilo command arity 2026-08-30 05:56:28 +02:00
Julius Brussee 9377d1f062 fix(cli): follow Kilo config paths 2026-08-30 05:53:13 +02:00
Julius Brussee ca51a04ed2 fix(cli): guard Kilo route overrides 2026-08-30 05:46:42 +02:00
Julius Brussee 1c3af69637 fix(proxy): lock Kilo routing profile 2026-08-30 05:35:25 +02:00
Julius Brussee 8e3f72a4a9 feat(registry): allow optional Kilo upstream keys 2026-08-30 05:35:07 +02:00
Julius Brussee facc597029 fix(cli): guard Qwen route overrides 2026-08-30 05:29:20 +02:00
Julius Brussee 0c9f918849 fix(proxy): lock Qwen routing profile 2026-08-30 05:29:02 +02:00
Julius Brussee 15d08edd83 fix(ci): close profile validation gaps 2026-08-30 05:13:07 +02:00
Julius Brussee fb58e4acbb fix(cli): honor MCP surface opt-outs 2026-08-30 05:08:27 +02:00
Julius Brussee bedde358a5 fix(cli): transact agent MCP ownership 2026-08-30 05:04:13 +02:00
Julius Brussee 55992b71c5 fix(cli): detect Qwen late relaunch suppressors 2026-08-30 03:48:10 +02:00
Julius Brussee 86fb3a6506 fix(cli): guard Qwen late credential resolution 2026-08-30 03:45:01 +02:00
Julius Brussee 35ad321ccd fix(cli): match Qwen JSON and merge safety 2026-08-30 03:41:39 +02:00
Julius Brussee 30bf2e5182 fix(cli): mirror Qwen settings loader 2026-08-30 03:30:59 +02:00
Julius Brussee 4bc4cec8f5 fix(cli): mirror Qwen credential policy 2026-08-30 03:22:18 +02:00
Julius Brussee 6aac0628d6 fix(cli): respect Qwen workspace trust 2026-08-30 03:04:56 +02:00
Julius Brussee 20df023da3 fix(cli): honor Qwen effective upstream key 2026-08-30 02:57:05 +02:00
Julius Brussee 9cd2703f02 test(cli): cover Qwen stored-key fallback 2026-08-30 02:51:53 +02:00
Julius Brussee 522e549ee3 fix(registry): scope optional credential token 2026-08-30 02:51:38 +02:00
Julius Brussee a07b34dd12 fix(proxy): omit missing Qwen upstream key 2026-08-30 02:47:23 +02:00
Julius Brussee 5c2c517d92 feat(cli): omit unavailable profile credentials 2026-08-30 02:46:36 +02:00
Julius Brussee fd99c98f7c fix(cli): verify effective MCP recovery 2026-08-30 02:41:38 +02:00
Julius Brussee 9d5028bfae docs(proxy): document Qwen Code wrapping 2026-08-30 01:44:53 +02:00
Julius Brussee 620ece12ee feat(cli): manage Qwen MCP recovery 2026-08-30 01:38:31 +02:00
Julius Brussee cb485a1285 test(cli): cover Qwen wrap isolation 2026-08-30 01:23:55 +02:00
Julius Brussee 3850bf26c3 feat(proxy): add Qwen Code agent profile 2026-08-30 01:22:23 +02:00
Julius Brussee b34c6d2724 fix(registry): price Qwen provider models 2026-08-30 01:21:42 +02:00
Julius Brussee e831b58b05 feat(cli): preserve platform agent settings 2026-08-30 01:20:52 +02:00
Julius Brussee 4a5e6dfcf1 feat(cli): manage Kilo MCP recovery 2026-08-30 01:11:12 +02:00
Julius Brussee d11cce7354 docs(proxy): document Kilo Code wrapping 2026-08-30 01:05:12 +02:00
Julius Brussee 3d5fa5be85 fix(proxy): align profile IDs with slug limit 2026-08-30 01:02:24 +02:00
Julius Brussee da7f3caf2b fix(cli): resolve published agent aliases 2026-08-30 00:59:18 +02:00
Julius Brussee eced1e20f9 feat(proxy): add Kilo Code agent profile 2026-08-30 00:56:31 +02:00
Julius Brussee 5ec62c0d5d test(cli): derive agent coverage from registry 2026-08-30 00:54:19 +02:00
Julius Brussee a42f383fdf fix(cli): support documented version flag 2026-08-29 23:33:18 +02:00
Julius Brussee 8f0fe44049 test: wait for asynchronous shutdown evidence 2026-08-29 22:32:22 +02:00
Julius Brussee 6e6b8ae633 fix: close weekly review gaps 2026-08-29 22:26:31 +02:00
Julius Brussee e11d0029f9 fix: harden weekly integrations and prepare v2.4.0 2026-08-29 21:57:23 +02:00
Julius Brussee 93a6255c36 Merge remote-tracking branch 'origin/pr/889' into codex/weekly-triage-20260829 2026-08-29 21:34:31 +02:00