@oneciel-ai/claude-any 0.1.104 → 0.1.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,6 +26,21 @@
26
26
 
27
27
  ## Today's Top 3 Benefits
28
28
 
29
+ ### 2026-06-03
30
+
31
+ 1. **Router lifecycle isolation** — Claude Any now distinguishes routers it
32
+ manages from routers owned by another config directory or active session. It
33
+ replaces stale same-config routers only when they are idle, and managed
34
+ routers shut down after their Claude Code child exits.
35
+ 2. **OpenAI/vLLM compatibility repairs** — long compacted routed sessions keep
36
+ required tool-result messages with assistant tool calls, vLLM endpoint
37
+ routing distinguishes OpenAI-compatible and Anthropic-compatible servers, and
38
+ 128K context presets stay visible instead of collapsing back to 65K.
39
+ 3. **Cleaner ultracode, advisor, and channel behavior** — ultracode is gated by
40
+ verified model capabilities, `/advisor` remains an explicit user action, and
41
+ external-channel digests stay local so internal `tool_result` or background
42
+ summary text is not posted back into AI-Net-style rooms.
43
+
29
44
  ### 2026-05-28
30
45
 
31
46
  1. **Non-native Claude Code workflow prep** — routed providers can opt in to Claude Code dynamic workflows with `workflows_enabled`, which removes Claude Any's experimental-beta disable env for that launch.
@@ -82,7 +97,7 @@ passes normal Claude Code arguments through unchanged.
82
97
 
83
98
  Credits: One Ciel LLC
84
99
 
85
- Current version: `0.1.104`
100
+ Current version: `0.1.105`
86
101
 
87
102
  ## Why This Exists
88
103
 
