Commit Graph

1278 Commits

Author SHA1 Message Date
joshp123 1696121f09 docs: update changelog for runtime plugins
What:
- add a 2026-06-06 changelog entry for declarative runtime plugin sources
- preserve the existing workspace bootstrap migration changelog entry
- list newly supported runtime plugin ids using config-facing names

Why:
- record the user-facing runtime plugin support change before merging PR #99
- keep changelog text concise and factual after adversarial anti-slop review

Tests:
- git diff --check: passed
- subagent anti-slop changelog review: no blocker; wording tightened
- subagent factual changelog review: no factual blocker
- subagent changelog structure review: no blocker; config-id list integrated
2026-06-06 13:33:39 +02:00
joshp123 2cf6290940 docs: simplify runtime plugin user guide
What:
- rewrite the README runtime plugin section around upstream install commands and Nix inputs
- make the shrinkwrap or bundled node_modules packageability rule explicit
- keep lower-level OpenClaw plugin load paths and nix-openclaw tool plugins documented below the main path

Why:
- make the feature readable for end users comparing regular OpenClaw plugin installs to nix-openclaw config
- avoid implying that old supported plugin paths were removed
- align the docs with the locked npm/ClawHub source API and fake-hash flow

Tests:
- git diff --check: passed
- read-only subagent docs review: no blocker; polish integrated
- read-only subagent implementation/docs consistency review: factual findings integrated
2026-06-06 13:27:35 +02:00
joshp123 71b85a7188 feat: support locked runtime plugin sources
What:
- add runtimePluginSources for exact npm and ClawHub runtime plugin packages with lib.fakeHash source hashes
- resolve arbitrary npm/ClawHub package specs through fixed-output Nix builds and reuse the runtime plugin validator
- keep the public source API minimal while validating source conflicts, HTTPS URLs, and optional dependency materialization
- rewrite runtime plugin docs around upstream install surfaces and Nix equivalents

Why:
- let nix-openclaw users install upstream-style npm and ClawHub runtime plugins declaratively
- keep package resolution out of Home Manager activation and OpenClaw runtime
- preserve the Nix convention of fake hash first, then npmDepsHash only when shrinkwrap requires it

Tests:
- node --check nix/scripts/openclaw-runtime-plugin-fetch-source.mjs && node --check nix/scripts/openclaw-runtime-plugin-install.mjs && node --check nix/scripts/openclaw-runtime-plugin-prepare-npm.mjs && node --check nix/scripts/check-openclaw-runtime-plugin-installer.mjs
- node nix/scripts/check-openclaw-runtime-plugin-installer.mjs nix/scripts/openclaw-runtime-plugin-install.mjs
- git diff --check
- nix build --accept-flake-config --no-link .#checks.aarch64-darwin.default-instance
- nix build --accept-flake-config --no-link .#checks.x86_64-linux.default-instance
- nix build --accept-flake-config --impure --no-link --expr '<arbitrary npm diagnostics-prometheus source build>'
- nix build --accept-flake-config --impure --no-link --expr '<arbitrary ClawHub whatsapp shrinkwrap source build>'
- nix build --accept-flake-config --no-link .#checks.aarch64-darwin.ci
- nix build --accept-flake-config --no-link .#checks.x86_64-linux.ci
2026-06-06 13:27:35 +02:00
joshp123 ac11345ec2 docs: explain runtime plugin source model 2026-06-06 13:27:35 +02:00
joshp123 7248ed5bdb docs: use familiar runtime plugin examples 2026-06-06 13:27:35 +02:00
joshp123 6b3b3e0ad7 test: align runtime plugin error assertion 2026-06-06 13:27:35 +02:00
joshp123 5f7a09f098 docs: rewrite runtime plugin user guide 2026-06-06 13:27:35 +02:00
joshp123 c27f68401b docs: mark runtime plugin RFC implementing 2026-06-06 13:27:35 +02:00
joshp123 071e60066d docs: clarify runtime plugin packaging surfaces
What:
- rewrite runtime plugin docs around upstream install commands and equivalent Nix config
- harden bundled dependency admission by requiring declared dependency roots in bundled node_modules
- retry remote JSON fetches during lock updates and clarify bundled-root validation names

