Commit Graph

80 Commits

Author SHA1 Message Date
joshp123
c8f8e92aba fix: test bundled public surface loading
Some checks failed
CI / linux (push) Has been cancelled
CI / macos (push) Has been cancelled
The stable and dogfood OpenClaw source pins need different public-surface hardlink patch shapes while upstream is still catching up. Select the right patch per source and make package contents import the OpenAI provider policy public surface, which is the path the gateway uses before a model run.

Tests: nix fmt --accept-flake-config; git diff --check; remote mac-mini nix build .#checks.aarch64-darwin.package-contents-dogfood --no-link; remote mac-mini nix build .#checks.aarch64-darwin.package-contents --no-link

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 01:50:13 +08:00
joshp123
0b25e889a5 fix: keep dogfood public surface hardlink-safe
Dogfood now points at an OpenClaw commit with the broader plugin hardlink work merged, but the bundled public-surface loader still needs nix-openclaw's package-root hardlink compatibility patch. Keep that patch active for dogfood and add a package-content check that fails if the compiled loader rejects hardlinked package files again.

Tests: nix fmt --accept-flake-config; git diff --check; remote mac-mini nix build .#checks.aarch64-darwin.package-contents-dogfood --no-link; remote mac-mini nix build .#checks.aarch64-darwin.package-contents --no-link; remote mac-mini nix build .#checks.aarch64-darwin.default-instance --no-link

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 01:30:55 +08:00
joshp123
26c58273e7 fix: add OpenClaw dogfood gateway build
What:\n- expose temporary dogfood package outputs pinned to an upstream OpenClaw commit with the Nix-mode fixes merged\n- let source pins disable downstream patches that are already upstream\n- build current upstream plugin assets through upstream asset hooks, while keeping the 2026.5.7 path working\n- supply the fs-safe Git dependency as an immutable Nix source for the dogfood build\n\nWhy:\n- private deployments need to dogfood upstream fixes before the next OpenClaw release without making the published stable package depend on runtime npm work\n\nTests:\n- remote Mac mini: nix build --accept-flake-config .#openclaw-gateway-dogfood --no-link\n- remote Mac mini: nix build --accept-flake-config .#openclaw-dogfood --no-link\n- remote Mac mini: nix build --accept-flake-config .#checks.aarch64-darwin.default-instance --no-link\n- remote Mac mini: nix build --accept-flake-config .#checks.aarch64-darwin.package-contents --no-link\n\nCo-authored-by: Codex <noreply@openai.com>
2026-05-09 00:37:43 +08:00
joshp123
11d69d8a1c feat: package npm runtime plugins for Nix
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>
2026-05-08 18:29:45 +08:00
joshp123
e7d60654b8 fix: package OpenClaw runtime plugin tree
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>
2026-05-08 12:00:05 +08:00
joshp123
7cbc79ce52 Install only bundled plugin manifests
The gateway runtime loads built plugins from dist/extensions, so the source extensions tree only needs manifest metadata for compatibility. Copy only openclaw.plugin.json files and assert the memory-core manifest exists in both compatibility and runtime trees.

Tests: sh -n nix/scripts/gateway-install.sh nix/scripts/check-package-contents.sh; git diff --check; nix build --dry-run .#checks.aarch64-darwin.package-contents .#checks.x86_64-linux.package-contents --accept-flake-config
2026-05-06 13:08:57 +02:00
joshp123
0dae522382 Build gateway outside the output tree
Use a normal temporary build root and copy only final runtime outputs into the Nix output. This avoids the Garnix stall caused by recursively deleting the temporary OpenClaw source tree from inside $out during install.

Tests: sh -n nix/scripts/build-root.sh nix/scripts/gateway-install.sh; git diff --check; nix build --dry-run .#checks.aarch64-darwin.qmd-runtime .#checks.x86_64-linux.qmd-runtime --accept-flake-config
2026-05-06 12:59:49 +02:00
joshp123
87f883a6c8 Speed up gateway build-root cleanup
Move the temporary output build root out of the final output instead of recursively deleting it during install, and time the final wrapper/cleanup steps so Garnix logs show where gateway builds stall.

