heks-linux-01956fd5-6bd4

job succeeded

starting new job...


→ running command: cd "/etc/byggsteg/job-clone//heks-linux/trunk" && git reset --hard && git pull

HEAD is now at 856b07b docs: Improve showcase
From https://codeberg.org/jjba23/heks-linux
   856b07b..850dc69  trunk      -> origin/trunk
Updating 856b07b..850dc69
Fast-forward
 manifest.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

→ running command: cd /etc/byggsteg/job-clone/heks-linux/trunk && uname -a

Linux wolk-jjba 7.1.5-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux

→ running command: cd /etc/byggsteg/job-clone/heks-linux/trunk && git log --name-status HEAD^..HEAD

commit 850dc692a2f0964a7018503caf72fe2d2af05912
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Tue Oct 20 13:59:53 2026 +0200

    chore: Update guile-veritas

M       manifest.scm

→ running command: cd /etc/byggsteg/job-clone/heks-linux/trunk && maak test

substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
The following derivations will be built:
  /gnu/store/vap3shlyy76kajiffkqlc6w6km0k8fsm-guile-veritas-0.8.0-checkout.drv
  /gnu/store/2aij75fc8jlqi9pdzm0wrgs4lrc3c0rv-guile-veritas-0.8.0.drv

0.2 MB will be downloaded
.
building /gnu/store/vap3shlyy76kajiffkqlc6w6km0k8fsm-guile-veritas-0.8.0-checkout.drv...
building /gnu/store/2aij75fc8jlqi9pdzm0wrgs4lrc3c0rv-guile-veritas-0.8.0.drv...
100% ▕█████████████████████████████████████████████████████████████████████████▏The following derivation will be built:
  /gnu/store/xs9vzm1frl56pc3iqvcgkfh2i8sddwyb-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 12 packages...

scanning directories for unit tests...
scanning present working directory for unit tests...

shuffled the files with seed 2051939 (replay with VERITAS_SEED=2051939)

found unit tests: (bridges-spec.scm alacritty-spec.scm prelude-spec.scm gtk-spec.scm palette-spec.scm mako-spec.scm rofi-spec.scm kitty-spec.scm niri-spec.scm wallpaper-spec.scm dconf-spec.scm waybar-spec.scm)


running unit tests from file: bridges-spec.scm, entrypoint: spec


[INFO] [2026-10-20 12:01:26 UTC] load-local-overrides: Attempting override resolution for module (heks-linux user-settings) with profile 'local-settings'
[INFO] [2026-10-20 12:01:26 UTC] load-local-overrides: $XDG_CONFIG_HOME empty/unset, falling back to $HOME/.config
[INFO] [2026-10-20 12:01:26 UTC] load-local-overrides: Checking for override file at: /root/.config/heks-linux/local-settings.scm
[INFO] [2026-10-20 12:01:26 UTC] load-local-overrides: No override file found at /root/.config/heks-linux/local-settings.scm. Skipping.
ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] bridges test suite
  [🧪 test] Emacs Bridge Carries The Settings Values
    [⚙️ assert] The mono font setting should travel across the bridge
    ✅ got: Intel One Mono
    [⚙️ assert] The clone directory should travel across the bridge
    ✅ got: ~/Hacking/heks-linux
  [🧪 test] Emacs Bridge Elisp Generation
    [⚙️ assert] Bridge output should be a list (S-expression)
    ✅ got: #t
    [⚙️ assert] Bridge output should be wrapped in a 'progn
    ✅ got: progn
    [⚙️ assert] Should configure mono font
    ✅ got: #t
    [⚙️ assert] Should configure the sans font
    ✅ got: #t
    [⚙️ assert] Should configure the Emacs theme
    ✅ got: #t
  [🧪 test] Bash Bridge String Generation
    [⚙️ assert] Bash bridge should start with correct shebang
    ✅ got: #t
    [⚙️ assert] Bash bridge should export the highlight variable
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 6014 microseconds