Why:
- make PR #99 human-readable for users comparing upstream OpenClaw installs to nix-openclaw
- keep the public API at runtimePlugins ids while making maintainer diagnostics precise
- reduce flaky maintainer lock refreshes from transient npm or ClawHub connection failures

Tests:
- node --check nix/scripts/update-openclaw-runtime-plugin-locks.mjs: passed
- node --check nix/scripts/openclaw-runtime-plugin-install.mjs: passed
- git diff --check: passed
- ./nix/scripts/update-openclaw-runtime-plugin-locks.mjs --check: passed, 34 supported and 4 skipped
- nix build --accept-flake-config --no-link .#checks.aarch64-darwin.runtime-plugin-locks .#checks.aarch64-darwin.config-validity: passed
- nix build --accept-flake-config --no-link .#checks.aarch64-darwin.ci: passed before the final README wording-only fix
2026-06-06 13:27:35 +02:00
joshp123 005fe37406 feat: support packageable shrinkwrapped runtime plugins
What:
- promote shrinkwrapped catalog artifacts that materialize offline, including Matrix, Tlon, and WhatsApp
- normalize shrinkwrap dependency specs only to versions already selected by the lock
- update runtime plugin docs and RFCs to describe the catalog-id support contract and remaining packageability diagnostics

Why:
- users should enable upstream catalog runtime plugins declaratively with runtimePlugins ids, not source-specific install strings
- packageable shrinkwrapped artifacts should be supported instead of documented as unsupported
- remaining skipped rows should point maintainers to concrete upstream publish fixes

Tests:
- node --check nix/scripts/update-openclaw-runtime-plugin-locks.mjs && node --check nix/scripts/check-openclaw-runtime-plugin-locks.mjs && node --check nix/scripts/openclaw-runtime-plugin-install.mjs && node --check nix/scripts/openclaw-runtime-plugin-prepare-npm.mjs && git diff --check
- ./nix/scripts/update-openclaw-runtime-plugin-locks.mjs --check
- nix build --accept-flake-config --no-link .#packages.aarch64-darwin.openclaw-runtime-plugin-acpx .#packages.aarch64-darwin.openclaw-runtime-plugin-codex .#packages.aarch64-darwin.openclaw-runtime-plugin-copilot .#packages.aarch64-darwin.openclaw-runtime-plugin-matrix .#packages.aarch64-darwin.openclaw-runtime-plugin-memory-lancedb .#packages.aarch64-darwin.openclaw-runtime-plugin-tlon .#packages.aarch64-darwin.openclaw-runtime-plugin-whatsapp
- nix build --accept-flake-config --no-link .#checks.aarch64-darwin.runtime-plugin-locks .#checks.aarch64-darwin.config-validity .#checks.aarch64-darwin.gateway-smoke .#checks.aarch64-darwin.default-instance
- nix build --accept-flake-config --no-link .#checks.aarch64-darwin.ci
2026-06-06 13:27:35 +02:00
joshp123 edbd2cb9cc docs: explain runtime plugin install surfaces 2026-06-06 13:27:35 +02:00
joshp123 0cd051058a feat: materialize shrinkwrapped runtime plugins
What:
- add shrinkwrap-mode runtime plugin builds using fetchNpmDeps and npmConfigHook
- resolve ClawHub npm-pack artifacts at lock update time and fail closed when offline materialization fails
- regenerate runtime plugin locks so acpx, codex, copilot, and memory-lancedb are supported catalog ids
- document the packageability boundary without adding npm or ClawHub user config knobs

Why:
- let nix-openclaw support more upstream OpenClaw runtime plugins declaratively through runtimePlugins
- keep mutable plugin installs out of Home Manager activation and gateway runtime
- make unsupported ClawHub/shrinkwrap rows maintainer diagnostics instead of user-facing API choices