Tests: sh -n nix/scripts/build-root.sh nix/scripts/gateway-install.sh; git diff --check; nix build --dry-run .#checks.aarch64-darwin.qmd-runtime .#checks.x86_64-linux.qmd-runtime --accept-flake-config
2026-05-06 12:51:50 +02:00
joshp123
cb9ec56612 Bound pnpm store extraction threads
Use NIX_BUILD_CORES for zstd extraction instead of --threads=0. Garnix macOS builders were hanging in the pnpm-store extraction step on the fresh OpenClaw gateway build.

Tests: git diff --check. Full package proof is delegated to Garnix because the fresh v2026.5.5 gateway source build is intentionally not run locally.
2026-05-06 12:26:35 +02:00
joshp123
6a5352eba7 Avoid duplicate gateway shebang patch
Remove the install-phase patchShebangs pass over node_modules/.bin. The build phase already runs patchShebangs before packaging, and the second pass can hang Garnix while not materially changing the output.

Tests: git diff --check. Full package proof is delegated to Garnix because the fresh v2026.5.5 gateway source build is intentionally not run locally.
2026-05-06 12:07:58 +02:00
joshp123
3a0c35bf68 Fix QMD model prewarm activation
Use QMD's real update/embed/query commands instead of the nonexistent qmd pull path, and keep the activation script in nix/scripts instead of inline Nix.

Tests: nix build .#checks.aarch64-darwin.config-validity .#checks.aarch64-darwin.qmd-runtime --no-link; nix eval .#checks.x86_64-linux.qmd-runtime.name; scripts/check-flake-lock-owners.sh; git diff --check
2026-05-06 11:09:33 +02:00
joshp123
7f55c0bd7b Pin safe-write Python in OpenClaw wrapper
Bundle a Nix Python path inside the OpenClaw batteries wrapper for the safe-write helper. This avoids macOS /usr/bin/python3 triggering the Xcode command-line-tools shim on headless hosts, without exposing Python on the user PATH.

Tests: nix build .#checks.aarch64-darwin.qmd-runtime --no-link; nix eval .#checks.x86_64-linux.qmd-runtime.name; scripts/check-flake-lock-owners.sh; git diff --check
2026-05-06 10:37:25 +02:00
joshp123
0a70262dda run OpenClaw runtime postbuild in Nix
What:
- run upstream runtime-postbuild after tsdown in the gateway build
- assert runtime-model-auth stable alias points at a real generated target

Why:
- bundled provider auth imports need the upstream stable runtime alias materialized in the Nix package
- package-contents should catch missing runtime aliases before deployment

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
2026-05-06 09:44:36 +02:00
joshp123
e93384082a fix: keep Nix OpenClaw config immutable
Some checks failed
CI / linux (push) Has been cancelled
CI / macos (push) Has been cancelled
What:
- make the downstream Nix-mode auto-enable patch runtime-only and remove broken degraded-state references
- allow plugin-owned channels.<id> config in generated Home Manager options
- add Telegram channel config coverage to the config validity check
- document the Nix/OpenClaw boundary in AGENTS.md

Why:
- Nix-owned openclaw.json must not be mutated at runtime
- plugin channel config should stay valid even when upstream core schema does not type every plugin-owned channel key
- future agents need the boundary documented in the packaging repo

Tests:
- patch -d /tmp/openclaw-v2026.5.4 -p1 --dry-run < nix/patches/skip-plugin-auto-enable-persist-in-nix-mode.patch: passed
- generator round-trip against OpenClaw 325df3ef produced no diff: passed
- nix eval --accept-flake-config --raw .#checks.aarch64-darwin.config-validity.drvPath: passed
- nix eval --accept-flake-config --raw .#checks.x86_64-linux.config-options.drvPath: passed
- nix build --accept-flake-config .#checks.aarch64-darwin.config-validity --no-link --print-build-logs: passed
2026-05-05 22:26:40 +02:00
joshp123
3abd2d14cb feat: bundle QMD for opt-in local memory
Make QMD the Nix-supported batteries-included local memory backend by pinning the upstream QMD flake and adding qmd to the private openclaw wrapper PATH.

Keep QMD opt-in through upstream OpenClaw config with memory.backend = qmd, and document that builtin memorySearch.provider = local remains an escape hatch rather than the primary supported Nix path.

Also point nix run .#openclaw at the batteries-included bundle so app execution gets the same internal runtime PATH as the package.