running unit tests from file: alacritty-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Setting Serialization
  [🧪 test] Settings Serialize To TOML
    [⚙️ assert] Booleans render unquoted
    ✅ got: live_config_reload = true
    [⚙️ assert] Numbers render unquoted
    ✅ got: size = 12
    [⚙️ assert] Strings are quoted
    ✅ got: shell = "bash"
    [⚙️ assert] Inline tables pass through verbatim
    ✅ got: padding = { x = 16, y = 16}
+----------------------------------------------+
[📑 suite] Modifier Translation
  [🧪 test] Short Modifiers Use Alacritty Spelling
    [⚙️ assert] Modifiers are joined with a vertical bar
    ✅ got: Control|Shift
    [⚙️ assert] Alt and Super are spelled out
    ✅ got: Alt|Super
    [⚙️ assert] Unknown modifiers pass through
    ✅ got: Control|Custom
+----------------------------------------------+
[📑 suite] Binding Serialization
  [🧪 test] Bindings Render As Inline TOML Tables
    [⚙️ assert] A binding is one inline table
    ✅ got: { key = "Y", mods = "Control", action = "Paste"}
+----------------------------------------------+
[📑 suite] Generated File
  [🧪 test] Key Bindings Are Collected Into One Array
    [⚙️ assert] Bindings are rendered as a TOML array
    ✅ got: #t
    [⚙️ assert] Control+Y pastes
    ✅ got: #t
    [⚙️ assert] Shift+Home jumps to the top of the scrollback
    ✅ got: #t
  [🧪 test] Every Section Is Declared
    [⚙️ assert] The file carries a generated-file header
    ✅ got: #t
    [⚙️ assert] A general section is emitted
    ✅ got: #t
    [⚙️ assert] A keyboard section is emitted
    ✅ got: #t
ℹ️ info - ran 4 tasks in: 0 seconds, 13436 microseconds

running unit tests from file: prelude-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2/installed
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2/installed/nested
[INFO] [2026-10-20 12:01:26 UTC] Writing config to file: /tmp/heks-prelude-spec-2/installed/nested/deep.conf
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2/a
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2/a/b
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2/a/b/c
[INFO] [2026-10-20 12:01:26 UTC] Creating directory: /tmp/heks-prelude-spec-2/bin
[INFO] [2026-10-20 12:01:26 UTC] Writing config to file: /tmp/heks-prelude-spec-2/bin/script.sh
+----------------------------------------------+
[📑 suite] Prelude Helper Suite
  [🧪 test] Nested Structures Render As Ini Sections
    [⚙️ assert] A nested list should become an INI section header
    ✅ got: 
[settings]
port=8080

  [🧪 test] Config Files Install Into Missing Directories
    [⚙️ assert] The installer should create its directory tree
    ✅ got: #t
    [⚙️ assert] The installer should write the contents
    ✅ got: hello

    [⚙️ assert] The default permissions should be #o644
    ✅ got: 420
  [🧪 test] Key Value Rendering
    [⚙️ assert] Pairs should render with the default template
    ✅ got: host=localhost
port=80

    [⚙️ assert] The template should be overridable
    ✅ got: host = localhost

    [⚙️ assert] CSS pairs should render indented
    ✅ got:   color: black;

  [🧪 test] Directory Trees Are Created Recursively
    [⚙️ assert] Missing parents should be created, not just the leaf
    ✅ got: #t
    [⚙️ assert] The created leaf should really be a directory
    ✅ got: #t
  [🧪 test] Executable Config Files Get Executable Permissions
    [⚙️ assert] Passing #o755 should make the file executable
    ✅ got: 493
  [🧪 test] List Flattening
    [⚙️ assert] Nested lists should be flattened
    ✅ got: (1 2 3 4 5)
    [⚙️ assert] Flattening the empty list should stay empty
    ✅ got: ()
ℹ️ info - ran 1 tasks in: 0 seconds, 16458 microseconds

