- Update source to commit 220e46e (feat/remote-api with CLI wiring)
- Update package-lock.json for new source
- RemoteLLM/HybridLLM now wired into CLI when QMD_EMBED_API_* env vars are set
The sed pattern on the store path basename gave 'tar.gz' because
buildLayeredImage outputs 'openclaw.tar.gz'. Use imageTag attribute
which returns the actual tag (e.g., '2026.4.14').
- Add specialArgs to nix-deck (was missing nixpkgs-unstable, causing
infinite recursion when roles/local-inference evaluated it)
- Move local-inference import out of roles/default.nix: its module-level
disabledModules/imports conflict with nix-deck's unstable-based nixpkgs
- Import local-inference directly in zix790prors (the only machine that
enables it)
- Add custom-qmd and custom-opencode to CI build-and-cache packages
- packages/qmd: buildNpmPackage with Node.js 22 (not Bun) to avoid
native module ABI issues with better-sqlite3 and sqlite-vec
- Vendored package-lock.json (QMD ships bun.lock, not npm lockfile)
- packages/openclaw-image: adds qmd + tsx to image contents
- packages/default.nix: rec attrset so openclaw-image can inherit qmd
- flake.nix: expose custom-qmd package output for CI caching
The OpenClaw runtime validates that resolved symlinks stay within
/app/dist/extensions/. When /app was a Nix store symlink, realpath
resolved to /nix/store/ which 'escaped' the boundary. Now we copy
the app files into /app as a real directory in extraCommands.
Configure oh-my-openagent (omo) plugin for multi-agent orchestration
using ollama-cloud and local llama-swap providers. Primary model is
ollama-cloud/glm-5.1 with fallback chains. Add runtime fallback,
background task concurrency limits, and disable incompatible agents
(hephaestus, multimodal-looker).
- Add local-inference NixOS role using llama-swap (from nixpkgs-unstable)
with llama.cpp (CUDA-enabled, from nixpkgs-unstable)
- Serves Qwen3.6-35B-A3B via HuggingFace auto-download with --cpu-moe
- Add nixosSpecialArgs for nixpkgs-unstable module access
- Configure opencode with llama-local provider pointing to zix790prors:8080
- Update gptel from Ollama backend to OpenAI-compatible llama-swap backend
- Remove ollama service from zix790prors
- POST /workout opens today's workout card in Firefox (auto-generates URL from date)
- POST /launch/firefox now accepts optional JSON body: {"args": ["https://..."}
- When args are provided, Firefox launches a new instance even if already running
- Updated GET / endpoint with endpoint documentation
- Add packages/opencode with pre-built binaries from GitHub releases (v1.4.0)
- Support all 4 platforms (aarch64-darwin, x86_64-darwin, x86_64-linux, aarch64-linux)
- Add update-opencode flake app for automated version bumps
- Install opencode via home.roles.base so it's available on all machines
- Reformat flake.nix and packages with nixfmt
Includes the Wayland screen sharing patch (from ash/talk-desktop-wayland-screenshare)
and adds custom-nextcloud-talk-desktop to CI build-and-cache pipeline.
Flag the custom derivation and workarounds as temporary with TODO
markers and links to the relevant nixpkgs issue/PR. Makes it clear
what to remove once plasma-bigscreen lands in nixpkgs.
- Set correct source hash for fetchFromGitLab (was placeholder)
- Add qtdeclarative to build inputs for Qt6::QmlPrivate target
- Patch CMakeLists.txt to find_package(Qt6 QmlPrivate) before QCoro6,
working around QCoro not importing its own transitive dependency
Verified: boxy, zix790prors, and nix-book all build successfully.
Add plasma-bigscreen role with package built from upstream master
(not yet in nixpkgs, tracking NixOS/nixpkgs#428077).
Changes:
- New role: roles/plasma-bigscreen/ (module + package derivation)
- boxy configuration: swap roles.kodi for roles.plasma-bigscreen
- Keeps all existing functionality: Jellyfin, Stremio, Firefox,
KDE Connect, app-launcher-server, AVR volume control (kodi user)
- Autologins to plasma-bigscreen-wayland session instead of plasma
NOTE: First build will fail with a hash mismatch on the source
fetch — copy the correct sha256 from the error into package.nix.
Some dep attribute names may also need adjustment on first build.
Patches the Electron asar bundle to inject setDisplayMediaRequestHandler
with useSystemPicker: true, which routes screen capture through the
native PipeWire/xdg-desktop-portal pipeline on Wayland.
Based on upstream draft PR nextcloud/talk-desktop#1022.
Uses the patched version in communication role.
CronJob runs at 0/6/12/18h. Old 2-4 PM window never had a run
inside it, so Renovate never created PRs. Shift to 5-7 PM so the
18:00 run lands in the window. nixpkgs-qt staggered to 7-9 PM.
Enable wlr portal conditionally when wayland is active.
Add sway-specific portal config routing ScreenCast and
Screenshot interfaces through the wlr backend.
Extract shared package definition, add to flake packages output
and CI workflow so perles gets built and cached by Harmonia.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace inline wg-quick config in nix-book with a reusable role that
uses inline config instead of configFile, fixing the world-readable
/tmp key leak. Adds network-online.target dependency to prevent boot
failures from DNS not being ready.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Skip the create_handoff command during humanlayer plugin installation
and explicitly remove it if previously installed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update beads and gastown flake inputs and vendorHashes
- Remove merged-upstream patches for gastown and beads
- Deduplicate beads/gastown build definitions in home role by using
callPackage to reference shared packages/ definitions
- Pin dolt to v1.82.4 (gastown requires >= 1.82.4)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The upstream gastown Go dependencies changed, causing a hash mismatch
in the fixed-output derivation. Updated vendorHash in both:
- packages/gastown/default.nix (flake packages output)
- home/roles/development/default.nix (home-manager inline build)