Tests:
- node --check nix/scripts/update-openclaw-runtime-plugin-locks.mjs && node --check nix/scripts/check-openclaw-runtime-plugin-locks.mjs && node --check nix/scripts/openclaw-runtime-plugin-install.mjs && node --check nix/scripts/openclaw-runtime-plugin-prepare-npm.mjs
- ./nix/scripts/update-openclaw-runtime-plugin-locks.mjs --check
- nix build .#checks.aarch64-darwin.runtime-plugin-locks
- nix build .#packages.aarch64-darwin.openclaw-runtime-plugin-memory-lancedb
- nix build .#packages.aarch64-darwin.openclaw-runtime-plugin-acpx .#packages.aarch64-darwin.openclaw-runtime-plugin-codex .#packages.aarch64-darwin.openclaw-runtime-plugin-copilot
- nix build .#packages.aarch64-darwin.openclaw-runtime-plugin-slack .#packages.aarch64-darwin.openclaw-runtime-plugin-discord
- nix build .#checks.aarch64-darwin.config-validity .#checks.aarch64-darwin.gateway-smoke
- nix build .#checks.aarch64-darwin.ci
2026-06-06 13:27:35 +02:00
the sun gif man 6bd88e582c Merge pull request #98 from openclaw/josh/workspace-bootstrap-files-api
Replace documents with workspace bootstrap files
2026-06-05 23:18:42 +02:00
joshp123 6c86b81e38 docs: record workspace bootstrap migration 2026-06-05 23:12:39 +02:00
joshp123 85ac5a06bc Replace documents with workspace bootstrap files 2026-06-05 22:47:02 +02:00
joshp123 561aa2809a Link mirrored releases to upstream OpenClaw 2026-06-04 00:45:16 +02:00
joshp123 e54efd0688 fix mirrored release note publishing 2026-06-04 00:21:05 +02:00
joshp123 dc96f9ddea ci: publish mirrored OpenClaw release tags v2026.6.1 2026-06-03 23:59:40 +02:00
joshp123 995098f067 Package OpenClaw 2026.6.1 2026-06-03 23:59:09 +02:00
joshp123 9a06fba241 Carry OpenClaw declaration heap into dts writer
GitHub macOS runners also hit Node's default heap limit in the declaration entrypoint writer after tsc completed. Run that declaration postprocess with the same NODE_OPTIONS used for the TypeScript declaration build.

Tests:

- bash -n nix/scripts/gateway-build.sh nix/scripts/source-checks-build.sh

- git diff --check

- nix build .#openclaw-gateway --accept-flake-config --print-build-logs

- result/bin/openclaw --version
2026-06-01 20:06:16 +02:00
joshp123 3f7b4bf064 Raise TypeScript heap for Darwin OpenClaw builds
The previous Darwin repair moved plugin SDK declaration generation from tsgo to tsc, but GitHub's macOS runner hit Node's default heap limit at that step. Give the TypeScript declaration build an explicit 4GB heap while preserving any existing NODE_OPTIONS.

Tests:

- bash -n nix/scripts/gateway-build.sh nix/scripts/source-checks-build.sh

- git diff --check

- nix build .#openclaw-gateway --accept-flake-config --print-build-logs

- result/bin/openclaw --version

- nix build .#checks.aarch64-darwin.ci --accept-flake-config --print-build-logs
2026-06-01 19:53:13 +02:00
joshp123 40cae966b6 Fix Darwin OpenClaw gateway package build
Use the vendored TypeScript compiler for plugin SDK declaration generation on Darwin instead of spawning the npm tsgo binary. Garnix Darwin builders reject that binary with EPERM, leaving downstream nixos-config builds stuck on cache misses.

Tests:

- nix build .#openclaw-gateway --accept-flake-config --print-build-logs

- result/bin/openclaw --version

- scripts/check-flake-lock-owners.sh

