Commit graph

162 commits

Author SHA1 Message Date
Peter Steinberger
dab1f08376
feat: give every plugin a compact chat activity icon (#147333)
* feat: give every plugin a compact chat activity icon

Separate package-owned activity SVGs from plugin identity artwork. Ship 154 defaults and seven exact tool overrides, preserving Echo and the progress claw. Include authenticated bounded delivery, safe mask rendering, packaging, and authoring guidance.

* test: declare Vite types for the activity asset browser test

* refactor: keep plugin artwork selection with catalog presentation facts

* test: scope activity browser types and simplify fixture copies
2026-09-13 13:49:51 -07:00
RoboClaw
c677baebc9
chore(release): close out 2026.9.4 on main (#144708)
Forward-port the shipped updater, Doctor, schema, and skill snapshot fixes.
Align package metadata and the exact tagged release notes without changing
mobile release versions or any published artifact.

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
2026-09-11 18:46:37 +08:00
Patrick Erichsen
8ea617359f
feat(plugins): assign one purpose category to every bundled plugin (#142760)
* feat(plugins): reclassify bundled plugin manifests

* feat(plugins): assign one purpose category per bundled plugin

* feat(plugins): classify native agent execution runtimes
2026-09-10 20:44:20 -07:00
Patrick Erichsen
cb0fcf6b5e
feat(plugins): define package-owned categories (#142710)
* feat(plugins): define manifest category contract

* chore(plugins): classify bundled manifests

* chore(plugins): classify team reports

* test(ui): update wizard catalog fixture
2026-09-09 19:05:40 -07:00
Peter Steinberger
58fcf69cad
chore(release): close out 2026.9.3 on main (#142240)
Align root, native source, plugin and companion version metadata with the published stable release. Preserve newer main code and translations, regenerate the channel catalog, and copy the exact tagged release-note section without adding another release train. Native appcast and locale refreshes remain with their independent owners.
2026-09-08 09:39:38 -07:00
Ayaan Zaidi
d141dc65ec
fix(models): report failed bundled catalog refreshes (#139649)
Related: #136257. Builds on merged #139357.

Make all bundled shared-helper catalog callers report actual acquisition failures and authoritative empty results. Preserve shipped external advisory defaults through the same transport/cache implementation.

The existing publication owner retains compatible learned inventory or degraded provider-owned starters. Static preparation consumes registered hooks with their authoritative plugin identity, without activating unknown runtimes or widening successful empty membership. No operator option, persistence schema, new cache, or auth re-observation is introduced.

Proof: retained built baseline failure, packaged CLI/Gateway fault/recovery/empty checks, public SDK/provider API compatibility, fresh/upgrade starter checks, and the decisive seven-clause downstream composite on exact shared head 5e0ecef411cc7bcabbcab2672227910a05209ffd. Composite 296bfa19ec7663044ce50b8ebb3652555900d531 adds only the unchanged separate DeepInfra/NVIDIA producer patch; that patch is not part of this PR. Controlled clock advancement and fixture-rejected background inference are disclosed. No real vendor inference or UI claim.

Production net +199; tests/support +313; docs +34; ratchet metadata -1; generated/lockfile delta zero. Growth preserves shipped API and shared failure/empty/ownership contracts rather than adding parallel provider policy.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-06 10:03:57 +05:30
Peter Steinberger
74ad6ba4f2
chore(release): bring 2026.9.2 release state to main (#139369)
* chore(release): carry shipped 2026.9.2 state onto main

Align main and official plugin versions with the published stable release and
preserve the exact tagged changelog. All ten canonical runtime/qualification
fix commits are already on main; retain its newer SQLite worker and Watch UI.

Refresh generated UI and native locale artifacts through their canonical
owners after provider failures left main's current inventories out of sync.
The release tag and published package bytes remain unchanged.

* chore(release): isolate generated locales from version closeout

Keep release version metadata and the exact published changelog in this PR.
Generated UI locales are covered by #139382; native locales use #139364.
2026-09-05 14:25:55 -07:00
Peter Steinberger
0229a108fe
chore(release): close out 2026.9.1 on main (#137506)
Set main to the shipped stable version 2026.9.1 (root, apps, plugins, and
version-owned generated metadata via `pnpm release:prepare`), make the
`## 2026.9.1` changelog section identical to the tagged release branch, and
carry the native locale refresh that the release preflight requires.

Release: https://github.com/openclaw/openclaw/releases/tag/v2026.9.1
npm: openclaw@2026.9.1 (latest, beta); 89 @openclaw/* plugins at 2026.9.1.
2026-09-04 17:40:27 -07:00
Patrick Erichsen
1233e5b077
feat(plugins): bundle all plugin icons and update channel gallery (#131511)
* feat(channels): bundle local channel icons

* feat(ui): render channel plugin metadata

* test(channels): isolate bundled icon contract

* refactor(ui): isolate channel plugin presentation

* fix(channels): use verified official artwork

* fix(ui): align channel wizard mock with selection

* fix(ui): load icons only for displayed channels

* feat(plugins): bundle icons for every plugin

* test(ui): serve bundled icons in visual mock

* feat(plugins): add visitor access icon

* fix(ui): satisfy channel gallery lint

* fix(ui): reconcile late channel plugin icons

* fix(plugins): normalize bundled icon artwork

* fix(ui): satisfy channel icon reconciliation checks

* test(ui): narrow channel wizard mock match

* test(ui): target configured channel rows

* test(ui): target channel detail triggers

* test(ui): provide plugin catalog mock

* fix(plugins): improve bundled icon contrast

* test(ui): preserve direct channel setup selection

* fix(plugins): normalize OpenClaw channel artwork

* test(active-memory): assert transient workspace cleanup

* fix(ui): use plugin icons in channel details

* fix(ui): contain package icons in channel covers
2026-09-02 22:41:08 -07:00
Peter Steinberger
568b920b21
feat(lint): enforce import ordering and deduplication (#124730)
* refactor(imports): dedupe and hoist imports

* feat(lint): enforce import/no-duplicates and import/first
2026-08-16 11:44:52 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 (#120375) 2026-08-07 18:44:12 -07:00
Peter Steinberger
bc0c3fcd63
refactor(providers): shared generated-media download guard and binary-response adoption (#120351)
* fix(agents): cancel rejected provider binary bodies

* refactor(providers): share generated media downloads

* refactor(providers): adopt payload patch stream wrapper

* fix(providers): preserve generated media helper contracts
2026-08-07 15:45:53 -07:00
Peter Steinberger
b4a26783f7
refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers (#119982)
* refactor(test): consolidate duplicated test helpers

* test: remove stale record guard import

* fix(test): remove orphaned record guards

* refactor(test): keep record requirement messages exhaustively typed

* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Yiğit ERDOĞAN
0d18bde848
fix(media): release rejected BytePlus and Runway video downloads under debug capture (#119257)
…r debug capture

When the debug proxy is enabled it patches global fetch and clones every
response, so the caller-facing body is one branch of a live tee. Cancelling
such a branch settles only after both branches cancel, so awaiting it in the
rejected-download path leaves the download pending instead of surfacing the
malformed-response error.

Both providers read the completed media URL through the global fetch, so they
reach the capture clone. Switch them to the fire-and-forget release the other
generated-media owners already use, and cover each with a regression that keeps
a capture clone live while the download is rejected.

Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-04 17:48:10 -05:00
Peter Steinberger
990fdcf6fd
fix(providers): recognize configured media credentials across provider boundaries (#118761)
* fix(providers): honor configured media credentials across owner boundaries

* test(providers): align configured auth fixtures and derived SDK surfaces

* fix(providers): enforce shared DashScope media credential policy
2026-08-03 13:26:31 -07:00
Peter Steinberger
5b29a1e278
refactor(providers): consolidate sibling adapters (#117822)
* refactor(providers): consolidate sibling adapters

* fix(providers): preserve concrete plugin entry type
2026-08-01 22:10:06 -07:00
Peter Steinberger
568ea29d2e
refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00
Peter Steinberger
870c6b240e
fix(media): validate provider-owned generated media downloads (#117281)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 01:05:44 -07:00
Vincent Koc
e93de36081
feat(plugins): externalize BytePlus provider (#116866) 2026-07-31 22:37:47 +08: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
e30217d25c
refactor(providers): shared manifest row builder and fleet default-model adoption (#113879)
* feat(plugin-sdk): add manifest model row builder

* refactor(providers): share manifest model row building

* refactor(providers): source defaults from manifests

* refactor(providers): drop unconsumed builder aliases

* fix(providers): keep Cohere catalog internal
2026-07-25 15:00:02 -07:00
Peter Steinberger
f703d803cc
chore(models): curate all provider model catalogs to current-generation lineups (#113681)
* chore(models): fleet-wide provider catalog curation

* fix(models): sync provider runtime catalogs and tests with curated manifests

* test(models): align venice lifecycle assertions and copilot auth default with curated catalogs

* test(models): align catalog lifecycle contract checks
2026-07-25 07:21:17 -07:00
Vincent Koc
749dbcb2a7
refactor(media): consolidate generated media byte limits (#113556) 2026-07-25 15:39:49 +08:00
Jason (Json)
55cf9523e0
feat: discover models from live provider catalogs (#112412)
* feat: discover models from live provider catalogs

* fix(provider-catalog): satisfy current catalog contracts

* fix(deps): update fast-uri past new advisory

* fix(deps): refresh fast-uri shrinkwraps

* fix(openrouter): satisfy provider catalog lint

* fix(agents): preserve refreshable catalog metadata

* test(agents): keep catalog fallback proof within lint budget

* fix(provider-catalog): honor live model contracts

* fix(minimax): type discovery headers explicitly

* docs(plugin-sdk): define live model discovery contract
2026-07-21 19:29:57 -06:00
Peter Steinberger
40793e6f8b
fix: bound pasted input and provider response bodies (#110627)
* refactor(runtime): centralize bounded I/O handling

* fix(runtime): finalize bounded I/O contracts

* chore(security): drop stale audit import

* docs(changelog): credit bounded I/O fixes

Co-authored-by: Pick-cat <huang.ting3@xydigit.com>

* fix(agents): keep provider HTTP options private

* fix(ai): traverse OpenAI schema maps by value

* fix(runtime): preserve absolute download deadlines

* ci(ui): stabilize compressed CSS budget

* fix(ai): traverse legacy schema applicators

---------

Co-authored-by: Pick-cat <huang.ting3@xydigit.com>
2026-07-18 13:54:56 +01:00
Peter Steinberger
349f78776d
fix(models): refresh bundled provider catalogs (#109410)
* fix(models): refresh bundled provider catalogs

* docs(models): refresh generated docs map

* fix(xiaomi): keep provider helper private

* chore(release): defer catalog release note
2026-07-16 16:47:25 -07:00
Peter Steinberger
0631252f4b
refactor: reduce plugin SDK test import overhead (#109333)
* refactor(test): split plugin SDK test helpers

* fix(test): align plugin SDK test subpaths
2026-07-16 13:55:23 -07:00
Peter Steinberger
81941f2d68
test: enable noUncheckedIndexedAccess for extension tests (#105343) 2026-07-12 12:48:22 +01:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2 2026-07-11 04:00:49 +01:00
Peter Steinberger
80537c1ba4
feat(macos): load provider catalog during AI onboarding (#101132)
* feat(macos): load onboarding providers from gateway

* test(crestodian): widen setup config mock

* fix(crestodian): satisfy onboarding lint gate

* chore(macos): refresh onboarding localization inventory

* test(plugins): cover guided Copilot secret metadata
2026-07-06 20:57:56 +01:00
Dallin Romney
dbdaad1c2e
refactor(providers): table-drive paired catalogs (#99777) 2026-07-04 11:35:55 -07:00
Dallin Romney
e6dec69403
refactor: consolidate image data URL formatting (#99715) 2026-07-03 17:09:30 -07:00
Vincent Koc
66e676d29b
chore(release): close out 2026.6.11 on main 2026-06-30 11:31:08 -07:00
Alix-007
7b5ee739eb
fix(byteplus): bound video-generation success response (#96606) 2026-06-25 13:47:07 -04:00
Vincent Koc
0671c08900
chore(release): close out 2026.6.10 on main (#96271)
* chore(release): close out 2026.6.10 on main

* chore(release): align native app metadata for 2026.6.10

* chore(release): sync Android 2026.6.10 notes

* docs(changelog): preserve 2026.6.9 history

* docs(changelog): preserve 2026.6.9 history
2026-06-24 11:51:14 +08:00
Vincent Koc
b039e949b6
chore(release): close out 2026.6.9 2026-06-21 12:24:15 +08:00
Vincent Koc
46c42d4a0d
refactor(providers): drop unused model defaults helpers 2026-06-19 13:05:48 +08:00
Vincent Koc
6774e7f259
chore(release): sync main to 2026.6.8 2026-06-17 07:25:30 +08:00
Shakker
920e6a8eec
chore: set version 2026.6.9 2026-06-16 19:54:07 +01:00
Peter Steinberger
4fa5092cdc docs: document small extension sources 2026-06-04 21:02:07 -04:00
Peter Steinberger
18ecb82034 docs: document byteplus provider 2026-06-04 08:03:04 -04:00
Peter Steinberger
1878ca0820
chore(release): prepare 2026.6.2 beta 2026-06-04 00:06:52 +01:00
Peter Steinberger
e254346bc2
chore(release): prepare 2026.6.3 beta 2026-06-03 23:42:34 +01:00
Peter Steinberger
a14eacf372
chore(release): set version 2026.6.2 2026-06-01 23:06:55 +01:00
Peter Steinberger
8e28c773fe
chore(release): prepare 2026.6.1 2026-06-01 10:30:15 +01:00
Dallin Romney
4b56c44c02
test: consolidate plugin registration contracts (#88824) 2026-05-31 19:04:53 -07:00
Peter Steinberger
27dde7a4d6
chore(lint): enable stricter error rules 2026-06-01 01:12:21 +01:00
Peter Steinberger
0d17623f00
chore: bump OpenClaw version to 2026.5.31
Bumps OpenClaw release metadata to 2026.5.31 across package manifests, app version files, plugin metadata, changelog headings, and generated shrinkwraps.

Verification:
- pnpm plugins:sync:check
- pnpm ios:version:check
- pnpm deps:shrinkwrap:check
- git diff --check
- stale 2026.5.30/build-code scan across changed files
- autoreview clean: no accepted/actionable findings
- PR CI green for real gates: Checks, security scans, dependency guard, app lanes, real behavior proof

Known non-code workflow issue:
- label workflow failed because this PR hits GitHub's 100-label issue cap before the size-label step.
2026-05-31 14:46:17 +01:00
Peter Steinberger
cd07d013ba
chore(release): bump version to 2026.5.30 2026-05-30 06:49:13 +01:00
Vincent Koc
9e002c12ac
fix(video): bound generated video downloads 2026-05-29 11:00:06 +02:00