Tests: sh -n nix/scripts/check-openclaw-qmd-runtime.sh; scripts/check-flake-lock-owners.sh; git diff --check; nix flake show --accept-flake-config --json; nix build .#checks.aarch64-darwin.qmd-runtime .#checks.aarch64-darwin.bin-surface .#packages.aarch64-darwin.openclaw --accept-flake-config --no-link --print-out-paths; nix build .#checks.x86_64-linux.qmd-runtime --accept-flake-config --no-link --print-out-paths; nix build .#checks.aarch64-darwin.ci --accept-flake-config --no-link --print-out-paths; nix build .#packages.x86_64-linux.openclaw .#checks.x86_64-linux.bin-surface --accept-flake-config --no-link --print-out-paths; scripts/hm-activation-macos.sh; nix build .#checks.x86_64-linux.gateway-smoke --accept-flake-config --no-link --print-out-paths; nix run .#openclaw --accept-flake-config -- --version; bash -n scripts/update-pins.sh; node --check scripts/select-openclaw-release.mjs; node --check scripts/select-openclaw-release.test.mjs; node scripts/select-openclaw-release.test.mjs
2026-05-05 20:24:25 +02:00
joshp123
eb9a52bf96 fix: keep runtime tools internal
Expose only the openclaw command from the default package while keeping bundled runtime tools on the wrapper PATH. Remove the public openclaw-tools package output and document runtime tools as implementation detail.

Tests: nix build .#packages.aarch64-darwin.openclaw .#checks.aarch64-darwin.bin-surface .#packages.x86_64-linux.openclaw .#checks.x86_64-linux.bin-surface --accept-flake-config --no-link --print-out-paths; nix build .#checks.aarch64-darwin.ci --accept-flake-config --no-link --print-out-paths; git diff --check --cached
2026-05-05 18:14:08 +02:00
joshp123
c6a4cfc9d7 fix: keep plugin auto-enable declarative in Nix mode
Patch the gateway startup path so OPENCLAW_NIX_MODE skips plugin auto-enable persistence instead of replacing a Nix-managed config symlink.

Plugins remain a declarative Nix config choice under the Home Manager module; runtime auto-enable can still report what it would have changed.

Tests: git diff --cached --check; patch -p1 --dry-run against pinned OpenClaw source; nix build .#packages.aarch64-darwin.openclaw-gateway --accept-flake-config --no-link --print-out-paths; OPENCLAW_NIX_MODE symlink-clobber smoke against the native gateway; nix build .#packages.x86_64-linux.openclaw-gateway --accept-flake-config --no-link --print-out-paths
2026-05-05 15:48:56 +02:00
joshp123
e739f5888f fix: install bundled gateway skills
What:
- copy upstream bundled skills into the gateway package output
- make package-contents require bundled SKILL.md files under lib/openclaw/skills

Why:
- upstream bundled skills are part of the runnable OpenClaw package contract
- package checks should catch missing skills before users hit runtime failures

Tests:
- git diff --cached --check: passed
- temporary worktree with only this staged patch: nix build #checks.x86_64-linux.package-contents --accept-flake-config --no-link --print-out-paths: /nix/store/zqwb4x85cwww8fx5gzj0asxy1ic5i373-openclaw-package-contents-unstable-8b2a6e57
2026-05-05 13:18:39 +02:00
joshp123
8b24b5d515 fix: generate usable secret provider options
What:
- flatten source-discriminated object unions when the variants have different fields
- regenerate secrets.providers as one submodule with a source enum and nullable variant fields
- add a default-instance regression for file-backed secret providers

Why:
- Nix cannot reliably merge attrsOf oneOf submodules for secrets.providers
- the generated module should preserve upstream config shape while staying evaluable

Tests:
- git diff --cached --check: passed
- temporary worktree with only this staged patch: nix build #checks.x86_64-linux.default-instance --accept-flake-config --no-link --print-out-paths: /nix/store/2zihci7mhlk3mcbczmyw0s401n162vk7-openclaw-default-instance-1
- temporary worktree with only this staged patch: nix build #checks.x86_64-linux.config-options --accept-flake-config --no-link --print-out-paths: /nix/store/4yrjhllg88ydyf70yqnkdmndbrv7y2c6-openclaw-source-checks-unstable-8b2a6e57
2026-05-05 13:07:48 +02:00
joshp123
ba7d1573a4 ci: focus OpenClaw checks on Nix package contract
What:
- replace the misleading gateway test check with a source-checks build/config-options check
- remove the full upstream Vitest suite from the hard Nix promotion gate
- document that yolo validates the Nix-owned package contract, not upstream source test health