- bash -n scripts/update-pins.sh nix/scripts/gateway-build.sh nix/scripts/source-checks-build.sh

- GITHUB_ACTIONS=true scripts/update-pins.sh select

- ruby -e 'require "yaml"; Dir[".github/workflows/*.{yml,yaml}"].each { |path| YAML.load_file(path); puts "OK #{path}" }'

- nix flake show --accept-flake-config

- nix build .#checks.aarch64-darwin.ci --accept-flake-config --print-build-logs
2026-06-01 19:24:03 +02:00
joshp123 ee71c080a7 Fix dogfood package contents check
What:
- keep the agent workspace template assertion on the stable package contents check
- let the dogfood contents check keep covering its older patched gateway surface without requiring the newer src/agents template path

Why:
- current main CI was red because the dogfood gateway intentionally tracks an older OpenClaw commit that predates src/agents/templates
- the stable OpenClaw package still verifies HEARTBEAT.md is packaged at the runtime bootstrap path

Tests:
- GITHUB_ACTIONS=true scripts/update-pins.sh select
- scripts/check-flake-lock-owners.sh
- node scripts/select-openclaw-release.test.mjs
- bash -n scripts/update-pins.sh
- ruby workflow YAML parse
- nix flake show --accept-flake-config
- nix build --accept-flake-config .#checks.aarch64-darwin.package-contents --no-link
- nix build --accept-flake-config .#checks.aarch64-darwin.package-contents-dogfood --no-link
- nix build --accept-flake-config .#checks.aarch64-darwin.ci --no-link
- scripts/hm-activation-macos.sh
2026-06-01 06:13:52 +02:00
joshp123 2662841486 Package agent workspace templates
Copy src/agents/templates into the gateway package so runtime workspace bootstrap can load HEARTBEAT.md from packageRoot/src/agents/templates.

Add a package-contents assertion for the template path to catch regressions.

Test: nix build --accept-flake-config .#checks.aarch64-darwin.package-contents --no-link
2026-05-31 14:20:11 +02:00
joshp123 9bd2b9f299 Update OpenClaw package to v2026.5.28
Pin the stable source and public macOS app artifact for v2026.5.28.

Refresh generated config/runtime plugin locks, handle duplicate catalog IDs, and align package/default-instance checks with the current package contract.

Tests: scripts/check-flake-lock-owners.sh; node scripts/select-openclaw-release.test.mjs; bash -n scripts/update-pins.sh; workflow YAML parse; GITHUB_ACTIONS=true scripts/update-pins.sh select; node --check nix/scripts/update-openclaw-runtime-plugin-locks.mjs; node nix/scripts/update-openclaw-runtime-plugin-locks.mjs --check; nix flake show --accept-flake-config; nix build --accept-flake-config .#checks.aarch64-darwin.package-contents; nix build --accept-flake-config .#checks.aarch64-darwin.runtime-plugin-locks; nix build --accept-flake-config .#checks.aarch64-darwin.default-instance; nix build --accept-flake-config .#checks.aarch64-darwin.ci; scripts/hm-activation-macos.sh
2026-05-31 06:27:02 +02:00
joshp123 fc112c87a3 fix Darwin plugin SDK declaration build
Use OpenClaw's run-tsgo wrapper for plugin SDK declaration generation on Darwin, where direct tsc OOMs in CI.

Keep Linux on direct tsc because the pinned Linux offline install does not provide node_modules/.bin/tsgo.

Tests: nix build .#checks.aarch64-darwin.ci --no-link

Tests: nix build .#checks.x86_64-linux.source-checks --no-link
2026-05-30 01:55:07 +02:00
joshp123 22f0267ee3 support OpenClaw catalog runtime plugins
Generate pinned runtime-plugin locks and packages from the pinned OpenClaw catalogs.

Route supported ids through programs.openclaw.runtimePlugins only, reject mutable install/source escape hatches, and isolate stale plugin registry state in wrappers.

