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)
What: add clawdis-setup and clawdis-doctor scripts, wire overlay, update RFC status.\nWhy: provide a Nix-friendly onboarding flow and basic diagnostics.\nTests: not run.
What: add Clawdis package overlay, HM module with launchd, flake outputs, and Telegram-first docs (zero-to-clawdis, copypasta, quickstarts).\nWhy: implement the RFC with a macOS-only, technically light onboarding path.\nTests: not run.