Why:
- the current full packageable upstream release builds as a package but has failing upstream Vitest cases when rebuilt from source
- nix-openclaw should block on packaging, smoke startup, config generation, module activation, and app artifacts rather than an upstream-owned unit test suite

Tests:
- git diff --check
- bash -n scripts/update-pins.sh scripts/hm-activation-macos.sh nix/modules/home-manager/openclaw-launchd-relink.sh nix/scripts/source-checks-build.sh nix/scripts/source-checks-check.sh nix/scripts/config-options-check.sh
- ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); YAML.load_file(".github/workflows/yolo-update.yml")'
- nix eval --accept-flake-config --raw .#checks.x86_64-linux.source-checks.drvPath
- nix eval --accept-flake-config --raw .#checks.x86_64-linux.ci.drvPath
- nix flake show --accept-flake-config --all-systems --json
- scripts/check-flake-lock-owners.sh
- node scripts/select-openclaw-release.test.mjs
- scripts/hm-activation-macos.sh
- nix build --accept-flake-config -L .#checks.aarch64-darwin.ci
2026-05-05 10:52:55 +02:00
joshp123
a468354c55 fix: harden OpenClaw Nix release packaging
What:
- make openclaw the canonical agent-first package surface and document the maintainer automation contract
- select the newest full packageable OpenClaw stable release and report newer assetless stable releases
- validate public CLI config, smoke-test gateway runtime, and share source checks across gateway tests/config option generation
- fix Nix-store hardlink runtime handling and Linux builder scratch space
- add daily Codex maintainer automation for direct-to-main repair after full gates
- block yolo promotion if promote materializes a different diff than validation

Why:
- keep nix-openclaw reliable for macOS and Linux users while upstream release assets lag source tags
- make yolo and daily automation uphold one clean Nix package contract

Tests:
- node scripts/select-openclaw-release.test.mjs
- bash -n scripts/update-pins.sh
- sh -n nix/scripts/build-root.sh nix/scripts/gateway-install.sh nix/scripts/gateway-prebuild.sh nix/scripts/gateway-tests-check.sh nix/scripts/source-checks-check.sh
- ruby -e 'require "yaml"; YAML.load_file(".github/workflows/yolo-update.yml")'
- scripts/check-flake-lock-owners.sh
- 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 -L
- nix build .#checks.x86_64-linux.ci --accept-flake-config --max-jobs 1 -L
2026-05-05 08:00:13 +02:00
joshp123
53aac0dce0 fix(gateway-tests): follow upstream vitest config path
Some checks failed
CI / linux (push) Has been cancelled
CI / macos (push) Has been cancelled
OpenClaw v2026.4.14 moved the gateway Vitest config under test/vitest/, but
our Nix gateway test seam still hard-coded the old root-level path. Linux CI
therefore failed before tests even started.

Prefer the old path when present, but fall back to the new upstream path so the
stable release mirror works across both layouts.

Tests:
- bash -n nix/scripts/gateway-tests-check.sh
2026-04-14 18:15:58 +02:00
joshp123
c2e8301f51 fix(ci): resolve vitest entrypoint in gateway tests
Some checks are pending
CI / linux (push) Waiting to run
CI / macos (push) Waiting to run
What:
- restore the direct vitest entrypoint lookup in nix/scripts/gateway-tests-check.sh
- execute the discovered vitest module with node instead of relying on pnpm exec lookup

Why:
- the history rewrite dropped one real recovery fix and reintroduced the gateway-tests runner failure on Linux
- the green line already proved the direct-entrypoint approach works reliably in the Nix check environment

Tests:
- verified failing CI run 24246896697: ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Command "vitest" not found
2026-04-10 16:08:44 +02:00
joshp123
0d60673f02 fix(gateway-tests): mock provider and web-search plugin surfaces
Why:
- disabling bundled plugins globally fixed provider leakage but broke send tests that rely on bundled channels
- Linux gateway tests need bundled channels, but not real provider model augmentation or web search/fetch provider discovery

What:
- keep the gateway test env unchanged
- patch gateway test mocks to stub provider model augmentation to []
- patch gateway test mocks to stub runtime and public-artifact web search/fetch provider discovery to []
- keep the change in the Nix postpatch seam only