Harden lock freshness, NPM integrity, host compatibility, and generated-lock validation; collapse the RFC/docs to one catalog-id model.

Tests: node --check nix/scripts/update-openclaw-runtime-plugin-locks.mjs nix/scripts/check-openclaw-runtime-plugin-locks.mjs nix/scripts/check-config-validity.mjs nix/scripts/gateway-smoke.mjs

Tests: node nix/scripts/update-openclaw-runtime-plugin-locks.mjs && node nix/scripts/update-openclaw-runtime-plugin-locks.mjs --check

Tests: nix build .#checks.aarch64-darwin.default-instance .#checks.x86_64-linux.default-instance .#checks.aarch64-darwin.bin-surface .#checks.x86_64-linux.bin-surface --no-link

Tests: nix build .#checks.aarch64-darwin.runtime-plugin-locks .#checks.x86_64-linux.runtime-plugin-locks --no-link

Tests: nix build .#checks.aarch64-darwin.config-validity .#checks.x86_64-linux.config-validity .#checks.aarch64-darwin.gateway-smoke .#checks.x86_64-linux.gateway-smoke --no-link

Tests: nix build all generated runtime-plugin packages plus openclaw packages for aarch64-darwin and x86_64-linux --no-link

Tests: nix flake check --all-systems --no-build
2026-05-30 01:28:17 +02:00
joshp123 773708b523 serialize hosted macOS gateway prebuilds
Prebuild stable and dogfood gateway derivations sequentially in hosted macOS validation before running the same Darwin CI aggregator. This preserves the aggregator hard gate while avoiding concurrent tsdown graphs on the small macOS runner.

Tests: scripts/check-flake-lock-owners.sh; node --test scripts/select-openclaw-release.test.mjs; bash -n scripts/update-pins.sh nix/scripts/gateway-build.sh nix/scripts/source-checks-build.sh; Ruby workflow YAML parse; git diff --check; GITHUB_ACTIONS=true scripts/update-pins.sh select; nix flake show --accept-flake-config; nix build --accept-flake-config .#openclaw-gateway; nix build --accept-flake-config .#openclaw-gateway-dogfood; nix build --accept-flake-config --option max-jobs 1 .#checks.aarch64-darwin.ci; scripts/hm-activation-macos.sh; nix build .#checks.x86_64-linux.ci --accept-flake-config
2026-05-29 08:56:18 +02:00
joshp123 c9b4fd3c29 lower hosted macOS tsdown heap
Keep the Darwin OpenClaw gateway/source-check tsdown build under hosted macOS memory pressure by defaulting the Nix-owned cap to 512 MB. Linux keeps the larger cap.

Tests: scripts/check-flake-lock-owners.sh; node --test scripts/select-openclaw-release.test.mjs; bash -n scripts/update-pins.sh nix/scripts/gateway-build.sh nix/scripts/source-checks-build.sh; Ruby workflow YAML parse; git diff --check; GITHUB_ACTIONS=true scripts/update-pins.sh select; nix flake show --accept-flake-config; nix build .#openclaw-gateway --accept-flake-config; nix build --accept-flake-config --option max-jobs 1 .#checks.aarch64-darwin.ci; scripts/hm-activation-macos.sh; nix build .#checks.x86_64-linux.ci --accept-flake-config
2026-05-29 08:43:36 +02:00
joshp123 c59359cb54 fit hosted macOS gateway builds
Lower the Darwin tsdown heap default to 1024 MB while preserving the Linux 8192 MB default. The 2048 MB cap still aborted in hosted macOS while packaging OpenClaw v2026.5.27; the 1024 MB gateway build and Darwin CI aggregator pass locally.

Use explicit --option max-jobs 1 in hosted macOS CI and yolo validation so the Darwin aggregator asks Nix for serial local builds without changing the checked package contract.