running unit tests from file: gtk-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] GTK Configuration Suite
  [🧪 test] dconf Theme Names Come From The Palette
    [⚙️ assert] The icon theme should be palette derived
    ✅ got: 'WhiteSur-pink'
    [⚙️ assert] An accent colour should always be exported
    ✅ got: #t
  [🧪 test] GTK 4 Settings
    [⚙️ assert] The GTK 4 settings should be an association list
    ✅ got: #t
    [⚙️ assert] GTK 4 windows should show macOS style traffic lights
    ✅ got: close,minimize,maximize:
  [🧪 test] GTK 3 Settings
    [⚙️ assert] The GTK 3 settings should be an association list
    ✅ got: #t
    [⚙️ assert] GTK 3 windows should show macOS style traffic lights
    ✅ got: close,minimize,maximize:
    [⚙️ assert] The sans font should be configured
    ✅ got: #t
  [🧪 test] dconf Button Layout
    [⚙️ assert] The window manager should place the traffic lights on the left
    ✅ got: 'close,minimize,maximize:'
  [🧪 test] dconf Colour Scheme Follows The Palette
    [⚙️ assert] Dark palettes should request the dark GTK scheme
    ✅ got: 'prefer-dark'
    [⚙️ assert] Light palettes should request the light GTK scheme
    ✅ got: 'prefer-light'
ℹ️ info - ran 1 tasks in: 0 seconds, 12578 microseconds

