perf: avoid Electra source builds for desktop apps #88

Merged
nimmo merged 1 commit from electra-binary-alternatives into main 2026-07-22 16:02:35 +01:00
Owner

Summary

  • use Firefox’s upstream binary package instead of compiling Firefox locally
  • use the Vulkan Ollama backend on Electra, removing the ROCm/hipBLASLt source-build chain for its infrequent local inference
  • use Electron 41’s upstream binary for Bruno

Validation

  • nix flake check --no-build
  • nix build --dry-run .#nixosConfigurations.electra.config.system.build.toplevel (verified no Firefox, Electron 41, hipBLASLt, ROCm, or source-built Ollama derivations)
## Summary - use Firefox’s upstream binary package instead of compiling Firefox locally - use the Vulkan Ollama backend on Electra, removing the ROCm/hipBLASLt source-build chain for its infrequent local inference - use Electron 41’s upstream binary for Bruno ## Validation - nix flake check --no-build - nix build --dry-run .#nixosConfigurations.electra.config.system.build.toplevel (verified no Firefox, Electron 41, hipBLASLt, ROCm, or source-built Ollama derivations)
perf: avoid Electra source builds for desktop apps
All checks were successful
Build and Push Attic Cache / test (pull_request) Successful in 54s
Build and Push Attic Cache / build (pull_request) Has been skipped
AI pull-request review / review (pull_request) Successful in 3m24s
f3ed15b077
Author
Owner

Automated code review

Reviewed commit: f3ed15b0771ddcf2227508a0d5ce48ef202f22f5

Verdict: Requires further work

Resolve the blocking or important findings and investigate failed deterministic checks before merging.

Overall assessment

Updates replace source-built or default packages with prebuilt binaries (Firefox, Electron 41) and migrate Ollama from ROCm to Vulkan on Electra. Changes are localized to three files and include explicit comments justifying the switches.

Blocking findings

None.

Important findings

  • Ollama backend migration from ROCm to Vulkan (hosts/electra/default.nix:170; high confidence)
    Diff changes ollamaBackend = "rocm" to "vulkan", removes rocmOverrideGfx = "11.0.0", and deletes the HSA_OVERRIDE_GFX_VERSION environment variable.
    Impact: Alters the compute backend for local AI inference on Electra's AMD 780M iGPU. Vulkan may exhibit different performance, VRAM handling, or model compatibility compared to ROCm.
    Suggested fix: Validate local AI workloads (model loading, inference speed, stability) post-deployment to confirm no regression.

Suggestions

  • Firefox binary package adoption (modules/desktop/environment.nix:14; high confidence)
    Diff sets package = pkgs.firefox-bin and adds a comment noting native-messaging is not configured on these hosts.
    Impact: Switches to Mozilla's prebuilt binary to avoid local compilation. May restrict future native-messaging extensions if they rely on build-time paths or specific package attributes.
    Suggested fix: Document the native-messaging limitation and verify extension compatibility if new requirements arise.

  • Bruno Electron version override (home/nimmo.nix:352; medium confidence)
    Diff overrides Bruno's default Electron with pkgs.electron_41-bin.
    Impact: Pins Bruno to a specific Electron major version. If Bruno upstream requires newer Electron APIs, this override may cause runtime crashes or feature regressions.
    Suggested fix: Test Bruno functionality post-deployment and monitor for upstream Electron compatibility notes.

Tests and validation

  • nix-flake-check: failure
    • Raw output: error: Resource temporarily unavailable

Questions

  • Has local inference performance and model compatibility been validated on Electra's 780M iGPU with the Vulkan backend after removing the ROCm override?
  • Are there any active or planned Firefox extensions that depend on native-messaging, which might be affected by switching to pkgs.firefox-bin?

Review limitations

  • Review is based solely on the supplied diff; runtime behavior of the Vulkan Ollama backend and Electron 41 integration cannot be verified without live deployment evidence.
  • NixOS package compatibility depends on upstream release cycles and system state, which are not captured in the diff.