Tests:
- sh -n nix/scripts/gateway-postpatch.sh
- nix eval --raw --accept-flake-config .#checks.x86_64-linux.gateway-tests.src.outPath
2026-04-10 16:03:09 +02:00
joshp123
659c9f5973 chore: repin openclaw to v2026.4.9
Move nix-openclaw to the current OpenClaw daily release and refresh the
release-coupled generated artifacts.

Also fix the Nix build wrapper for A2UI bundling by running the same tsc +
rolldown steps directly instead of relying on upstream's nested pnpm runner,
which exits silently inside the Nix build environment.

Verification:
- nix build .#openclaw-gateway --accept-flake-config -L
- nix build .#checks.aarch64-darwin.ci --accept-flake-config -L
- scripts/hm-activation-macos.sh (expected local USER mismatch: josh vs runner)
2026-04-10 16:03:01 +02:00
joshp123
aa27809dc5 fix(nix): align the gateway build and test contract with upstream artifacts
What:
- harden the package build against broken prune symlinks and missing plugin metadata
- make the config-options and gateway test checks call the installed CLIs directly
- restore the bundled runtime-deps staging patch for Nix builds
- rebuild the test prebuild around the exact generated artifacts the Nix checks consume

Why:
- the release recovery failures were not random product regressions; they were Nix-owned build and test contract drift
- nix-openclaw needed the same plugin manifests, plugin-sdk artifacts, runtime deps staging, and local CLI resolution that upstream assumes

Tests:
- final green CI run on main: 24217118174
2026-04-10 16:02:51 +02:00
joshp123
15a35bc58d fix(ci): fail stale yolo runs and unblock offline A2UI build
What:
- export node_modules/.pnpm/node_modules/.bin in gateway build before canvas:a2ui:bundle
  so rolldown is found in sandbox/offline builds
- track openclaw bump failure in scripts/update-pins.sh and fail the workflow when
  openclaw upstream is ahead but no openclaw pin update was produced

Why:
- yolo was reporting success while silently restoring old pins
- openclaw bump attempts were repeatedly failing at A2UI bundling, keeping pins stale

Tests:
- bash -n scripts/update-pins.sh
- bash -n nix/scripts/gateway-build.sh
2026-02-26 16:07:31 +01:00
joshp123
d1314e9c5c 🤖 nix: keep gateway speedups and drop cache-only workflow
What:
- set `dontFixup = true` for `openclaw-gateway`
- speed install phase by moving build outputs instead of deep-copying node_modules
- add lightweight dangling-symlink integrity check in gateway install script
- remove `.github/workflows/cache-only.yml`

Why:
- keep the high-value packaging/build speed improvements
- keep one minimal safety guard when fixup is skipped
- remove flaky cache orchestration that adds CI latency and merge-SHA timeout failures

Tests:
- not run locally (per-request: CI-only validation due local NixOS issues)
- will validate via GitHub Actions/Garnix on push to main
2026-02-15 21:12:21 -08:00
joshp123
0eac830c65 chore: profile gateway build (break down pnpm build steps) 2026-02-15 14:12:16 -08:00
joshp123
e01b23c2a5 chore: add build step timings + minor build/install tweaks 2026-02-15 10:26:27 -08:00
joshp123
b469a3ce73 perf: speed up gateway builds (shared pnpm deps, fetcher v3, targeted rebuild) 2026-02-15 00:31:28 -08:00
joshp123
f8681411dd refactor: share gateway build plumbing + stamp config-options provenance 2026-02-14 23:24:31 -08:00
Josh Palmer
43c26623d8 Fix config validity check for bundled validators
Gateway bundles now export validateConfigObjectWithPlugins (often aliased) instead of dist/config/validation.js. Detect and use the exported plugin-aware validator.
2026-02-08 10:47:09 -08:00
DJTBOT
a52fe152e9 docs: standardize OpenClaw casing
What:
- replace "Openclaw" -> "OpenClaw" in user-facing docs, module descriptions, and messages

Why:
- consistent product naming after upstream rename

Tests:
- none (string-only change)
2026-02-05 13:11:45 -08:00
DJTBOT
f9ad193d28 chore: remove legacy moltbot/clawdbot compatibility
What:
- drop MOLTBOT_* and CLAWDBOT_* env wiring from HM + wrappers
- update gateway log-dir patch to target current upstream logger.ts
- update config options generator to require OpenClawSchema only
- update hello-world plugin example env var + module path
- rename RFC filename to remove moltbot naming

