Peter Steinberger
964c8c84c1
refactor: consolidate coercion ownership ( #122299 )
...
* refactor: consolidate coercion ownership
Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.
The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.
* fix: guard integer option ownership
Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.
* fix: keep integer helpers on numeric facade
Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.
* fix: point numeric coercion to number runtime
Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
01ae18c076
fix(clawrouter): honor advertised reasoning efforts ( #120631 )
2026-08-08 11:01:34 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 ( #120375 )
2026-08-07 18:44:12 -07:00
sunlit-deng
0d7baffc19
fix(clawrouter): show stable error for malformed usage responses ( #119580 )
...
* fix(clawrouter): handle malformed usage responses
* fix(clawrouter): use canonical usage record coercion
Punchcard-Session: clear-orchard-lantern-bc
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-05 21:33:06 +08:00
Peter Steinberger
35a1777f68
refactor(providers): consolidate catalog setup helpers ( #117824 )
...
* refactor(providers): consolidate catalog setup helpers
* fix(huggingface): narrow discovered model entries
2026-08-01 22:17:52 -07:00
Peter Steinberger
568ea29d2e
refactor(plugins): inherit shared package boundary settings ( #117474 )
2026-08-01 09:11:09 -07:00
Peter Steinberger
eec2c0cc26
refactor(providers): unify lifecycle-safe manifest registration ( #114381 )
...
* refactor(providers): canonicalize manifest-driven registration
* fix(zai): eliminate type-only SDK import side effects
2026-07-27 03:20:02 -04:00
Peter Steinberger
f6131a4fbf
build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks ( #114006 )
...
* build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks
npm 12 removed shrinkwrap (command + tarball/root loading). Delete all 82
committed npm-shrinkwrap.json files and stop publishing lockfiles; keep
pnpm-lock.yaml as the single reviewed dependency boundary. The generator
becomes scripts/generate-npm-package-lock.mjs and feeds plugin bundling via
a transient package-lock.json + npm ci (works on npm 11 and 12). Tarball
validation treats the published 2026.7.2 beta train as a shrinkwrap
transition; self-update npm detection now uses install topology instead of
the shipped shrinkwrap.
* fix(deps): repair lint, deadcode, and test-type lanes for the npm 12 migration
- sort integrity comparisons with an explicit comparator (oxlint)
- keep resolveBunGlobalNodeModules module-local (knip unused-export gate)
- model npm pack --json as npm<=11 array / npm 12 name-keyed object
- default calver destructuring in the tarball test fixture
2026-07-26 01:29:55 -04:00
wahaha1223
5fd87a28e4
fix(clawrouter): reject invalid UTF-8 usage responses ( #111183 )
...
Co-authored-by: wahaha1223 <304197929+wahaha1223@users.noreply.github.com >
2026-07-20 21:31:08 -07:00
ZOOWH
1c331b9b0f
fix(clawrouter): sanitize attribution headers to ByteString ( #106454 )
...
* fix(clawrouter): sanitize bounded header ids
Co-authored-by: ZOOWH <xu.wenhan1@xydigit.com >
* fix(clawrouter): keep sanitized ids collision-resistant
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 02:12:53 +01:00
Monkey-wusky
ea6ed38e20
fix(clawrouter): cancel non-OK usage response body before throwing ( #109525 )
...
* fix(clawrouter): cancel non-OK usage response body before throwing
When fetchClawRouterUsage receives a non-OK response, it throws
without cancelling the response body. The finally block calls
release() which cleans up the dispatcher, but the unconsumed
body stays open.
Cancel the body before throwing, matching the pattern in
guard-adapters (#109196 ) and fetchOpenRouterModels.
* test: use explicit ClawRouter placeholder token
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 23:16:25 -07:00
Peter Steinberger
91f57a3159
fix(clawrouter): normalize Perplexity tool schemas and harden dynamic model cache ( #108758 )
2026-07-16 02:39:33 -07:00
Peter Steinberger
d4183facf1
refactor(deadcode): tighten extension root modeling ( #108538 )
2026-07-15 18:18:23 -07:00
Vincent Koc
551e484598
refactor(clawrouter): localize default base URL ( #105474 )
2026-07-12 16:47:15 +02:00
Peter Steinberger
81941f2d68
test: enable noUncheckedIndexedAccess for extension tests ( #105343 )
2026-07-12 12:48:22 +01:00
NIO
3db62b9373
fix(clawrouter): guard usage snapshot fetch against SSRF redirects ( #104592 )
...
* fix(clawrouter): guard usage snapshot fetch against SSRF redirects
* fix(clawrouter): preserve guarded proxy usage
---------
Co-authored-by: NIO <nocodet@mail.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 12:58:38 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
Peter Steinberger
b07ebe3ff3
feat: correlate managed agent requests ( #103476 )
2026-07-10 08:42:55 +01:00
Peter Steinberger
6db586a388
fix(clawrouter): support managed gateway configuration ( #103299 )
...
* fix(clawrouter): support managed gateway configuration
* docs(clawrouter): refresh provider map
2026-07-10 04:25:41 +01:00
Peter Steinberger
07e2d633cc
feat: show auto-detected provider plans and billing ( #100520 )
...
* feat(providers): auto-discover usage billing
* feat(ui): show provider plans and billing
* fix(ui): translate provider billing labels
2026-07-06 04:53:09 +01:00
Peter Steinberger
deac98eb72
fix: harden small runtime and installer edge cases ( #100258 )
...
* fix(media): preserve dollar sequences in transcript echoes
Co-authored-by: uditDewan <udit.dewan21@gmail.com >
* fix(mcp): catch rejected gateway event handlers
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
* fix(auto-reply): support punctuated silent token prefixes
Co-authored-by: simon-w <weng.qimeng@xydigit.com >
* fix(discord): keep voice log previews UTF-16 safe
Co-authored-by: sunlit-deng <yang.jiajun1@xydigit.com >
* fix(clawrouter): bound usage response reads
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
* fix(browser): bound CDP JSON response reads
Co-authored-by: hailory <hailory@xydigit.com >
* fix(status): include current time in session status
Co-authored-by: connermo <conner.mo@gmail.com >
* fix(installer): require Arch detection before pacman
Co-authored-by: Iliya Abolghasemi <gfaerny@gmail.com >
* fix(apps): default TLS gateway deep links to port 443
Co-authored-by: ben.li <li.yang6@xydigit.com >
* fix(infra): keep Undici terminated exceptions nonfatal
Co-authored-by: harjoth <harjoth.khara@gmail.com >
* fix(auto-reply): avoid Unicode-unsafe token spread
---------
Co-authored-by: uditDewan <udit.dewan21@gmail.com >
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
Co-authored-by: simon-w <weng.qimeng@xydigit.com >
Co-authored-by: sunlit-deng <yang.jiajun1@xydigit.com >
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
Co-authored-by: hailory <hailory@xydigit.com >
Co-authored-by: connermo <conner.mo@gmail.com >
Co-authored-by: Iliya Abolghasemi <gfaerny@gmail.com >
Co-authored-by: ben.li <li.yang6@xydigit.com >
Co-authored-by: harjoth <harjoth.khara@gmail.com >
2026-07-05 05:33:11 -07:00
Peter Steinberger
8250b8d02e
fix(providers): resolve ClawRouter auth-profile models ( #99759 )
2026-07-03 19:27:46 -07:00
Peter Steinberger
4a354f76c1
feat(providers): add ClawRouter routing and quotas ( #99658 )
...
* feat(providers): add ClawRouter routing and quotas
* docs(plugins): refresh Ollama inventory
* test(plugins): register ClawRouter boundary coverage
* docs(i18n): add ClawRouter glossary terms
* docs(providers): expand ClawRouter setup guide
2026-07-03 18:29:14 -07:00
Vincent Koc
04255b247c
revert(providers): remove ClawRouter provider
2026-06-17 12:15:17 +08:00
Vincent Koc
8c6139006a
fix(providers): align ClawRouter package boundary
2026-06-17 11:46:57 +08:00
Vincent Koc
ed88457f3b
fix(providers): compose ClawRouter native auth
2026-06-17 11:46:57 +08:00
Vincent Koc
5baca82072
fix(providers): apply wrappers to direct streams
2026-06-17 11:46:57 +08:00
Vincent Koc
d667dcfb90
fix(providers): route ClawRouter direct streams
2026-06-17 11:46:57 +08:00
Vincent Koc
ad81cb44ba
fix(providers): require runnable ClawRouter Gemini routes
2026-06-17 11:46:57 +08:00
Vincent Koc
f465ae08e2
fix(providers): preserve ClawRouter catalog model ids
2026-06-17 11:46:57 +08:00
Vincent Koc
5af0ccfd5f
fix(providers): cover ClawRouter runtime auth paths
2026-06-17 11:46:57 +08:00
Vincent Koc
8a4d92d362
fix(providers): isolate ClawRouter runtime credentials
2026-06-17 11:46:57 +08:00
Vincent Koc
c4e0d27ade
fix(providers): restore ClawRouter native runtime routes
2026-06-17 11:46:57 +08:00
Vincent Koc
8c8866c921
fix(providers): consume canonical ClawRouter catalog field
2026-06-17 11:46:57 +08:00
Vincent Koc
4c8ac47dbe
fix(providers): preserve ClawRouter native replay policies
2026-06-17 11:46:57 +08:00
Vincent Koc
d32e241ca0
chore(providers): align ClawRouter package version
2026-06-17 11:46:57 +08:00
Vincent Koc
95dafc824e
feat(providers): add ClawRouter managed proxy
2026-06-17 11:46:57 +08:00