Commit graph

15 commits

Author SHA1 Message Date
Peter Steinberger
b3cb94506b
fix(runtime): close Bun API cluster loader and fixture gaps (#163052)
Preserve plugin capture conditions, observed missing inputs, and lazy dependency acquisition under Bun. Target portable worker and recovery bundles at Node independently of the build runtime, and migrate runtime fixtures to owned cleanup channels.

Validation: paired Node24/Bun17c9 covering suites; 54 Node plugin cases and 46 Bun cases with eight exact-pin skips; full build, changed-file checks, and import-cycle checks; green exact-head CI. The published 2026.9.7 updater installed the verified candidate, replaced the managed service, completed its durable update run, and passed readiness and build-identity checks.
2026-10-01 16:40:33 -07:00
Peter Steinberger
91a86e494e
refactor(plugins): deslop plugin runtime fifth pass (#159945)
* refactor(plugins): deslop plugin runtime fifth pass

Consolidate repeated provider, manifest, install, catalog, hook and registration projections under their existing owners. Preserve plugin loading, SDK, caching and source-security contracts.

Preserve provider wizard modelSelection preferences through registration so configured onboarding choices retain their documented model-picker behavior.

* fix(plugins): preserve build and type cleanup contracts

* fix(plugins): retain distinct public credential source types

* fix(plugins): preserve sparse catalog matching and cleanup contracts

* fix(plugins): preserve include ownership during uninstall

* fix(plugins): include request policy in PR wrapper inventory
2026-09-28 16:59:20 -07:00
Peter Steinberger
605cc417c0
fix(plugins): load current plugins while update rollback trees are retained (#159052)
* fix(plugins): load current plugins while update rollback trees are retained

* fix: preserve plugin capture dependencies in PR wrapper extraction
2026-09-26 18:02:34 +00:00
Peter Steinberger
9faa93d44c
perf(plugins): stop reading native plugin artifacts at startup (#158414)
* perf(plugins): bound native artifact capture memory

Preserve source verification and raw-byte generation receipts while hashing in bounded chunks and copying from admitted descriptors.

Refs #157815 #157791 #157545

* test(doctor): inject plugin capture failures into native copies

* perf(plugins): stop reading native plugin artifacts at startup
2026-09-26 05:21:17 -07:00
RichSomeday222
02e89c2683
fix(plugins): preserve sibling native assets in captured generations (#153546)
Plugin generation capture placed installed sibling dependencies under the
captured package, breaking sqlite-vec's relative lookup of its optional
platform binary and affecting vector-memory plugins.

Preserve sibling placement at the existing capture producer while retaining
nested dependency versions and ancestor lookup. Links still target captured
copies. Include regression fixtures and plugin architecture documentation.

Validation: independent review found no accepted P0/P1 findings. Maintainer
Linux Testbox verification failed on main and passed with this change for
hoisted, nested, and pnpm-linked layouts, with links inside staging. Native
preparation verifies hosted CI. Actual sqlite-vec binary loading and the
published-updater transition remain unverified.

Thanks to @RichSomeday222 for the fix. Refs #153516.

Co-authored-by: RichSomeday222 <x1980078293x@163.com>
2026-09-20 06:03:53 -07:00
Vyctor H. Brzezowski
eeb75c8943
fix(plugins): delete leftover plugin build copies after the Gateway is killed (#150580)
* fix(plugins): reclaim captures abandoned after forced exits

* fix(plugins): own source captures by instance

* docs(plugins): align capture cleanup with SQLite staging

* fix(plugins): preserve capture safety across runtime cleanup

* fix(plugins): complete capture imports and test isolation

* test(gateway): retire quarantine fixture plugin resources
2026-09-18 04:24:41 -03:00
Peter Steinberger
c7436e77ca
improve(plugins): reduce work for unrelated native imports (#149485)
Some checks failed
Native App Locale Refresh / Refresh native id (push) Blocked by required conditions
Native App Locale Refresh / Refresh native it (push) Blocked by required conditions
Native App Locale Refresh / Refresh native ja-JP (push) Blocked by required conditions
Native App Locale Refresh / Refresh native ko (push) Blocked by required conditions
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Waiting to run
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Blocked by required conditions
Plugin Init Scaffold Validation / Validate provider scaffold (push) Waiting to run
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Plugin NPM Release / Validate release publish approval (push) Blocked by required conditions
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / Preflight plugin npm package () (push) Blocked by required conditions
Plugin NPM Release / Seal prepared plugin npm release (push) Blocked by required conditions
Plugin NPM Release / Trusted publisher OIDC exchange (push) Blocked by required conditions
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Plugin NPM Release / verify_plugins_npm (push) Blocked by required conditions
Vitest Cache Warm / warm (linux) (push) Waiting to run
Vitest Cache Warm / warm (macos) (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
Website Installer Sync / Fedora installer (root) (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / debian-installer (push) Has been cancelled
Website Installer Sync / linux-build-tools-failure (push) Has been cancelled
Website Installer Sync / linux-non-root (push) Has been cancelled
Website Installer Sync / Fedora installer (non-root) (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
2026-09-16 19:32:50 -07:00
Patrick Erichsen
967a8681d0
fix(plugins): keep Lossless usable after settings reload (#149675)
* feat(plugins): capture source for fresh runtime recovery

* fix(gateway): dispose old plugins before registering replacements

* fix(plugins): track settlement after call drain timeouts

* fix(gateway): retry plugin reload after completed retirement

* test(plugins): expect typed disposal drain diagnostics

* fix(plugins): preserve managed install workspace provenance

* fix(plugins): capture quiesced loaders for reload retries

* fix(gateway): retain error diagnostics during plugin recovery

* test(gateway): enforce cleanup barriers during plugin reload

* fix(gateway): retain plugin errors before instance allocation

* fix(gateway): resume unchanged channels after reload cleanup failure

* refactor(gateway): keep handoff guards with reload cleanup

* fix(plugins): retain package descriptions in installed metadata

* fix(plugins): normalize dependency metadata without package manifests
2026-09-16 01:15:49 -07:00
Patrick Erichsen
6878654864
fix(plugins): reuse bundled setup code across reloads (#149646)
* fix(plugins): reuse compiled bundled setup code across reloads

* test(plugins): distinguish bundled reuse from installed capture

* test(telegram): drain menu sync before closing fixture API
2026-09-16 00:51:16 -07:00
Peter Steinberger
09f29dff87
fix(plugins): avoid Gateway stalls during artifact cleanup (#148286)
* fix(plugins): keep artifact removal from blocking the Gateway

Join asynchronous captured-source removal through the instance cleanup owner
while preserving plugin callback deadlines and synchronous inspection and
failure cleanup.

* test(tts): await speech registration settlement
2026-09-14 17:07:21 -07:00
Peter Steinberger
98f24f8c23
fix(plugins): preserve native addon roots during hot reload (#148170)
* fix(plugins): preserve native addon roots during hot reload

Retain source dependency lookup directories in captured generations so native addon loaders do not mistake per-file node_modules shims for their package root. Preserve real nested dependency versions and captured asset lifetime.

Fixes #148148. Refs #145484 and #145816. Reported by @NovaUnboundAi (#148148).

* chore(ci): refresh native addon repair checks
2026-09-14 05:09:57 -07:00
Peter Steinberger
8465e1fc42
fix: prevent plugin dependencies from slowing unrelated imports (#146486)
* fix(gateway): stop TLS renewal through the shutdown owner

* fix: prevent plugin dependencies from slowing unrelated imports
2026-09-12 15:04:09 -07:00
Peter Steinberger
e625b673e7
fix(plugins): recover reloads and release retired resources (#145816)
* fix(plugins): recover reloads and release retired resources

Restore native Bun dependency resolution, runtime-only refresh, channel
status and cold-account handling. Return contention before Gateway plugin
or Claw-package mutations start, retaining receipts for later failures.

Keep slow service startup cleanup with its lifecycle owner, restore
LanceDB service state on rollback, and retain CLI cleanup warnings.
Remove obsolete generation retirement and duplicate package resolution.

Related: #145484, #145649

* test(gateway): verify startup capability reconnects with real sockets

* fix(agents): release queued preparation before gateway retirement

* fix(plugins): preserve cleanup ownership and machine-readable reloads

* refactor(gateway): group reload recovery proof by lifecycle owner

* fix(plugins): preserve require context on older Bun runtimes

* fix(agents): return explicit queued cleanup completion
2026-09-12 03:27:47 -07:00
Peter Steinberger
b5134de70a
feat: manage and reload plugins without Gateway restarts (#145484)
* feat: manage and reload plugins without Gateway restarts

* fix(plugins): preserve Bun loading and align lifecycle fixtures
2026-09-11 23:12:58 -07:00
Peter Steinberger
05a2844d39
refactor: keep plugin work and cleanup owned during retirement (#144252)
* refactor(plugins): retain code and cleanup through retirement

* fix(plugins): release cached publications when their owners retire

Release idle prepared publications at registry and metadata-cache retirement while retaining admitted borrowers and surviving Gateways. Resolve late local imports from captured packages and align lifecycle fixtures with their owning contracts.

* fix: preserve plugin loader startup ownership

* fix: retain explicit SDK preference for Bun plugins

* fix(plugins): preserve rebased startup and build contracts

Prepare runtime SDK output for both startup corpora, preserve exact released update-bridge provenance, and share hosted runtime prerequisites within the existing serial budget. Remove the redundant packing pass and isolate the timing fixture from unrelated suite growth.

* style: simplify foundation CI fixtures

* fix(plugins): preserve SDK readiness and startup cleanup

Recognize authorized built relative SDK imports before asynchronous linking so published CJS plugins can synchronously load the same host SDK graph. Bind dashboard preparation to Gateway drain and declare the package-runtime test build prerequisite.

Validation: scoped P2 review clean; 51 loader tests and 602 package/planner tests; published 2026.9.3 upgrade-survivor replay passed; configured TypeScript upgrade, fresh TypeScript startup, and CLI-managed JS/CJS upgrade each passed two RPCs, health, exactly-once service cleanup, and natural exit with unchanged shutdown grace. Runtime/UI/metadata rebuilt; full hosted CI still required.

* test(pr): model GitHub commit authors in merge fixtures

Current main verifies human contributor credit through per-commit GitHub metadata. Return the synthetic repository commit author and unlinked account status, and include the requested PR author type, so the real merge workflow can exercise that contract.

Validation: both original merge-ref failures reproduced before the fixture repair and passed afterward; all 16 selected tooling checks passed; focused P2 review is clean. No production code changes.
2026-09-11 13:42:35 -07:00