Why:
- upstream is OpenClaw; keep nix-openclaw opinionated + clean

Tests:
- bash -n scripts/update-pins.sh
2026-02-05 13:05:01 -08:00
DJTBOT
99b8afffab chore: roll forward to OpenClaw rename
What:
- update pin bump workflow to select OpenClaw-*.zip (not legacy Clawdbot assets)
- modernize updater to use `nix flake update --update-input …`
- standardize HM app install paths to OpenClaw.app

Why:
- upstream renamed Clawdbot -> OpenClaw; we should pin the current artifacts
- ensure pin bumps pull in upstream model catalog / pi updates

Tests:
- bash -n scripts/update-pins.sh
2026-02-05 12:57:09 -08:00
DJTBOT
2ba0b0c92f Add goplaces toolchain + Linux-safe config checks
- add goplaces to extended tools and update nix-steipete-tools pin
- default goplaces plugin to Darwin + drop linux-first-party enablement
- resolve config validation module from hashed dist bundles

Tests: nix flake check --option max-jobs 1 --option cores 1 (root@djtbot-1)
2026-02-03 13:22:12 -08:00
DJTBOT
73640da232 Fix check runners for Nix sandbox
- run config-validity script via node path
- switch package-contents script to /bin/sh

Tests: not run (CI)
2026-02-03 12:24:45 +01:00
DJTBOT
55392709ae Add config validity check
- validate module-generated config against Openclaw schema
- add config-validity check and Node validation script

Tests: not run (CI)
2026-02-03 11:55:15 +01:00
DJTBOT
adefa5cd41 Add package-contents check
- add check script for extensions/docs/templates and module symlinks
- wire package-contents check into flake outputs

Tests: not run (CI)
2026-02-03 11:18:15 +01:00
DJTBOT
d9bf68ad36 Gateway: link hasown for form-data
- add hasown symlink workaround for form-data in pnpm layout
- include docs/reference templates in install output

Tests: not run (CI)
2026-02-02 18:21:53 +01:00
DJTBOT
b3dae6fc87 Gateway: skip node-llama-cpp download in rebuild
- set NODE_LLAMA_CPP_SKIP_DOWNLOAD during pnpm rebuild to avoid networked postinstall

Tests: not run (CI)
2026-02-02 17:29:01 +01:00
DJTBOT
8beca48611 Gateway: link combined-stream at root
- ensure root node_modules/combined-stream exists for Node resolution

Tests: not run (CI)
2026-02-02 15:43:40 +01:00
DJTBOT
e70c7f7609 Gateway: link combined-stream for form-data
- ensure form-data packages can resolve combined-stream in pnpm layout

Tests: not run (CI)
2026-02-02 15:17:41 +01:00
DJTBOT
9f8c90d2d6 Gateway: stub clipboard on headless Linux
- add clipboard wrapper + patch script for Linux builds
- apply patch during gateway install
- drop hm-activation debug/probe env and restore test script

Tests: not run (CI)
2026-02-02 14:46:21 +01:00
DJTBOT
a2faf96451 Set OPENCLAW envs and log HM failures
- Export OPENCLAW_* vars in launchd/systemd services.
- Set OPENCLAW_NIX_MODE default in gateway wrapper.
- Dump gateway logs on hm-activation failure.

Tests: not run (CI)
2026-02-01 13:36:46 +01:00
DJTBOT
065ddf1666 Fix config-options oneOf list parsing
- Wrap oneOf list entries in parentheses during generation.
- Regenerate openclaw-config-options.nix.

Tests: not run (CI)
2026-02-01 13:10:47 +01:00
DJTBOT
616bbdf0ac Revert "ci: guard against /bin paths in HM"
This reverts commit 9251533a76.
2026-01-31 23:48:04 +01:00
DJTBOT
9251533a76 ci: guard against /bin paths in HM
Config-options check now fails if the Home Manager module uses /bin paths, enforcing run + coreutils usage.

Tests: not run (CI change).
2026-01-31 23:42:44 +01:00
DJTBOT
d1f58f336a fix: treat schema defaults as optional
Options with Zod defaults now emit nullOr defaults in generated config options to avoid missing value errors.

Regenerated nix/generated/openclaw-config-options.nix.

Tests: not run (config generation).
2026-01-31 15:34:47 +01:00