Tests: scripts/check-flake-lock-owners.sh; node --test scripts/select-openclaw-release.test.mjs; bash -n scripts/update-pins.sh; bash -n nix/scripts/gateway-build.sh; bash -n nix/scripts/source-checks-build.sh; workflow YAML parse; git diff --check; GITHUB_ACTIONS=true scripts/update-pins.sh select; nix flake show --accept-flake-config; nix build .#openclaw-gateway --accept-flake-config; nix build --accept-flake-config --option max-jobs 1 .#checks.aarch64-darwin.ci; scripts/hm-activation-macos.sh; nix build .#checks.x86_64-linux.ci --accept-flake-config
2026-05-29 08:09:39 +02:00
joshp123 6ada5611f9 serialize hosted macOS Darwin CI builds
Run the aarch64-darwin CI aggregator with --max-jobs 1 on GitHub-hosted macOS runners. The gate still builds the same checks, but no longer runs concurrent gateway derivations inside the runner memory envelope.

Apply the same command in the yolo macOS validation job and its generated commit evidence.

Tests: scripts/check-flake-lock-owners.sh; node --test scripts/select-openclaw-release.test.mjs; bash -n scripts/update-pins.sh; bash -n nix/scripts/gateway-build.sh; bash -n nix/scripts/source-checks-build.sh; workflow YAML parse; git diff --check; GITHUB_ACTIONS=true scripts/update-pins.sh select; nix flake show --accept-flake-config; nix build .#checks.aarch64-darwin.ci --accept-flake-config --max-jobs 1; scripts/hm-activation-macos.sh; nix build .#checks.x86_64-linux.ci --accept-flake-config
2026-05-29 07:40:32 +02:00
joshp123 0bb60a7e34 fix hosted macOS gateway build memory
Cap the Darwin tsdown heap at 2048 MB while preserving the Linux default, so hosted macOS runners have room for the gateway build process itself.

Keep the release-owned DTS build skipped in the Nix tsdown phase; the package scripts still generate the plugin SDK declarations explicitly afterward.

Tests: scripts/check-flake-lock-owners.sh; node --test scripts/select-openclaw-release.test.mjs; bash -n scripts/update-pins.sh; bash -n nix/scripts/gateway-build.sh; bash -n nix/scripts/source-checks-build.sh; workflow YAML parse; GITHUB_ACTIONS=true scripts/update-pins.sh select; nix flake show --accept-flake-config; nix build .#openclaw-gateway --accept-flake-config; nix build .#checks.aarch64-darwin.ci --accept-flake-config; scripts/hm-activation-macos.sh; nix build .#checks.x86_64-linux.ci --accept-flake-config
2026-05-29 07:30:13 +02:00
joshp123 fae263136a package OpenClaw v2026.5.27
Advance the stable source and public macOS app pins to v2026.5.27 after yolo selected the release but could not promote it.

Keep tsdown packaging inside hosted macOS memory by skipping its full declaration pass; the Nix build still runs the runtime JS build and regenerates plugin SDK declarations separately.

Tests: scripts/check-flake-lock-owners.sh

Tests: node --test scripts/select-openclaw-release.test.mjs

Tests: bash -n scripts/update-pins.sh

Tests: bash -n nix/scripts/gateway-build.sh

Tests: bash -n nix/scripts/source-checks-build.sh

Tests: ruby -e 'require "yaml"; ARGV.each { |f| YAML.load_file(f); puts f }' .github/workflows/ci.yml .github/workflows/pin-stable-openclaw-version.yml

Tests: GITHUB_ACTIONS=true scripts/update-pins.sh select

Tests: nix flake show --accept-flake-config

Tests: nix build .#openclaw-gateway --accept-flake-config

Tests: nix build .#checks.aarch64-darwin.ci --accept-flake-config

Tests: scripts/hm-activation-macos.sh

Tests: nix build .#checks.x86_64-linux.ci --accept-flake-config
2026-05-29 06:58:47 +02:00
joshp123 ee0c3cca01 docs: draft remaining runtime plugin source RFCs
What:
- add a source-artifact RFC for pinned git, path, archive, and npm-pack-adjacent runtime plugin sources
- add a compatible bundle and marketplace RFC to keep Claude/Codex/Cursor bundle imports separate from native runtimePlugins

