Commit Graph

646 Commits

Author SHA1 Message Date
johno d74a8a4a39 Add stremio-linux-shell from master branch 2026-05-11 20:54:59 -07:00
johno 58dbbb36ec feat(gaming): add udev symlinks for PDP RiffMaster guitars by serial
Create /dev/input/yarg-ladybug and /dev/input/yarg-fly symlinks based on each guitar's unique USB serial number, so YARG can distinguish the two identical controllers regardless of connection order.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-11 20:07:15 -07:00
johno 398c5fcc8a feat(kodi): replace stremio with stremio-linux-shell and add scale factor support
CI / check (push) Successful in 12m31s
CI / build-and-cache (push) Failing after 7m29s
CI / Build & Push OpenClaw Image (push) Successful in 41m26s
Migrate from Qt-based stremio to Rust/CEF-based stremio-linux-shell.
Add stremioScaleFactor option (uses --force-device-scale-factor) for
4K TV display scaling. Set to 2.0 on boxy and gym-box.
2026-05-11 19:47:18 -07:00
johno 1bf7b88be5 feat(gaming): add xone driver and YARG udev rules for controller support
CI / check (push) Successful in 2m0s
CI / Build & Push OpenClaw Image (push) Successful in 37m4s
CI / build-and-cache (push) Failing after 1h14m22s
Enable hardware.xone for Xbox wireless protocol support (PDP RiffMaster Xbox) and add udev rules for HID controller access (Wii/PS3 instruments) and Xbox 360 Wireless Adapter. Without these, YARG requires Steam as a workaround which causes connectivity conflicts.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-11 19:33:37 -07:00
johno 1ecc3302b1 fix(nfs-mounts): add network and systemd mount options
CI / check (push) Successful in 8m3s
CI / Build & Push OpenClaw Image (push) Successful in 36m2s
CI / build-and-cache (push) Failing after 1h4m39s
Add _netdev, x-systemd.requires/after network-online.target,
x-systemd.automatic-mount=force, and x-systemd.mount-timeout=90
to improve NFS mount reliability on boot and network changes.
2026-05-11 18:10:29 -07:00
johno f5e78b4d1a refactor: replace plasma-bigscreen role with kodi
Remove the custom plasma-bigscreen role and package, switching boxy and
gym-box to use the existing kodi role instead. The kodi role now
supports wayland and appLauncherServer with the same options.
2026-05-11 18:10:29 -07:00
johno cbc1402e44 major upgrade
CI / check (push) Successful in 7m29s
CI / Build & Push OpenClaw Image (push) Successful in 35m18s
CI / build-and-cache (push) Failing after 48m4s
2026-05-06 19:20:53 -07:00
johno 0a6cf3907e chore(openclaw): update to 2026.4.26
CI / check (push) Successful in 1m50s
CI / build-and-cache (push) Successful in 1m32s
CI / Build & Push OpenClaw Image (push) Successful in 12m6s
2026-04-27 18:49:10 -07:00
renovate-bot d5a33e95d5 chore(config): migrate config renovate.json
CI / check (pull_request) Successful in 1m57s
CI / build-and-cache (pull_request) Has been skipped
CI / Build & Push OpenClaw Image (pull_request) Has been skipped
CI / check (push) Successful in 1m57s
CI / build-and-cache (push) Successful in 1m29s
CI / Build & Push OpenClaw Image (push) Has been cancelled
2026-04-27 19:05:10 +00:00
johno 5a74301d92 ci(openclaw): configure Renovate regex manager for Docker image version tracking
CI / check (push) Successful in 2m12s
CI / build-and-cache (push) Successful in 1m43s
CI / Build & Push OpenClaw Image (push) Successful in 32m8s
2026-04-26 20:18:14 -07:00
johno 001314946b ci(openclaw): remove broken deploy job, rely on Renovate for tag updates
CI / check (push) Successful in 1m57s
CI / build-and-cache (push) Successful in 1m13s
CI / Build & Push OpenClaw Image (push) Successful in 8m6s
The deploy-openclaw job required a CONFIG_REPO_TOKEN secret that
was never configured, causing it to fail on every CI run.

Tag updates for the openclaw HelmRelease are now handled by
Renovate, which detects new images in registry.johnogle.info
and opens PRs against k3s-cluster-config to update manifests.