Diff coverage

  • home/nimmo.nix: reviewed — included in a context-limited batch
  • hosts/electra/default.nix: reviewed — included in a context-limited batch
  • modules/desktop/environment.nix: reviewed — included in a context-limited batch
Review metadata
  • Reviewer: forgejo-ai-review v1
  • Model: qwen3.6:35b-a3b-q8_0
  • Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md
  • Commits considered: 1
  • Previous automated review: none found
  • Findings: 3
<!-- forgejo-ai-review:v1 --> ## Automated code review Reviewed commit: `f3ed15b0771ddcf2227508a0d5ce48ef202f22f5` ## Verdict: Requires further work Resolve the blocking or important findings and investigate failed deterministic checks before merging. ### Overall assessment Updates replace source-built or default packages with prebuilt binaries (Firefox, Electron 41) and migrate Ollama from ROCm to Vulkan on Electra. Changes are localized to three files and include explicit comments justifying the switches. ### Blocking findings None. ### Important findings - **Ollama backend migration from ROCm to Vulkan** (hosts/electra/default.nix:170; high confidence) Diff changes `ollamaBackend = "rocm"` to `"vulkan"`, removes `rocmOverrideGfx = "11.0.0"`, and deletes the `HSA_OVERRIDE_GFX_VERSION` environment variable. Impact: Alters the compute backend for local AI inference on Electra's AMD 780M iGPU. Vulkan may exhibit different performance, VRAM handling, or model compatibility compared to ROCm. Suggested fix: Validate local AI workloads (model loading, inference speed, stability) post-deployment to confirm no regression. ### Suggestions - **Firefox binary package adoption** (modules/desktop/environment.nix:14; high confidence) Diff sets `package = pkgs.firefox-bin` and adds a comment noting native-messaging is not configured on these hosts. Impact: Switches to Mozilla's prebuilt binary to avoid local compilation. May restrict future native-messaging extensions if they rely on build-time paths or specific package attributes. Suggested fix: Document the native-messaging limitation and verify extension compatibility if new requirements arise. - **Bruno Electron version override** (home/nimmo.nix:352; medium confidence) Diff overrides Bruno's default Electron with `pkgs.electron_41-bin`. Impact: Pins Bruno to a specific Electron major version. If Bruno upstream requires newer Electron APIs, this override may cause runtime crashes or feature regressions. Suggested fix: Test Bruno functionality post-deployment and monitor for upstream Electron compatibility notes. ### Tests and validation - nix-flake-check: **failure** - Raw output: `error: Resource temporarily unavailable ` ### Questions - Has local inference performance and model compatibility been validated on Electra's 780M iGPU with the Vulkan backend after removing the ROCm override? - Are there any active or planned Firefox extensions that depend on native-messaging, which might be affected by switching to `pkgs.firefox-bin`? ### Review limitations - Review is based solely on the supplied diff; runtime behavior of the Vulkan Ollama backend and Electron 41 integration cannot be verified without live deployment evidence. - NixOS package compatibility depends on upstream release cycles and system state, which are not captured in the diff. ### Diff coverage - `home/nimmo.nix`: **reviewed** — included in a context-limited batch - `hosts/electra/default.nix`: **reviewed** — included in a context-limited batch - `modules/desktop/environment.nix`: **reviewed** — included in a context-limited batch <details><summary>Review metadata</summary> - Reviewer: forgejo-ai-review v1 - Model: qwen3.6:35b-a3b-q8_0 - Guidance loaded: .forgejo/ai-review.md, .forgejo/ai-review.yml, AGENTS.md, README.md - Commits considered: 1 - Previous automated review: none found - Findings: 3 </details>
nimmo merged commit 43e0ab522d into main 2026-07-22 16:02:35 +01:00
nimmo deleted branch electra-binary-alternatives 2026-07-22 16:02:36 +01:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nimmo/nixos-config!88
No description provided.