Why:
- cover the remaining OpenClaw plugin install source classes without turning arbitrary npm support into a catch-all
- preserve clear Nix boundaries around pinned artifacts, mutable marketplace state, live local links, and compatible bundle capability mapping

Tests:
- git diff --check: pass
- nix flake check --all-systems --no-build --show-trace: pass
2026-05-29 04:01:27 +02:00
joshp123 848df93596 fix: isolate runtime plugins from persisted registry state
What:
- set OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY for managed gateway processes when runtimePlugins renders Nix-managed load paths
- assert generated runtime plugin config does not write plugins.installs
- cover launchd, systemd, and schema rejection for config.plugins.installs in the default-instance check

Why:
- keep Nix-selected OpenClaw runtime plugins from being satisfied or shadowed by stale mutable plugin registry state
- preserve the declarative runtimePlugins lane without running or impersonating openclaw plugins install

Tests:
- git diff --check: pass
- nix eval .#checks.aarch64-darwin.default-instance.drvPath --show-trace: pass
- nix eval .#checks.x86_64-linux.default-instance.drvPath --show-trace: pass
- nix flake check --all-systems --no-build --show-trace: pass
- nix build .#checks.aarch64-darwin.default-instance .#checks.aarch64-darwin.config-validity --no-link --show-trace: pass
2026-05-29 03:55:24 +02:00
joshp123 7a387856cd docs: draft user-pinned npm plugin RFC
Add the arbitrary npm runtime-plugin RFC. The design keeps runtimePlugins as the selection surface, uses closed data-only npm selectors, makes nix-openclaw call the approved builder, rejects mutable npm/install-record paths, and gates README docs on proof.

Validation: git diff --check; nix flake check --no-build; adversarial RFC review passed.
2026-05-29 03:42:08 +02:00
joshp123 ac9af8aa92 docs: draft catalog-pinned external plugin RFC
Add the next runtime-plugin source RFC for OpenClaw catalog-pinned external npm plugins. Keep the current pin report-only because WeCom, Yuanbao, and Weixin have runtime dependencies without package-owned locks or bundled node_modules.

Validation: git diff --check; nix flake check --no-build.
2026-05-29 03:06:15 +02:00
joshp123 8a1e5d013d docs: draft ClawHub runtime plugin RFC
Add the next runtime-plugin source RFC for official ClawHub artifacts, including deterministic source selection, exact-version ClawHub resolver endpoints, fixed-output artifact locking, drift checks, trust gates, and user-facing install docs.

Validation: git diff --check; nix flake check --no-build; adversarial RFC review passed.
2026-05-29 02:40:28 +02:00
joshp123 33ac483a5b docs: draft runtime plugin dependency materialization RFC
Add the next-slice RFC for official runtime plugins whose published tarballs are shrinkwrapped but not self-contained. Clarify that memory-lancedb can be the first materialized candidate, codex remains skipped behind lifecycle/runtime proof, and ACPX stays on the bundled dist-runtime path.

Also tighten the prior runtime plugin RFCs so ACPX is no longer treated as a materialization candidate and cold discovery uses plugins list --json.

Validation: git diff --cached --check; git diff --check; nix flake check --no-build; adversarial review agents passed with no blocking findings.
2026-05-29 02:19:53 +02:00
joshp123 8932e63dbe docs: draft official runtime plugin coverage RFC 2026-05-29 01:27:31 +02:00
joshp123 7b32a9c71d Add declarative runtime plugin support
Package curated OpenClaw runtime plugins from pinned release-matched npm tarballs and expose them through runtimePlugins.

Wire selected plugins through OpenClaw load paths and entries, reject the old customPlugins npm bridge, and document the supported split between OpenClaw runtime plugins and nix-openclaw plugins.