The build-and-push-openclaw job remains: it builds the thin
Docker image and pushes it to the registry.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-21 18:47:00 -07:00
johno 6823229136 refactor(openclaw): thin Docker image with Nix deps offloaded to Harmonia
CI / check (push) Successful in 1m52s
CI / build-and-cache (push) Successful in 5m13s
CI / Build & Push OpenClaw Image (push) Successful in 25m34s
CI / Deploy OpenClaw to Cluster (push) Failing after 4s
Strips runtime packages (nodejs_22, kubectl, jq, git, emacs, tsx, tea, pythonEnv, qmd) from the Docker image contents, reducing image size from ~2.7GB to ~1.5GB.

Key changes:
- Removed 9 runtime packages from contents (moved to openclaw-runtime-closure)
- Removed pythonEnv let binding and qmd parameter (no longer needed in image)
- Added OPENCLAW_RUNTIME_CLOSURE env var (bakes closure path for init container)
- Added runtime closure bin dir to PATH (resolves after PVC population)
- Added curl to contents (needed by init container for Harmonia health checks)
- CI: added openclaw-runtime-closure to build-and-cache PACKAGES array
- CI: added second sed command for CronJob image tag update
- CI: removed inherit qmd from openclaw-image callPackage (qmd now in runtime closure)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-21 17:13:07 -07:00
johno 590b5e71fa feat(openclaw): add runtime closure meta-package for Harmonia caching
Creates openclaw-runtime-closure as a symlinkJoin of all runtime dependencies (nodejs_22, kubectl, jq, git, emacs, tsx, tea, python3.withPackages pymupdf, qmd) that will be pushed to the Harmonia binary cache by CI and pulled into the PVC by the init container at pod startup.

