Commit Graph

38 Commits

Author SHA1 Message Date
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