Tests: nix build --no-link .#openclaw-runtime-plugin-slack .#openclaw-runtime-plugin-discord .#openclaw-runtime-plugin-brave .#openclaw-runtime-plugin-diagnostics-prometheus; nix build --no-link .#checks.aarch64-darwin.default-instance .#checks.aarch64-darwin.config-validity .#checks.aarch64-darwin.gateway-smoke; nix flake show --json; nix flake check --no-build; git diff --cached --check
2026-05-29 01:01:46 +02:00
Peter Steinberger 8b9acbb691 docs: position README banner 2026-05-28 20:48:59 +01:00
Peter Steinberger c3e524bee4 ci: treat failed stable pin candidates as no-promote 2026-05-28 20:27:15 +01:00
Peter Steinberger c65bd282fb fix: normalize pnpm store integer timestamps 2026-05-28 19:49:26 +01:00
Peter Steinberger d4fb1516fc docs: add README banner 2026-05-28 19:44:09 +01:00
joshp123 ed00b17038 fix: build qmd wrapper install script correctly 2026-05-28 14:16:20 +02:00
joshp123 544b2f877f fix: expose Nix-managed skills through load paths
What:
- wire nix-openclaw plugin skills and declarative skills through OpenClaw skills.load.extraDirs
- stop materializing Nix-managed skills into instance workspace/skills
- reconcile old manifest-owned workspace skill copies during activation
- add regression checks for custom plugin skills, multi-agent workspaces, raw skills, and stale workspace cleanup

Why:
- separate agent workspaces must be able to discover Nix-managed plugin skills
- OpenClaw owns workspace skill loading and generated plugin skill state; nix-openclaw should pass stable load roots instead of copying skills into one workspace
- old nix-openclaw-managed workspace copies must not shadow the new load-path based config

Tests:
- nix build .#checks.aarch64-darwin.ci: passed
- nix build .#checks.aarch64-darwin.default-instance: passed
- nix build .#checks.aarch64-darwin.workspace-materializer: passed
- nix fmt -- --fail-on-change: passed
- git diff --cached --check && git diff --check: passed
2026-05-28 12:09:25 +02:00
joshp123 d28ddb1c42 docs: clarify plugin support boundary
What:
- distinguish OpenClaw runtime plugins from nix-openclaw plugins near the front of the README
- remove public npm runtime plugin install guidance
- mark the npm runtime bridge as implementation-only until structural plugin support is fixed

Why:
- prevent users from treating nix-openclaw plugin docs as support for ClawHub/npm/channel plugins
- keep the current supported plugin surface explicit

Tests:
- git diff --check: passed
- nix build --accept-flake-config .#checks.aarch64-darwin.ci --no-link: passed
2026-05-27 21:24:16 +02:00
openclaw-ci 892f90a2ca 🤖 codex: mirror OpenClaw stable source v2026.5.26
What:
- update nix-openclaw to the latest stable OpenClaw source release
- refresh generated config options from that source
- keep the macOS app pin on the newest public app artifact

Why:
- keep source-built OpenClaw current without blocking on public macOS app asset lag

Tests:
- nix build .#checks.x86_64-linux.ci --accept-flake-config
- nix build .#checks.aarch64-darwin.ci --accept-flake-config
- scripts/hm-activation-macos.sh
2026-05-27 13:56:09 +00:00
joshp123 5d83e11f0d Fix SecretRef passthrough in generated config
Generate same-shape source-discriminated SecretRef unions as one submodule so env/file/exec SecretRefs validate consistently.

Warn at Nix evaluation time when configs use OpenClaw exec SecretRefs, and document the supported env/file secret path versus pass-through exec compatibility.

Tests: nix fmt --accept-flake-config; git diff --check; regenerate generated config from pinned OpenClaw source; nix build .#checks.aarch64-darwin.default-instance --no-link -L --accept-flake-config; nix build .#checks.aarch64-darwin.config-validity --no-link -L --accept-flake-config; nix build .#checks.aarch64-darwin.ci --no-link -L --accept-flake-config
2026-05-27 11:31:49 +02:00