This meta-package enables the thin Docker image architecture where:
- The Docker image stays small (~1.5GB vs 2.7GB) with only /app, nix, and basics
- Runtime deps are fetched from Harmonia at pod startup via nix copy --from
- CI push is fast (thin image) and runtime deps are cached separately

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-21 17:12:50 -07:00
johno b70631e391 build(qmd): update fork to 4fc7760 with rerank fallback fix
CI / check (push) Successful in 1m52s
CI / build-and-cache (push) Successful in 4m16s
CI / Build & Push OpenClaw Image (push) Successful in 8m45s
CI / Deploy OpenClaw to Cluster (push) Failing after 3s
2026-04-21 01:18:04 -07:00
johno e8213e47c6 build(qmd): update fork to dfc1ac4 with try/catch fix for remoteConfigFromEnv
CI / check (push) Successful in 2m11s
CI / build-and-cache (push) Successful in 3m47s
CI / Build & Push OpenClaw Image (push) Successful in 21m5s
CI / Deploy OpenClaw to Cluster (push) Failing after 2s
2026-04-21 00:21:39 -07:00
johno c3a0806e24 build(qmd): update for RemoteLLM/HybridLLM CLI integration
CI / check (push) Successful in 1m52s
CI / build-and-cache (push) Successful in 4m19s
CI / Build & Push OpenClaw Image (push) Successful in 33m39s
CI / Deploy OpenClaw to Cluster (push) Failing after 2s
- 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
2026-04-20 23:30:44 -07:00
johno 80e520bb23 style(qmd): clean up stale npmDepsHash comment
CI / check (push) Successful in 1m55s
CI / build-and-cache (push) Successful in 1m29s
CI / Build & Push OpenClaw Image (push) Failing after 1m30s
CI / Deploy OpenClaw to Cluster (push) Has been skipped
2026-04-20 21:33:58 -07:00
johno 9e316902f6 build(qmd): update Nix package for Gitea-hosted fork with PR #517
CI / check (push) Successful in 2m16s
CI / Build & Push OpenClaw Image (push) Has been cancelled
CI / build-and-cache (push) Has been cancelled
CI / Deploy OpenClaw to Cluster (push) Has been cancelled
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-20 21:27:11 -07:00
johno 6c18b6520c fix: retry docker push for large images on slow CI runners
CI / check (push) Successful in 1m42s
CI / build-and-cache (push) Successful in 1m4s
CI / Build & Push OpenClaw Image (push) Successful in 31m38s
CI / Deploy OpenClaw to Cluster (push) Failing after 3s
2026-04-20 10:27:15 -07:00
johno 618e6c7fd6 fix: tolerate latest tag push failure in CI
CI / check (push) Successful in 1m34s
CI / build-and-cache (push) Successful in 1m19s
CI / Build & Push OpenClaw Image (push) Failing after 13m51s
CI / Deploy OpenClaw to Cluster (push) Has been skipped
Large image layers can timeout on retry. The versioned tag push
is what matters for deployment; :latest is cosmetic.
2026-04-20 10:00:47 -07:00
johno dc9e65f7f1 trigger CI: test registry secrets
CI / check (push) Successful in 1m55s
CI / build-and-cache (push) Successful in 1m28s
CI / Build & Push OpenClaw Image (push) Failing after 14m48s
CI / Deploy OpenClaw to Cluster (push) Has been skipped
2026-04-20 09:20:16 -07:00
johno 576140befb fix: extract openclaw image tag from imageTag attribute instead of store path
CI / check (push) Successful in 2m41s
CI / build-and-cache (push) Successful in 1m16s
CI / Build & Push OpenClaw Image (push) Failing after 9m2s
CI / Deploy OpenClaw to Cluster (push) Has been skipped
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').
2026-04-20 08:57:02 -07:00
johno 9904d1c11d fix: nix-deck infinite recursion + add custom-qmd to CI
CI / check (push) Successful in 2m56s
CI / build-and-cache (push) Successful in 4m37s
CI / Build & Push OpenClaw Image (push) Failing after 11m45s
CI / Deploy OpenClaw to Cluster (push) Has been skipped
- 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
2026-04-19 22:13:04 -07:00
johno 2036181a04 fix: set HOME=/home/node in openclaw image to prevent /.openclaw mkdir errors
CI / check (push) Failing after 1m58s
CI / build-and-cache (push) Has been skipped
CI / Build & Push OpenClaw Image (push) Has been skipped
CI / Deploy OpenClaw to Cluster (push) Has been skipped
2026-04-19 21:08:18 -07:00
johno e3348e3319 feat: add QMD v2.1.0 as Nix package, bake into openclaw image
CI / check (push) Failing after 1m41s
CI / build-and-cache (push) Has been skipped
CI / Build & Push OpenClaw Image (push) Has been skipped
CI / Deploy OpenClaw to Cluster (push) Has been skipped
- 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
2026-04-19 20:52:26 -07:00
johno af496ce9ca fix(openclaw): copy /app as real directory to avoid symlink escape check
CI / check (push) Failing after 2m5s
CI / build-and-cache (push) Has been skipped
CI / Build & Push OpenClaw Image (push) Has been skipped
CI / Deploy OpenClaw to Cluster (push) Has been skipped
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.
2026-04-19 16:58:07 -07:00
johno 211afa630e ci(openclaw): add build-push-deploy pipeline for Nix Docker image
CI / check (push) Failing after 2m12s
CI / build-and-cache (push) Has been skipped
CI / Build & Push OpenClaw Image (push) Has been skipped
CI / Deploy OpenClaw to Cluster (push) Has been skipped
Builds openclaw-image with Nix, loads into Docker, tags and pushes to
registry.johnogle.info/openclaw, then updates k3s-cluster-config manifest.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-19 16:38:30 -07:00
johno 3faad15a02 feat(openclaw): add Nix-built Docker image with app extraction from upstream
Pure Nix buildLayeredImage that extracts /app from upstream ghcr.io/openclaw/openclaw
via manifest-aware Python script. Avoids fromImage which breaks Debian
dynamic linker by shadowing /lib -> usr/lib symlink.