running unit tests from file: palette-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Palette Registry Suite
  [🧪 test] Colour Converters
    [⚙️ assert] hex-to-rgba should convert a hex colour
    ✅ got: rgba(255, 0, 0, 1)
    [⚙️ assert] hex-to-rgba should honour the alpha argument
    ✅ got: rgba(0, 0, 255, 0.5)
    [⚙️ assert] hex-to-rgb should convert a hex colour
    ✅ got: rgb(0, 255, 0)
    [⚙️ assert] hex-to-rgba should fall back on bad input
    ✅ got: rgba(0, 0, 0, 1)
  [🧪 test] Dark And Light Classification
    [⚙️ assert] catppuccin-mocha should be a dark palette
    ✅ got: #t
    [⚙️ assert] catppuccin-latte should be a light palette
    ✅ got: #t
  [🧪 test] Unknown Palettes Are Rejected
    [⚙️ assert] Looking up an unregistered palette should raise
    ✅ success catching error: %exception: (#<&message message: "exception ocurred! unknown palette selected: definitely-not-a-palette">)
  [🧪 test] Every Palette Exposes A Full Colour Set
    [⚙️ assert] Each palette must define primary/text/background colours
    ✅ got: #t
  [🧪 test] Registry Is Non Empty And Symbolic
    [⚙️ assert] At least one palette should be registered
    ✅ got: #t
    [⚙️ assert] Every palette name should be a symbol
    ✅ got: #t
    [⚙️ assert] Every palette name should be convertible to a string
    ✅ got: #t
  [🧪 test] Every Palette Exposes Its Downstream Themes
    [⚙️ assert] Each palette must map to a GTK, icon, cursor and accent theme
    ✅ got: #t
    [⚙️ assert] Each palette must map to a supported lambdock theme
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 5111 microseconds

running unit tests from file: mako-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Mako Notification Suite
  [🧪 test] Notification behaviour is configured
    [⚙️ assert] Notification history should be kept
    ✅ got: #t
    [⚙️ assert] A default timeout should be set
    ✅ got: #t
    [⚙️ assert] Left click should dismiss a notification
    ✅ got: #t
  [🧪 test] Banners Match The macOS Look
    [⚙️ assert] Notification banners should be rounded
    ✅ got: #t
    [⚙️ assert] Notification banners should be borderless
    ✅ got: #t
  [🧪 test] Do Not Disturb Mode Is Declared
    [⚙️ assert] A do-not-disturb mode section should exist so makoctl can toggle it
    ✅ got: #t
    [⚙️ assert] While in do-not-disturb, notifications must not be drawn
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 16732 microseconds

running unit tests from file: rofi-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Rofi Configuration and Theming
  [🧪 test] Rofi Script Modes Registered
    [⚙️ assert] The launcher, window switcher and power menu modes should be registered
    ✅ got: #t
    [⚙️ assert] The theme picker mode should be registered
    ✅ got: #t
    [⚙️ assert] The power mode should point at the generated script
    ✅ got: #t
  [🧪 test] Power Menu Script
    [⚙️ assert] The power menu must be a Bash script
    ✅ got: #t;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling ./test/veritas/unit/bridges-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/bridges-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/bridges-spec.scm"
;;; compiling ./src/heks-linux/bridges.scm
;;; WARNING: compilation of ./src/heks-linux/bridges.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/bridges.scm"
;;; compiling ./src/heks-linux/prelude.scm
;;; WARNING: compilation of ./src/heks-linux/prelude.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/prelude.scm"
;;; compiling ./src/heks-linux/user-settings.scm
;;; WARNING: compilation of ./src/heks-linux/user-settings.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/user-settings.scm"
;;; compiling ./test/veritas/unit/alacritty-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/alacritty-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/alacritty-spec.scm"
;;; compiling ./src/heks-linux/alacritty.scm
;;; WARNING: compilation of ./src/heks-linux/alacritty.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/alacritty.scm"
;;; compiling ./src/heks-linux/palette.scm
;;; WARNING: compilation of ./src/heks-linux/palette.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/palette.scm"
;;; compiling ./test/veritas/unit/prelude-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/prelude-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/prelude-spec.scm"
;;; compiling ./test/veritas/unit/gtk-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/gtk-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/gtk-spec.scm"
;;; compiling ./src/heks-linux/gtk.scm
;;; WARNING: compilation of ./src/heks-linux/gtk.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/gtk.scm"
;;; compiling ./src/heks-linux/dconf.scm
;;; WARNING: compilation of ./src/heks-linux/dconf.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/dconf.scm"
;;; compiling ./test/veritas/unit/palette-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/palette-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/palette-spec.scm"
;;; compiling ./test/veritas/unit/mako-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/mako-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/mako-spec.scm"
;;; compiling ./src/heks-linux/mako.scm
;;; WARNING: compilation of ./src/heks-linux/mako.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/mako.scm"
;;; compiling ./test/veritas/unit/rofi-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/rofi-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/rofi-spec.scm"
;;; compiling ./src/heks-linux/rofi.scm
;;; WARNING: compilation of ./src/heks-linux/rofi.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/rofi.scm"
;;; compiling ./test/veritas/unit/kitty-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/kitty-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/kitty-spec.scm"
;;; compiling ./src/heks-linux/kitty.scm
;;; WARNING: compilation of ./src/heks-linux/kitty.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/kitty.scm"
;;; compiling ./test/veritas/unit/niri-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/niri-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/niri-spec.scm"
;;; compiling ./src/heks-linux/niri.scm
;;; WARNING: compilation of ./src/heks-linux/niri.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/niri.scm"
;;; compiling ./src/heks-linux/wallpaper.scm

    [⚙️ assert] The first entry must use the rofi \0icon\x1f separator
    ✅ got: #t
    [⚙️ assert] The power menu should expose a shutdown action
    ✅ got: #t
  [🧪 test] Rofi Theme (AList Structure)
    [⚙️ assert] Theme should be a list (AList)
    ✅ got: #t
    [⚙️ assert] Should contain a global wildcard '*' section
    ✅ got: #t
    [⚙️ assert] Global background-color should be transparent
    ✅ got: transparent
    [⚙️ assert] The spotlight panel should be softly rounded
    ✅ got: 18px
  [🧪 test] Theme Picker Lists Every Palette
    [⚙️ assert] Every registered palette should appear in the picker
    ✅ got: 38
    [⚙️ assert] The picker should know which palette is currently active
    ✅ got: #t
  [🧪 test] Theme Picker Script
    [⚙️ assert] The theme picker must be a Bash script
    ✅ got: #t
    [⚙️ assert] Choosing a palette must re-render the palette-dependent configs
    ✅ got: #t
    [⚙️ assert] Choosing a palette must persist itself as a local override
    ✅ got: #t
  [🧪 test] Rofi Config String Template
    [⚙️ assert] Configuration should inject the configured sans font
    ✅ got: #t
    [⚙️ assert] Icons should be enabled by default
    ✅ got: #t
    [⚙️ assert] Config must reference the generated theme file
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 17271 microseconds

running unit tests from file: kitty-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Kitty Terminal Suite
  [🧪 test] Generated File Declares Every Section
    [⚙️ assert] The file carries a generated-file header
    ✅ got: #t
    [⚙️ assert] A font section is emitted
    ✅ got: #t
    [⚙️ assert] A key-binding section is emitted
    ✅ got: #t
    [⚙️ assert] Scrollback is configured
    ✅ got: #t
  [🧪 test] Bindings Render As Map Lines
    [⚙️ assert] A symbol action renders bare
    ✅ got: map ctrl+y paste_from_clipboard

    [⚙️ assert] A string action keeps its arguments
    ✅ got: map ctrl+shift+plus change_font_size all +2.0

  [🧪 test] Modifier Translation Uses Kitty Spelling
    [⚙️ assert] Modifiers are joined with a plus sign
    ✅ got: ctrl+shift
    [⚙️ assert] Alt and Super are spelled out
    ✅ got: alt+super
    [⚙️ assert] Unknown modifiers pass through
    ✅ got: ctrl+Custom
  [🧪 test] Key Bindings Use Key Names Kitty Recognises
    [⚙️ assert] Control+Y pastes
    ✅ got: #t
    [⚙️ assert] Alt+W copies
    ✅ got: #t
    [⚙️ assert] Font size grows with ctrl+shift+equal
    ✅ got: #t
    [⚙️ assert] Font size shrinks with ctrl+shift+minus
    ✅ got: #t
    [⚙️ assert] Ctrl+shift+home jumps to the top of the scrollback
    ✅ got: #t
    [⚙️ assert] Ctrl+shift+end jumps to the bottom of the scrollback
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 18959 microseconds

running unit tests from file: niri-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Niri Configuration Suite
  [🧪 test] Configuration Serializes To KDL
    [⚙️ assert] The generated config should start with the Heks header
    ✅ got: #t
    [⚙️ assert] An input block should be emitted
    ✅ got: #t
    [⚙️ assert] A binds block should be emitted
    ✅ got: #t
  [🧪 test] Springy macOS Style Motion
    [⚙️ assert] Window opening should be animated
    ✅ got: #t
    [⚙️ assert] Animations should be spring driven
    ✅ got: #t
    [⚙️ assert] Workspace switches should be animated
    ✅ got: #t
  [🧪 test] Rounded Windows And Soft Shadows
    [⚙️ assert] Windows should get a rounded corner radius
    ✅ got: #t
    [⚙️ assert] Windows should cast a drop shadow
    ✅ got: #t
  [🧪 test] Clipboard History Is Recorded
    [⚙️ assert] The clipboard watcher should be started with the session
    ✅ got: #t
  [🧪 test] Startup Scripts Exist Under ~/.local/bin
    [⚙️ assert] The startup entry must name the script that the dconf module installs
    ✅ got: #t
    [⚙️ assert] The stale, non-existent startup script name must be gone
    ✅ got: #t
  [🧪 test] Natural Scrolling Follows Its Setting
    [⚙️ assert] Natural scrolling should stay off while the setting is disabled
    ✅ got: #t
    [⚙️ assert] Enabling the setting should emit natural-scroll into the config
    ✅ got: #t
  [🧪 test] macOS And Omarchy Parity Bindings
    [⚙️ assert] Super+Space should open the spotlight launcher
    ✅ got: #t
    [⚙️ assert] Toggling floating mode should move to Super+Shift+Space
    ✅ got: #t
    [⚙️ assert] Super+Return should open a terminal, as in Omarchy
    ✅ got: #t
    [⚙️ assert] Super+Q should close the focused window
    ✅ got: #t
    [⚙️ assert] Super+V should browse the clipboard history
    ✅ got: #t
    [⚙️ assert] The theme picker should be reachable from a binding
    ✅ got: #t
    [⚙️ assert] Do-not-disturb should be reachable from a binding
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 1 seconds, -792947 microseconds

running unit tests from file: wallpaper-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Wallpaper Selection Suite
  [🧪 test] Tinted Operandi Reaches The macOS Set
    [⚙️ assert] modus-operandi-tinted must not be swallowed by the generic operandi clause
    ✅ got: #t
    [⚙️ assert] The macOS wallpaper set should not be empty
    ✅ got: #t
  [🧪 test] Catalogued Palettes Use Their Own Directories
    [⚙️ assert] catppuccin-mocha should use its own artwork
    ✅ got: #t
    [⚙️ assert] ayu-dark should use the space artwork
    ✅ got: #t
  [🧪 test] Every Palette Resolves To Absolute Paths
    [⚙️ assert] No palette may end up without a wallpaper set
    ✅ got: #t
  [🧪 test] Generic Operandi Uses The Bergen Set
    [⚙️ assert] modus-operandi should stay inside the shared wallpaper tree
    ✅ got: #t
    [⚙️ assert] modus-operandi should include the Bergen backgrounds
    ✅ got: #t
  [🧪 test] Unknown Palettes Are Rejected
    [⚙️ assert] An unregistered palette should raise instead of picking nothing
    ✅ success catching error: %exception: (#<&message message: "exception occurred! unknown palette selected (not-a-real-palette), could not determine wallpaper set.">)
  [🧪 test] Rotation Script Is Valid Shell
    [⚙️ assert] The rotation script should be POSIX shell
    ✅ got: #t
    [⚙️ assert] The rotation script should replace the running swaybg
    ✅ got: #t
    [⚙️ assert] The script should contain one branch per wallpaper
    ✅ got: 2
ℹ️ info - ran 1 tasks in: 0 seconds, 5032 microseconds

running unit tests from file: dconf-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] dconf test suite
  [🧪 test] Heks settings are namespaced and complete
    [⚙️ assert] The language should be written under /heks-linux
    ✅ got: #t
    [⚙️ assert] The palette should be exported to dconf
    ✅ got: #t
    [⚙️ assert] The mono font should be exported to dconf
    ✅ got: #t
  [🧪 test] caps-to-ctrl follows its parameter
    [⚙️ assert] Disabling caps-to-ctrl must write false, not a hardcoded true
    ✅ got: #t
    [⚙️ assert] Enabling caps-to-ctrl must write true
    ✅ got: #t
  [🧪 test] mk-nested-dconf-writer-commands
    [⚙️ assert] Nested settings should flatten into dconf write commands
    ✅ got: (echo "/org/gnome/desktop/interface/gtk-key-theme --> 'Emacs'" && dconf write "/org/gnome/desktop/interface/gtk-key-theme" "'Emacs'" echo "/org/gnome/desktop/interface/cursor-size --> 24" && dconf write "/org/gnome/desktop/interface/cursor-size" "24" echo "/org/gnome/desktop/interface/enable-animations --> true" && dconf write "/org/gnome/desktop/interface/enable-animations" "true")
ℹ️ info - ran 1 tasks in: 0 seconds, 17288 microseconds

running unit tests from file: waybar-spec.scm, entrypoint: spec


ℹ️ info - shuffled with seed 2051939 (replay with VERITAS_SEED=2051939)
+----------------------------------------------+
[📑 suite] Waybar Configuration Suite
  [🧪 test] Main Configuration (JSON Source)
    [⚙️ assert] Waybar config should be a list (convertible to JSON)
    ✅ got: #t
    [⚙️ assert] Waybar position should be top by default
    ✅ got: top
    [⚙️ assert] Modules should be represented as vectors for JSON arrays
    ✅ got: #t
    [⚙️ assert] The do-not-disturb indicator should sit on the bar
    ✅ got: #t
  [🧪 test] Power Menu Actions
    [⚙️ assert] The logout entry should terminate the login session
    ✅ got: loginctl terminate-session $XDG_SESSION_ID
    [⚙️ assert] The shutdown entry should power the machine off
    ✅ got: systemctl poweroff
  [🧪 test] Rounded Bar Styling
    [⚙️ assert] The floating bar should carry the configured corner radius
    ✅ got: 0px
    [⚙️ assert] The bar corner radius should be overridable
    ✅ got: 0px
  [🧪 test] Do Not Disturb Indicator
    [⚙️ assert] Clicking the indicator should toggle the mako DND mode
    ✅ got: #t
  [🧪 test] Dynamic Start Button
    [⚙️ assert] Start button should return a list
    ✅ got: #t
    [⚙️ assert] Start button should respect the content keyword argument
    ✅ got: λ test
  [🧪 test] Power Menu SXML Structure
    [⚙️ assert] Power menu should start with SXML TOP node
    ✅ got: *TOP*
    [⚙️ assert] Power menu should contain an interface definition
    ✅ got: #t
    [⚙️ assert] Power menu should contain a logout GtkMenuItem
    ✅ got: #t
    [⚙️ assert] The logout entry should carry a readable label
    ✅ got: #t
  [🧪 test] CSS Rules Generation
    [⚙️ assert] CSS list should not be empty
    ✅ got: #t
    [⚙️ assert] CSS should contain a rule for the waybar window
    ✅ got: #t
    [⚙️ assert] Module background should be transparent in CSS
    ✅ got: transparent
ℹ️ info - ran 1 tasks in: 0 seconds, 31144 microseconds

finished running tests
;;; WARNING: compilation of ./src/heks-linux/wallpaper.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/wallpaper.scm"
;;; compiling ./test/veritas/unit/wallpaper-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/wallpaper-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/wallpaper-spec.scm"
;;; compiling ./test/veritas/unit/dconf-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/dconf-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/dconf-spec.scm"
;;; compiling ./test/veritas/unit/waybar-spec.scm
;;; WARNING: compilation of ./test/veritas/unit/waybar-spec.scm failed:
;;; failed to create path for auto-compiled file "./test/veritas/unit/waybar-spec.scm"
;;; compiling ./src/heks-linux/waybar.scm
;;; WARNING: compilation of ./src/heks-linux/waybar.scm failed:
;;; failed to create path for auto-compiled file "./src/heks-linux/waybar.scm"


--------------------------------------------------------------

Maak: the infinitely extensible command runner

Loading tasks from Maak file: /etc/byggsteg/job-clone/heks-linux/trunk/maak.scm

Executing Maak tasks: test

--------------------------------------------------------------

=> Running Maak task: test

  Unit tests, run in a hermetic container.

  Execute command:
guix time-machine --channels=channels.scm -- shell -m manifest.scm --container -- guile -L ./src -L ./test -c '((@ (veritas runner) run-tests))'

→ running command: cd /etc/byggsteg/job-clone/heks-linux/trunk && sudo maak deploy

sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory
sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory

[INFO] [2026-10-20 14:01:27 CEST] load-local-overrides: Attempting override resolution for module (heks-linux user-settings) with profile 'local-settings'
[INFO] [2026-10-20 14:01:27 CEST] load-local-overrides: $XDG_CONFIG_HOME empty/unset, falling back to $HOME/.config
[INFO] [2026-10-20 14:01:27 CEST] load-local-overrides: Checking for override file at: /root/.config/heks-linux/local-settings.scm
[INFO] [2026-10-20 14:01:27 CEST] load-local-overrides: No override file found at /root/.config/heks-linux/local-settings.scm. Skipping.API documentation saved to doc/api
index.texi:2133: warning: @end should only appear at the beginning of a line
index.texi:2147: warning: @end should only appear at the beginning of a line
index.texi:2162: warning: @end should only appear at the beginning of a line
index.texi: warning: must specify a title with a title command or @top
sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory
renamed './index_html' -> './doc/api-dist'
sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/API.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005falacritty.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fbridges.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fbtop.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fcontainers.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fdconf.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005ffastfetch.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fgif.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fgit.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fgtk.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fkitty.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005flambdock.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fmako.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fniri.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fpackages_005fflatpak.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fpackages_005fzypper.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fpalette.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fprelude.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005frmpc.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005frofi.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fuser_002dsettings.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fwallpaper.html'
removed '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fwaybar.html'
removed directory '/srv/http/jointhefreeworld.org/api-docs/heks-linux'
sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory
mkdir: created directory '/srv/http/jointhefreeworld.org/api-docs/heks-linux'
sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory
renamed 'doc/api-dist/API.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/API.html'
renamed 'doc/api-dist/heks_002dlinux_005falacritty.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005falacritty.html'
renamed 'doc/api-dist/heks_002dlinux_005fbridges.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fbridges.html'
renamed 'doc/api-dist/heks_002dlinux_005fbtop.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fbtop.html'
renamed 'doc/api-dist/heks_002dlinux_005fcontainers.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fcontainers.html'
renamed 'doc/api-dist/heks_002dlinux_005fdconf.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fdconf.html'
renamed 'doc/api-dist/heks_002dlinux_005ffastfetch.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005ffastfetch.html'
renamed 'doc/api-dist/heks_002dlinux_005fgif.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fgif.html'
renamed 'doc/api-dist/heks_002dlinux_005fgit.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fgit.html'
renamed 'doc/api-dist/heks_002dlinux_005fgtk.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fgtk.html'
renamed 'doc/api-dist/heks_002dlinux_005fkitty.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fkitty.html'
renamed 'doc/api-dist/heks_002dlinux_005flambdock.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005flambdock.html'
renamed 'doc/api-dist/heks_002dlinux_005fmako.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fmako.html'
renamed 'doc/api-dist/heks_002dlinux_005fniri.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fniri.html'
renamed 'doc/api-dist/heks_002dlinux_005fpackages_005fflatpak.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fpackages_005fflatpak.html'
renamed 'doc/api-dist/heks_002dlinux_005fpackages_005fzypper.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fpackages_005fzypper.html'
renamed 'doc/api-dist/heks_002dlinux_005fpalette.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fpalette.html'
renamed 'doc/api-dist/heks_002dlinux_005fprelude.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fprelude.html'
renamed 'doc/api-dist/heks_002dlinux_005frmpc.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005frmpc.html'
renamed 'doc/api-dist/heks_002dlinux_005frofi.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005frofi.html'
renamed 'doc/api-dist/heks_002dlinux_005fuser_002dsettings.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fuser_002dsettings.html'
renamed 'doc/api-dist/heks_002dlinux_005fwallpaper.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fwallpaper.html'
renamed 'doc/api-dist/heks_002dlinux_005fwaybar.html' -> '/srv/http/jointhefreeworld.org/api-docs/heks-linux/heks_002dlinux_005fwaybar.html'
sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8): No such file or directory
removed 'doc/api/index.texi'
removed directory 'doc/api'
removed directory 'doc/api-dist'
removed directory 'doc'


--------------------------------------------------------------

Maak: the infinitely extensible command runner

Loading tasks from Maak file: /etc/byggsteg/job-clone/heks-linux/trunk/maak.scm

Executing Maak tasks: deploy

--------------------------------------------------------------

=> Running Maak task: deploy

  Deploy the project's documentation.

  Execute command:
guix time-machine --channels=channels.scm -- shell -m manifest.scm -- documenta api ./src/heks-linux &&  texi2any -v --html --css-ref=https://jointhefreeworld.org/static/css/jointhefreeworld.css -o index_html ./doc/api/index.texi
inspect the job's lambda expression
(lambda()
  `((task . ("maak-test" "maak-deploy"))
    (project . "heks-linux")
    (branch-name . "trunk")
    (clone-url . "https://codeberg.org/jjba23/heks-linux.git")
    (env . ((HOME . "/tmp")))))