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
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.
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.
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
Add a hash-backed npm runtime plugin path that lowers OpenClaw-style npm sources into immutable plugin roots and wires them through the existing Home Manager plugin resolver. Keep flake-backed customPlugins unchanged and document the boundary for agents and maintainers.
Tests: nix build .#checks.aarch64-darwin.default-instance --no-link; nix flake check --no-build; git diff --check
Co-authored-by: Codex <noreply@openai.com>
Align the openclawPlugin.plugins contract with OpenClaw itself: load paths control discovery, while plugins.entries.<id>.enabled controls activation.
Rename the contract field to enabled, reject the accidental enable spelling, and keep plugin roots on plugins.load.paths even when their generated activation default is false.
Extend the eval fixture to prove enabled=false defaults, user overrides from true to false, and user overrides from false to true.
Tests: nix build --accept-flake-config .#checks.x86_64-linux.default-instance --no-link --print-out-paths; nix eval --accept-flake-config --raw .#checks.aarch64-darwin.package-contents.drvPath; nix build --accept-flake-config .#checks.aarch64-darwin.package-contents --no-link --dry-run; nix build --impure --accept-flake-config .#darwinConfigurations.mac-mini.system --no-link --override-input nix-openclaw path:/Users/josh/code/nix/nix-openclaw --dry-run
Upstream review: fetched openclaw/openclaw origin/main at 36f847a60e and checked plugin discovery/config semantics before finalizing the contract.
Co-authored-by: Codex <noreply@openai.com>
Install and validate OpenClaw's dist-runtime tree so bundled runtime plugins such as ACPX are present in the Nix gateway output.
Extend the existing plugin flake contract with immutable OpenClaw plugin roots, wire those roots into generated config, and add eval fixtures proving default enablement, user overrides, and disabled entries.
Document the boundary: curated plugin artifacts are CI/Garnix-cached by nix-openclaw, while arbitrary npm or ClawHub specs need deterministic lock/hash-backed Nix artifacts cached by the user's store/cache instead of runtime npm installs.
Tests: nix build --accept-flake-config .#checks.x86_64-linux.default-instance --no-link --print-out-paths; nix eval --accept-flake-config --raw .#checks.aarch64-darwin.package-contents.drvPath; nix build --accept-flake-config .#checks.aarch64-darwin.package-contents --no-link --dry-run; nix build --impure --accept-flake-config .#darwinConfigurations.mac-mini.system --no-link --override-input nix-openclaw path:/Users/josh/code/nix/nix-openclaw --dry-run
Co-authored-by: Codex <noreply@openai.com>
What:
- document the QMD/mcporter packaging decision for maintainers
- capture the native OpenClaw plugin gap and proposed nix-openclaw fix
Why:
- preserve the Discord investigation so the feature work can resume later
- distinguish PR #81's bundled manifest fix from external native plugin support
Tests:
- git diff --check: pass
- nix build .#checks.aarch64-darwin.package-contents --no-link: pass
Co-authored-by: Codex <noreply@openai.com>
What:
- consume QMD from nix-openclaw-tools instead of a separate upstream flake input
- expose QMD as an internal OpenClaw battery on Darwin and Linux
- add an opt-in Home Manager qmd model prewarm activation
- keep plugin packages off the user's shell PATH by default while preserving the runtime PATH
Why:
- nix-openclaw-tools owns reproducible tool packages and cacheable plugin metadata
- nixos-config should configure OpenClaw, not hand-wire runtime tools
Tests:
- nix build .#checks.aarch64-darwin.package-contents --accept-flake-config --no-link
- nix build .#checks.aarch64-darwin.qmd-runtime --accept-flake-config --no-link
- nix build .#checks.aarch64-darwin.bin-surface .#checks.aarch64-darwin.config-validity .#checks.aarch64-darwin.gateway-smoke --accept-flake-config --no-link
- nix eval .#checks.x86_64-linux.default-instance.drvPath --accept-flake-config
Fix the documented minimal Home Manager plugin option to use customPlugins, remove the stale duplicate skill-file builder, and assert duplicate plugin skill paths against the paths Home Manager actually installs.
Add local plugin fixtures so the default-instance check covers the agent-facing customPlugins path and duplicate skill collisions.
What:
- remove legacy option migrations for programs.openclaw.firstParty/plugins
- add explicit removed-option failures pointing to bundledPlugins/customPlugins
- add plugin-catalog.nix as single source of truth for bundled plugins
- generate bundled option toggles, source map, linux check selection, and tool list from the catalog
- update docs/wording from first-party to bundled plugins
Why:
- enforce forward-only API changes with fail-fast errors
- eliminate duplicated plugin lists drifting across module/check/tool surfaces
- keep consumer configuration mental model simple: bundledPlugins + customPlugins only
Tests:
- nix flake check --no-build (pass)
- Add golden paths doc and link from README\n- Default workspaceDir to stateDir/workspace and pin agents.defaults.workspace when unset\n- Fix macOS app defaults domain and add openclaw.nixMode toggle
What:
- add bundledPlugins/customPlugins options
- alias firstParty/plugins to new names
- update docs + checks to new naming
Why:
- clearer split between bundled and custom plugins
Tests:
- not run (config/docs change)
Rearranged from 4x1 to 2x2 grid for better readability.
Fixed 'Me neither.' bubble to have spiky edges matching other responses.
Co-Authored-By: DJTBOT <clawdis@local>
Tremendous meme based on the classic howfuckedismydatabase.com comic.
Explains the Nix installation experience PERFECTLY - believe me!
Co-Authored-By: DJTBOT <clawdis@local>
What:
- add agent-first templates and human/agent steps
- embed full onboarding in README as single source of truth
- remove indirection docs and template step files
Why:
- make onboarding executable for zero-context agents
Tests:
- not run (docs/templates only)
What:
- add agent-first guide + operator reference docs
- restore flake with package/app outputs and lockfile
- align HM module defaults and sources with public repo
Why:
- make the repo agent-first and fully declarative per RFC
Tests:
- nix flake lock
What:
- remove non-RFC docs and flake scaffolding for a clean restart
- rewrite README and RFC around agent-first, declarative bootstrap
- clarify scope boundaries between public repo and personal configs
Why:
- eliminate snippet-driven docs and align with agent-first success criteria
Tests:
- not run (docs cleanup)
What:
- note that zero-to-clawdis creates a new local flake, not a personal nixos-config
Why:
- reinforce separation between public docs and private machine configs
Tests:
- not run (docs only)
What:
- add explicit RFC + README scope boundaries
- replace personal launchd label with neutral com.nix-clawdis.gateway
- switch docs to <user> placeholders and matching launchctl commands
Why:
- avoid confusion between RFC, public repo, and personal nixos-config
Tests:
- not run (docs/config updates only)
What:
- add Definition of Done to RFC and align Telegram-first scope
- replace status/health checks with launchd/log verification
- update quickstart, zero-to-clawdis, and agent copypasta
Why:
- match current gateway-only implementation and make verification explicit
Tests:
- not run (docs updates only)
What:
- drop clawdis-setup/doctor packages and references
- simplify HM package list and RFC outputs
- trim docs mentioning setup/doctor
Why:
- keep onboarding agent-first and avoid extra CLI tooling
Tests:
- not run (docs/config changes only)