Jesse Merhi
bf40269cb7
feat(security): require acknowledgement for policy warnings ( #116489 )
2026-08-15 03:58:45 +10:00
Peter Steinberger
5a643e3543
fix(plugins): keep packed entries consistent through package lifecycle ( #121174 )
...
* fix(plugins): own packed entry lifecycles by package
Persist package ownership per runtime child, route lifecycle actions through one closed resolver, reconcile removed child policy during updates, and retain rollback generations until durable config/index commit.
* fix(plugins): break uninstall policy import cycle
* test(plugins): model package ownership in lifecycle fixtures
2026-08-12 00:49:29 -07:00
Peter Steinberger
3d76246792
refactor: eliminate final export name collisions ( #122083 )
...
* refactor: resolve final export name collisions
* refactor: update remaining collision rename consumers
* style: format rebased auth helpers
* test: update remaining session entry mocks
* test: update remaining runtime mock exports
* test: update delivery info path mock
* refactor: reconcile combined collision sweeps
* chore: regenerate collision and sdk baselines
2026-08-11 11:18:24 -07:00
Peter Steinberger
ebb2770000
refactor: eliminate export name collisions ( #122084 )
...
* refactor: eliminate export name collisions
* chore(scripts): burn resolved collision baselines
* refactor: narrow legacy session load options
* chore: refresh SDK and session debt baselines
* refactor: adopt upstream secrets collision fix
* test(plugin-sdk): mock renamed session store core
* fix(scripts): track renamed session accessor core
2026-08-11 10:41:50 -07:00
Peter Steinberger
e390781534
refactor: burn cross-directory export name collisions ( #121893 )
...
* refactor: name subsystem logger exports
* refactor(test): distinguish exported test doubles
* refactor: consolidate canonical owner helpers
* refactor: give cross-domain helpers distinct names
* chore(lint): ratchet collision debt baselines
* fix(test): complete collision rename consumers
* fix(test): update remaining collision mock consumers
* fix(test): update transcript reader mock export
* refactor: keep embedded logger name at its owner
* fix(test): align embedded logger mock with owner
* refactor: name shared assistant phase extraction
* fix(ui): update assistant phase extractor import
* chore(generated): refresh collision and SDK baselines
* style(test): format merged plugin mocks
* chore(sdk): refresh API content hashes
2026-08-11 06:50:22 -07:00
Peter Steinberger
02e8470bb8
refactor: burn SDK export collision debt ( #121888 )
...
* refactor: burn SDK export collision debt
* chore: regenerate collision debt baselines
* fix: update durable delivery core import
* fix: remove stale channel metadata type import
* fix: preserve config write SDK parameter type
* fix: preserve chat metadata SDK return type
* chore: refresh plugin SDK API baseline
* test: update plugin enable mock import
* fix: remove duplicate status helper re-export
* fix: preserve strict QA runtime availability errors
2026-08-11 05:06:11 -07:00
Peter Steinberger
dd2aedf08f
refactor: burn export name collision debt ( #121767 )
...
* refactor(tasks): disambiguate lifecycle helpers
* refactor(channels): clarify account and id helpers
* refactor(media): separate SDK facades from cores
* refactor(auto-reply): consolidate command helpers
* refactor(cli): disambiguate registration helpers
* refactor(gateway): clarify runtime and test helpers
* chore(scripts): burn resolved collision debt
* fix(refactor): update remaining core callers
* fix(refactor): update remaining UI callers
* chore(plugin-sdk): refresh API baseline
2026-08-10 18:17:13 -07:00
Vincent Koc
ef11eae39b
fix(plugins): preserve install index state across failures ( #119228 )
...
* fix(plugins): preserve install index policy config
* fix(plugins): restore complete install index state
* fix(plugins): fence install index rollback
* fix(plugins): fence generic install index rollback
* fix(plugins): keep lifecycle lease context private
* test(cli): align plugin index rollback mocks
* test(plugins): enforce index rollback receipts
* fix(plugins): serialize install rollback with config commit
* test(plugins): keep legacy index writer mock private
2026-08-05 01:04:17 +08:00
Vincent Koc
e4aab26d01
fix(cli): avoid repeated migration scans during local agent turns ( #119051 )
...
* fix(cli): avoid repeated state migration scans
* fix(build): preserve source runtime provenance
* fix(cli): persist state checkpoint before plugin convergence
* fix(cli): invalidate migration checkpoints on input changes
* fix(plugins): refresh changed doctor contracts
* fix(plugins): preserve warm Doctor contract indexes
* test(plugins): align manifest registry fixtures
* test(cli): isolate ACP process state
* fix(doctor): persist refreshed plugin indexes
* fix(doctor): verify persisted plugin index from disk
* fix(doctor): fence plugin index persistence
* fix(doctor): retain validated migration lease
* fix(plugins): canonicalize persisted build metadata
* fix(plugins): preserve config policy during install repair
2026-08-04 20:28:16 +08:00
Peter Steinberger
5bfc65d7f4
refactor: remove 3,543 lines of redundant runtime and tests ( #115961 )
...
* refactor: remove 3,543 lines of redundant runtime and tests
* refactor: ratchet production environment variable budget
2026-07-29 11:43:41 -04:00
Peter Steinberger
ddd0b48673
refactor: remove 3,527 lines of runtime and test duplication ( #115626 )
...
* refactor: remove obsolete runtime and test duplication
* test: preserve typed cron and realtime fixtures
2026-07-29 02:21:20 -04:00
Peter Steinberger
6e2d4cbee0
refactor(cli): consolidate regression test fixtures ( #114334 )
2026-07-27 01:45:02 -04:00
Patrick Erichsen
e567a5ffa0
fix: ClawHub plugin installs do not count as installs ( #113133 )
2026-07-23 12:30:15 -07:00
Peter Steinberger
a12e0f26ee
fix(plugins): serialize lifecycle mutations and preserve setup-required installs ( #112763 )
...
* fix(plugins): harden concurrent lifecycle mutations
* fix(update): preserve post-core restart snapshot
* fix(update): retain authoritative plugin records on resume
* fix(update): reconcile plugin records after handoff
2026-07-22 23:25:48 -04:00
Gio Della-Libera
137dabc929
Add plan-first Claw status and remove ( #102296 )
...
* Add plan-first Claw status and remove
* test(claws): cover status and removal
* docs(claws): document status and removal
* fix(claws): report incomplete root state
* test(claws): complete adoption plan fixtures
* fix(claws): revalidate package removal ownership
* style(plugins): format lifecycle uninstall
* fix(claws): align agent removal preconditions
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-21 19:53:08 -07:00
Jesse Merhi
00364ee777
improve: warn before non-ClawHub plugin installs ( #102197 )
...
Merged via squash.
Prepared head SHA: e08d9e737d
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Reviewed-by: @jesse-merhi
2026-07-15 03:25:36 +10:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
a0e591c863
fix(cli): reduce plugin hook fallback noise ( #100554 )
...
* fix(cli): reduce plugin hook fallback noise
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* docs(changelog): defer plugin diagnostic note
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-06 05:26:37 +01:00
Jesse Merhi
ec737ee74d
fix: rebase clawhub install trust ( #81364 )
2026-06-26 18:33:19 +10:00
Vincent Koc
767e8280ac
fix(cli): harden official plugin recovery ( #93325 )
...
* fix(cli): harden official plugin recovery
* fix(config): preserve include write context
* fix(config): reject external include mutations
* fix(config): bind snapshots to config paths
* fix(config): preserve write ownership
* fix(cli): preflight plugin config mutations
* chore(plugin-sdk): refresh api baseline
* test(config): prove install env policy mutations
* fix(cli): preflight plugin updates
* fix(cli): preflight non-npm id migrations
* chore(plugin-sdk): refresh api baseline
* fix(cli): satisfy plugin recovery checks
2026-06-15 23:07:29 +08:00
Peter Steinberger
408ba4c8a0
docs: document remaining cli tests
2026-06-04 19:37:38 -04:00
Vincent Koc
f187bec815
fix(cli): skip plugin loader cache clear on short-lived commands
2026-06-04 15:00:21 +02:00
Josh Avant
154f439c81
Add operator install policy and remove dangerous-code install scanners ( #89516 )
...
* feat: add operator install policy
* test: cover plain-file plugin install code
* fix: preserve locationless install policy findings
* refactor: remove install-time plugin scanner
* test: remove stale plugin install helper
* fix: preserve before-install builtin scan type
* fix: preserve plugin dependency denylist
---------
Co-authored-by: Mainframe <mainframe@MainfraacStudio.localdomain >
2026-06-03 14:17:29 -07:00
Phil
00ca654c74
fix(plugins): persist resolved npm install specs
...
Preserve npm install selectors while recording resolved npm provenance for plugin and hook install/update records. Active `record.spec` stays the requested selector unless explicitly pinned, while resolved npm fields remain available for audit and diagnostics.
Adds focused coverage for hook-pack npm fallback provenance after the maintainer review found that path worth pinning down.
Co-authored-by: Phil <99397913+GitHoubi@users.noreply.github.com >
2026-05-29 09:42:46 +01:00
fuller-stack-dev
669bfdd9b0
test: fix bundled install mock typing
2026-05-26 23:51:53 +01:00
fuller-stack-dev
771675e826
fix: keep bundled OpenClaw plugins image-owned
2026-05-26 23:51:53 +01:00
Vincent Koc
793e300cc5
fix(plugins): support linked source checkouts on Windows
2026-05-25 03:36:06 +02:00
brokemac79
f2cbe9ecc5
fix(channel): refresh wecom onboarding install
2026-05-13 13:52:05 +01:00
Jesse Merhi
6c92324c5f
Revert "Check ClawHub trust before plugin installs ( #81307 )" ( #81363 )
...
This reverts commit 87eb450047 .
2026-05-13 19:34:18 +10:00
Jesse Merhi
87eb450047
Check ClawHub trust before plugin installs ( #81307 )
...
Merged via squash.
Prepared head SHA: 273fd7c20e
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Reviewed-by: @jesse-merhi
2026-05-13 16:31:52 +10:00
Peter Steinberger
0c5bbdaad0
test: dedupe plugin install mock read
2026-05-13 05:27:34 +01:00
Shakker
4ebca4c314
test: count plugin install enable calls
2026-05-12 04:39:10 +01:00
Peter Steinberger
844762e8f2
test: clear plugin install cli broad matchers
2026-05-10 06:12:15 +01:00
Solomon Neas
b81414be45
fix: expose safe restart deferral bypass ( #78658 )
...
Expose the existing safe-restart skipDeferral escape hatch through gateway RPC and the daemon CLI, document the flag, and add restart/CLI regression coverage.
Also keep CLI failure output off the cold bootstrap graph and align CLI guidance expectations needed by current CI.
Co-authored-by: Solomon Neas <solomonneas@users.noreply.github.com >
2026-05-08 20:42:36 -04:00
Shakker
f82d842335
test: clarify plugin install log assertions
2026-05-08 10:20:22 +01:00
the sun gif man
d4b4660026
config: stop automatic writes and guard Nix mutators ( #78047 )
...
Keep startup-derived plugin enablement, gateway auth tokens, control UI origins, and owner-display secrets runtime-only instead of persisting them into openclaw.json.
Refuse config writers, mutating update/plugin lifecycle commands, and doctor repair/token generation in Nix mode with agent-first nix-openclaw guidance.
Verification:
- pnpm check
- pnpm build
- pnpm test -- src/config/io.write-config.test.ts src/config/mutate.test.ts src/config/io.owner-display-secret.test.ts src/gateway/server-startup-config.recovery.test.ts src/gateway/startup-auth.test.ts src/gateway/startup-control-ui-origins.test.ts src/cli/plugins-cli.install.test.ts src/cli/plugins-cli.policy.test.ts src/cli/plugins-cli.uninstall.test.ts src/cli/plugins-cli.update.test.ts src/cli/update-cli.test.ts src/auto-reply/reply/commands-plugins.install.test.ts src/auto-reply/reply/commands-plugins.test.ts src/commands/onboarding-plugin-install.test.ts src/commands/doctor.runs-legacy-state-migrations-yes-mode-without.e2e.test.ts src/commands/doctor/shared/codex-route-warnings.test.ts src/commands/doctor/repair-sequencing.test.ts src/agents/auth-profile-runtime-contract.test.ts src/auto-reply/reply/agent-runner-execution.test.ts
- GitHub CI green on 05a2c71b90
Co-authored-by: Codex <noreply@openai.com >
2026-05-06 14:43:32 +02:00
Peter Steinberger
2eaf8ad712
feat(plugins): support npm pack installs
2026-05-06 09:16:49 +01:00
Peter Steinberger
a91c17c426
fix: explain missing git during plugin install
2026-05-05 05:14:09 +01:00
Vincent Koc
417660b662
docs(plugins): explain catalog install trust
2026-05-04 11:31:29 -07:00
Vincent Koc
daefb5e341
fix(plugins): trust catalog package installs
2026-05-04 11:30:36 -07:00
Vincent Koc
54300e5270
fix(plugins): quiet official npm install scan warnings
2026-05-04 02:40:55 -07:00
Vincent Koc
478887083e
test(plugins): decouple config-gated install fixture
2026-05-03 02:14:42 -07:00
Vincent Koc
4781b46056
fix(channels): load third-party official channel packages
2026-05-03 01:30:43 -07:00
Vincent Koc
140c274335
test(cli): cover official external npm installs without integrity
...
Add catalog-derived coverage so official external npm plugin aliases without integrity pins still use the trusted official install path.
2026-05-02 23:42:26 -07:00
Vincent Koc
2a22eb68aa
fix(plugins): require provenance for official npm trust
...
Require OpenClaw-owned install provenance before granting official npm plugin scanner trust. Direct npm package names now scan normally; catalog, onboarding, and doctor paths pass explicit provenance.\n\nValidation:\n- pnpm test:serial src/plugins/install.npm-spec.test.ts src/cli/plugins-cli.install.test.ts src/commands/onboarding-plugin-install.test.ts src/commands/doctor/shared/missing-configured-plugin-install.test.ts src/channels/plugins/contracts/channel-catalog.contract.test.ts src/commands/auth-choice.apply.plugin-provider.test.ts\n- pnpm test:serial src/plugins/install.test.ts src/plugins/provider-auth-choices.test.ts src/plugins/provider-install-catalog.test.ts src/commands/channel-setup/plugin-install.test.ts\n- pnpm exec oxfmt --check --threads=1 ...\n- node scripts/run-oxlint.mjs ...\n- Crabbox cbx_6157440c9bbe / run_cbd813956eed: pnpm check:changed passed\n\nThanks @fede-kamel and @vincentkoc.
2026-05-02 23:30:45 -07:00
Bek
411df59916
fix(plugins): resolve official plugin install aliases
...
Resolve bare official external plugin IDs through the official catalog before generic npm fallback, preserving explicit npm semantics and catalog integrity through the hook-pack fallback.\n\nFixes #76373.\n\nThanks @bek91 and @vincentkoc.
2026-05-02 22:27:13 -07:00
Vincent Koc
cf21bcf9bf
fix(plugins): keep bare installs on npm for launch
2026-05-02 12:00:06 -07:00
Vincent Koc
e9e7c4325f
fix(plugins): gate bare clawhub installs on readiness
2026-05-02 11:25:39 -07:00
Vincent Koc
0aa8022e88
refactor(plugins): rename clawhub storepack metadata to clawpack
2026-05-01 17:32:22 -07:00
Vincent Koc
20e8769d93
feat(plugins): persist clawhub storepack metadata
2026-05-01 17:05:47 -07:00