@@ -332,13 +347,27 @@ claude-any --ca-upgrade-and-exit
332
347
  ```
333
348
 
334
349
  Headless coverage checklist: provider, base URL, model, Advisor model, API key
335
- or API-key environment variable, max output, context window, request timeout,
350
+ or API-key environment variable, multi-key round-robin, max output, context window, request timeout,
336
351
  RPM limit, RPM status display, streaming, web search, web fetch, Claude skills,
337
352
  update check, language, Ollama context/options, and normal Claude Code
338
353
  passthrough arguments are all configurable without opening the menu. API keys
339
354
  can be passed directly with `--ca-api-key`, but `--ca-api-key-env` is safer for
340
355
  scripts because the secret does not appear in shell history.
341
356
 
357
+ For high-token routed sessions such as ultracode, store multiple keys for the
358
+ same provider and Claude Any will rotate them per upstream request:
359
+
360
+ ```sh
361
+ export OPENCODE_API_KEYS="KEY1,KEY2,KEY3"
362
+ claude-any --ca-provider opencode --ca-api-keys-env OPENCODE_API_KEYS --ca-no-launch
363
+ ```
364
+
365
+ This distributes provider quota/rate usage across keys; it does not reduce the
366
+ task's actual token consumption. The menu also accepts comma/newline-separated
367
+ keys in the API-key input paths and shows a masked primary key plus a short
368
+ fingerprint so you can confirm which key set is actually active without exposing
369
+ the secret.
370
+
342
371
  More examples are in [Headless Examples](#headless-examples) and
343
372
  [the full manual](docs/manual.md#headless-usage).
344
373
 
@@ -437,7 +466,9 @@ Release flow:
437
466
  The demo sequence now shows provider selection, Base URL entry, model selection,
438
467
  LLM options, and the compatibility test. The compatibility test checks a plain
439
468
  text response, a required `tool_use`, and a `tool_result` follow-up before the
440
- launcher recommends starting Claude Code.
469
+ launcher recommends starting Claude Code. When multiple API keys are configured
470
+ for the selected provider, the test also sends a lightweight text probe with
471
+ each key so a dead key is caught before launch instead of during round-robin use.
441
472
 
442
473
  Additional current screenshots:
443
474
 
@@ -560,8 +591,66 @@ steps under that larger model's supervision.
560
591
 
561
592
  ## Changelog
562
593
 
563
- ### Nightly
564
-
594
+ ### 0.1.105
595
+
596
+ - **Router lifecycle isolation**: routed launches now track managed router
597
+ ownership with the current Claude Any config directory and owner process,
598
+ replace only idle same-config routers on the same port, refuse foreign-config
599
+ routers instead of killing unrelated sessions, and ask managed routers to stop
600
+ after their Claude Code child exits. npm `postinstall` also performs a
601
+ best-effort managed-router cleanup so upgrades do not leave stale local
602
+ bridges attached to old code.
603
+ - **Routed transcript repair for OpenAI-compatible providers**: compacted or
604
+ truncated contexts that still contain an assistant `tool_calls` message are
605
+ repaired before upstream forwarding by preserving the required matching tool
606
+ messages. This avoids DeepSeek/OpenAI-compatible errors such as
607
+ `insufficient tool messages following tool_calls message` after long routed
608
+ coding sessions.
609
+ - **vLLM and local Anthropic-compatible routing fixes**: vLLM endpoint detection
610
+ now distinguishes OpenAI-compatible `/v1` URLs from Anthropic-compatible
611
+ Messages endpoints, normalizes system messages for Anthropic-style vLLM
612
+ servers, shows model context metadata in the model picker when available, and
613
+ adds visible 128K presets instead of forcing every long-context choice back to
614
+ 65K.
615
+ - **Claude Code capability and ultracode guards**: workflow/ultracode launch
616
+ options now use explicit model capability metadata. Claude family IDs exposed
617
+ through routed gateways can infer supported capabilities, while unverified
618
+ OpenCode/DeepSeek/local IDs no longer advertise `xhigh_effort` unless the user
619
+ sets a provider capability override.
620
+ - **Advisor routing hardening**: routed sessions strip Claude Code's autonomous
621
+ server-side advisor tool from normal turns so `/advisor` remains an explicit
622
+ user action. Advisor model aliases are resolved through the selected provider,
623
+ preventing routed advisor requests from sending Claude Any alias names as raw
624
+ upstream model IDs.
625
+ - **Upstream request identity and install diagnostics**: routed provider calls
626
+ send a Claude Code oriented user-agent header by default, and startup now warns
627
+ when another `claude-any` executable shadows the active npm install. Self
628
+ updates target the npm prefix that owns the running executable instead of a
629
+ different global install.
630
+ - **External channel summary cleanup**: AI-Net-style channel digest summaries are
631
+ kept as local status notices and simplified to point users back to the MCP
632
+ system for details. Internal `tool_result`, background-summary, and
633
+ no-reply markers are suppressed from outbound external-channel messages.
634
+ - **Provider API-key round-robin**: routed providers now support multiple stored
635
+ API keys per provider (`api_keys`) while preserving the existing single
636
+ `api_key` config. `--ca-api-keys`, `--ca-api-keys-env`,
637
+ `--ca-set-api-keys`, and `set-api-keys` configure comma-, semicolon-, or
638
+ newline-separated key lists. Upstream provider requests rotate through the
639
+ keys in-process, which is useful for high-token ultracode sessions that need
640
+ quota/rate distribution across keys. Compatibility tests now probe every
641
+ configured key independently before the normal text/tool/tool-result checks.
642
+ API-key status lines include the masked primary key and a short SHA-256
643
+ fingerprint, and single-key entry/clipboard/env paths auto-detect multiple
644
+ pasted keys to avoid silently overwriting a round-robin set.
645
+ - **Rate-limit error surfacing**: routed upstream 429 responses with a
646
+ `Retry-After` longer than the current request timeout now fail fast and report
647
+ the provider's real error type/message plus `Retry-After`, instead of sleeping
648
+ until Claude Code surfaces the situation as a generic timeout.
649
+ - **Compatibility-test rate-limit diagnostics**: compatibility-test requests now
650
+ mark themselves for the local router, and router-backed OpenAI-compatible
651
+ paths skip rate-limit retry sleeps for those probes. A provider-side 429 should
652
+ show as the provider's rate-limit error instead of leaving the menu stuck and
653
+ later reporting a generic timeout.
565
654
  - **Claude native model registry refresh**: Anthropic native model refresh now
566
655
  prefers the official Claude model documentation before falling back to API
567
656
  model-list endpoints, stores the refreshed list in a provider-scoped