Includes: nix, nodejs_22, kubectl, jq, curl, git, emacs, python3+pymupdf, tea.
Custom NSS with node user (UID 1000). Replicated docker-entrypoint.sh.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-19 16:38:04 -07:00
johno 5a82554884 feat(opencode): add oh-my-openagent plugin with omo config for ollama-cloud/glm-5.1
CI / check (push) Failing after 2m8s
CI / build-and-cache (push) Has been skipped
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).
2026-04-17 13:43:08 -07:00
johno 170a27310e feat(local-inference): add TTL support for automatic model unloading
CI / check (push) Failing after 1m44s
CI / build-and-cache (push) Has been skipped
Add globalTTL and per-model ttl options to llama-swap config,
allowing idle models to be automatically unloaded from memory.
2026-04-16 15:37:02 -07:00
johno bd377676ed fix(opencode): increase context/output limits for local model
CI / check (push) Failing after 1m59s
CI / build-and-cache (push) Has been skipped
2026-04-16 15:20:51 -07:00
johno 10efafd92e feat(local-inference): replace ollama with llama-swap + llama.cpp on zix790prors
- 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
2026-04-16 15:20:37 -07:00
johno d16c8aa67e Merge pull request 'feat(app-launcher): workout card launcher + URL args' (#54) from ash/workout-card-launcher into main
CI / check (push) Successful in 1m40s
CI / build-and-cache (push) Successful in 3h10m42s
Reviewed-on: #54
2026-04-13 17:13:41 -07:00
ash-bot f3b405959e feat(app-launcher): add /workout endpoint and URL arg support
CI / check (pull_request) Successful in 1m46s
CI / build-and-cache (pull_request) Has been skipped
- 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
2026-04-13 13:58:40 -07:00
johno e9fd4cf0d6 feat(gym-box): update for new uuids and add swap
CI / check (push) Successful in 1m24s
CI / build-and-cache (push) Failing after 6h14m31s
2026-04-10 17:59:06 -07:00
johno 8ac79169d9 feat: add gym-box
CI / check (push) Successful in 2m0s
CI / build-and-cache (push) Has been cancelled
2026-04-10 16:43:33 -07:00
johno 962fd35a83 Fix nix flake check warnings and errors
CI / check (push) Successful in 3m38s
CI / build-and-cache (push) Failing after 1h26m28s
- Move nextcloud-talk-desktop to x86_64-linux-only block (fixes aarch64 eval error)
- Remove duplicate deps from plasma-bigscreen (auto-injected by mkKdeDerivation)
- Replace nixfmt-rfc-style with nixfmt (deprecated alias)
- Set programs.git.signing.format = null (adopt new default)
- Add meta.description to all flake apps
2026-04-08 13:09:41 -07:00
johno a823caf369 Remove beads/gastown/perles/dolt
CI / check (push) Failing after 12m14s
CI / build-and-cache (push) Has been cancelled
2026-04-08 11:47:11 -07:00
johno 785561367e Add opencode package and install via base role
CI / check (push) Successful in 2m50s
CI / build-and-cache (push) Failing after 8m7s
- 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
2026-04-08 11:33:40 -07:00
johno ddd21454b7 Merge pull request 'chore(deps): lock file maintenance' (#50) from renovate/lock-file-maintenance into main
CI / check (push) Successful in 5m31s
CI / build-and-cache (push) Failing after 6h14m41s
Reviewed-on: #50
Reviewed-by: johno <john@ogle.fyi>
2026-04-05 10:00:39 -07:00
johno 790b3f1543 Merge pull request 'Add lnav to base CLI tools' (#51) from ash/add-lnav into main
CI / check (push) Successful in 3m5s
CI / build-and-cache (push) Successful in 2m29s
Reviewed-on: #51
Reviewed-by: johno <john@ogle.fyi>
2026-03-24 13:32:29 -07:00
ash-bot 079a3d7a11 Add lnav to base CLI tools
CI / check (pull_request) Successful in 3m19s
CI / build-and-cache (pull_request) Has been skipped
2026-03-24 13:12:56 -07:00
renovate-bot 6bd5df6bf0 chore(deps): lock file maintenance
CI / check (pull_request) Successful in 1m38s
CI / build-and-cache (pull_request) Has been skipped
2026-03-23 19:11:16 +00:00
ash-bot 718d81a88a Merge pull request 'ci: add patched nextcloud-talk-desktop to binary cache' (#49) from ash/cache-talk-desktop into main
CI / check (push) Failing after 14m52s
CI / build-and-cache (push) Has been cancelled
2026-03-16 09:01:09 -07:00
ash-bot 827da51214 ci: add patched nextcloud-talk-desktop to binary cache
CI / check (pull_request) Successful in 2m41s
CI / build-and-cache (pull_request) Has been skipped
Includes the Wayland screen sharing patch (from ash/talk-desktop-wayland-screenshare)
and adds custom-nextcloud-talk-desktop to CI build-and-cache pipeline.
2026-03-16 08:56:40 -07:00
ash-bot 068f912dc3 Merge branch 'ash/talk-desktop-wayland-screenshare' into ash/cache-talk-desktop 2026-03-16 08:56:14 -07:00
johno 45db8efaa9 docs: add upstream tracking comments to plasma-bigscreen files
CI / check (push) Successful in 2m42s
CI / build-and-cache (push) Successful in 1m39s
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.
2026-03-16 08:48:39 -07:00
johno c57a4d3769 fix: plasma-bigscreen build — correct source hash and add Qt6QmlPrivate dep
- 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.
2026-03-16 08:48:38 -07:00
ash-bot 2ae03eb7bf fix: handle missing xwaylandvideobridge attr conditionally 2026-03-16 08:48:38 -07:00
ash-bot 9b7ce04a41 fix: merge services.displayManager into single block
NixOS doesn't allow duplicate attribute set definitions in the
same module. Combine sessionPackages and autologin config.
2026-03-16 08:48:38 -07:00