scriba-34617187-e33c

job succeeded

starting new job...


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

HEAD is now at 2934725 chore: Release v0.4.5
From https://codeberg.org/jjba23/scriba
   2934725..9e3f130  trunk      -> origin/trunk
Updating 2934725..9e3f130
Fast-forward
 packaging/arch/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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

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

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

commit 9e3f130655bea6b46355d36a87cb80c7a3c731b9
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Mon Oct 26 13:24:01 2026 +0100

    chore: Pin the Arch source checksum for v0.4.5
    
    The recipe moved to 0.4.5 with the release; this is the checksum of the tag's
    archive, so makepkg verifies the sources it downloads.
    
    🤖 Generated with [ECA](https://eca.dev) (deepseek/deepseek-flash)
    
    Co-Authored-By: eca-agent <git@eca.dev>

M       packaging/arch/PKGBUILD

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


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

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

found unit tests: (log-spec.scm env-config-spec.scm usage-spec.scm string-log-spec.scm config-spec.scm file-spec.scm auto-log-spec.scm syslog-spec.scm file-log-spec.scm)


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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)[2026-10-26 13:24:27 CET] [INFO] Hello Scriba!
[2026-10-26 13:24:27 CET] [INFO] [#hello #world] Hello World!
[2026-10-26 13:24:27 CET] [INFO] [#hello #world] Yes! [planet=earth]
[2026-10-26 13:24:27 CET] [#performance] Slept 0 seconds
[2026-10-26 13:24:27 CET] [WARNING] some kind of warning
[2026-10-26 13:24:27 CET] [CRITICAL] IN VINO VERITAS
[2026-10-26 13:24:27 CET] [CRITICAL] IN AQUA [SANITAS=CARPE DIEM]
[2026-10-26 13:24:27 CET] [SUCCESS] ja, wir schaffen das!
[2026-10-26 13:24:27 CET] [SUCCESS] yes! we made it
[2026-10-26 13:24:27 CET] While any editor can save your files only Emacs can save your soul !
[2026-10-26 13:24:27 CET] [INFO] Hello Scriba, 2 + 2 = 4!
[2026-10-26 13:24:27 CET] [INFO] Some log with context [sample-1=value-1]
{"level":"INFO","time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"Hello Scriba!"}
{"level":"WARNING","time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"some kind of warning"}
{"level":"SUCCESS","time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"yes! we made it"}
{"tags":["performance"],"time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"Slept 0 seconds"}
{"time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"While any editor can save your files only Emacs can save your soul !"}
{"level":"INFO","time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"Hello Scriba, current module is: #<directory (guile-user) 7f7bd3b1ac80>!"}
{"level":"INFO","time":"2026-10-26 13:24:27 CET","host":"wolk-jjba","message":"Some log with context","sample-2":"value-2"}
;;; note: source file ./src/scriba/scriba.scm
;;;       newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/scriba.go
;;; note: source file ./src/scriba/scriba.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/scriba.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/scriba.scm.go
;;; note: source file ./src/scriba/console.scm
;;;       newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/console.go
;;; note: source file ./src/scriba/console.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/console.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/console.scm.go
;;; note: source file ./src/scriba/layout.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/layout.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/layout.scm.go
;;; note: source file ./src/scriba/color-console.scm
;;;       newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/color-console.go
;;; note: source file ./src/scriba/color-console.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/color-console.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/color-console.scm.go
;;; note: source file ./src/scriba/json.scm
;;;       newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/json.go
;;; note: source file ./src/scriba/json.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/json.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/json.scm.go
;;; note: source file ./src/scriba/auto.scm
;;;       newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/auto.go
;;; note: source file ./src/scriba/auto.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/auto.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/auto.scm.go
;;; note: source file ./src/scriba/file.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/file.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/file.scm.go
;;; note: source file ./src/scriba/syslog.scm
;;;       newer than compiled /gnu/store/kbl5612r4m6yzr09rnkps1k5jgl40lzg-profile/lib/guile/3.0/site-ccache/scriba/syslog.go
;;; note: source file ./src/scriba/syslog.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/scriba/syslog.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/scriba/trunk/src/scriba/syslog.scm.go
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.

+----------------------------------------------+
[📑 suite] Core Engine - Text & JSON Backends
  [🧪 test] Standard and Colorized Console Output Handling
    [⚙️ assert] Processes baseline strings, colorized streams, and multi-layered tag/context parameters without faults
    ✅ success running without errors
    [⚙️ assert] Enforces strict severity thresholds and evaluates format string arguments across console writers
    ✅ success running without errors
    [⚙️ assert] Safely captures and binds flat associative context pairs during console emission
    ✅ success running without errors
  [🧪 test] JSON Structured Map Output Pipeline
    [⚙️ assert] Serializes clean, unformatted top-level message keys to JSON text fields
    ✅ success running without errors
    [⚙️ assert] Mutes low-severity data and marshals dynamic evaluation states into complex JSON trees
    ✅ success running without errors
    [⚙️ assert] Encodes active metadata maps as nested JSON objects within the parent scheme payload
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] Severity Threshold Hierarchy Validation
  [🧪 test] Log Level Precedence Visibility Matrix
    [⚙️ assert] Permit: [trace] visibility should be active inside a [trace] logging threshold
    ✅ got: #t
    [⚙️ assert] Suppress: [trace] visibility should be discarded inside a [debug] logging threshold
    ✅ got: #f
    [⚙️ assert] Suppress: [debug] visibility should be discarded inside a [critical] logging threshold
    ✅ got: #f
    [⚙️ assert] Permit: [info] visibility should be active inside a [trace] logging threshold
    ✅ got: #t
    [⚙️ assert] Suppress: [info] visibility should be discarded inside a [error] logging threshold
    ✅ got: #f
    [⚙️ assert] Permit: [success] visibility should be active inside a [info] logging threshold
    ✅ got: #t
    [⚙️ assert] Permit: [warning] visibility should be active inside a [trace] logging threshold
    ✅ got: #t
    [⚙️ assert] Permit: [warning] visibility should be active inside a [debug] logging threshold
    ✅ got: #t
    [⚙️ assert] Permit: [critical] visibility should be active inside a [info] logging threshold
    ✅ got: #t
    [⚙️ assert] Permit: [error] visibility should be active inside a [warning] logging threshold
    ✅ got: #t
    [⚙️ assert] Permit: [error] visibility should be active inside a [error] logging threshold
    ✅ got: #t
ℹ️ info - ran 2 tasks in: 0 seconds, 7460 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)
+----------------------------------------------+
[📑 suite] Environment Driven Auto-Logger Configuration
  [🧪 test] Auto syslog keeps an RFC 5424 timestamp by default
    [⚙️ assert] Does not leak the human console timestamp format into syslog
    ✅ got: #t
  [🧪 test] Environment context filters match structured context
    [⚙️ assert] Parses key;value environment pairs into a real alist
    ✅ got: [INFO] kept [type=performance]

  [🧪 test] Environment line ending is honored
    [⚙️ assert] Routes SCRIBA_LINE_ENDING into the backend
    ✅ got: 
[INFO] hello
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
ℹ️ info - ran 1 tasks in: 0 seconds, 9792 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)
+----------------------------------------------+
[📑 suite] Color Console Backend
  [🧪 test] Severities get distinct ANSI colors
    [⚙️ assert] INFO is blue
    ✅ got: #t
    [⚙️ assert] CRITICAL is bold red
    ✅ got: #t
    [⚙️ assert] Colors are reset
    ✅ got: #t
  [🧪 test] Timestamps are dimmed
    [⚙️ assert] The timestamp is wrapped in the dim escape
    ✅ got: #t
+----------------------------------------------+
[📑 suite] Layout Rendering
  [🧪 test] Timestamp formats are passed through
    [⚙️ assert] A literal strftime format is reproduced
    ✅ got: [FIXED] hello

  [🧪 test] Fields follow the requested order
    [⚙️ assert] Every field lands in layout order
    ✅ got: [FIXED] [INFO] [app] [#db] wolk-jjba hello [tenant=acme]

  [🧪 test] Names are bracketed
    [⚙️ assert] The logger name gets its own bracket
    ✅ got: [worker] started

  [🧪 test] Unlisted fields are omitted
    [⚙️ assert] A message-only layout renders the message alone
    ✅ got: just this

+----------------------------------------------+
[📑 suite] Framing and Message Formatting
  [🧪 test] Messages without arguments are literal
    [⚙️ assert] No stray format interpretation
    ✅ got: 100% done ~ here
  [🧪 test] Non-string messages are displayed
    [⚙️ assert] Objects are printed with display semantics
    ✅ got: 42
  [🧪 test] The default-line-ending parameter is honored
    [⚙️ assert] New loggers pick up the parameterized default
    ✅ got: 
hello
  [🧪 test] write-log-line supports both newline placements
    [⚙️ assert] Trailing mode appends the newline
    ✅ got: line

    [⚙️ assert] Leading mode prepends it
    ✅ got: 
line
  [🧪 test] Messages with arguments are formatted
    [⚙️ assert] Format arguments are applied
    ✅ got: 2 + 2 = 4
  [🧪 test] Unknown newline placements are rejected
    [⚙️ assert] An invalid line-ending raises
    ✅ success catching error: misc-error: (#f Scriba: invalid line-ending, expected 'trailing or 'leading ~S (middle) #f)
+----------------------------------------------+
[📑 suite] Auto Logger Routing
  [🧪 test] JSON backend is selected by the environment
    [⚙️ assert] SCRIBA_LOGGER=json produces JSON
    ✅ got: INFO
  [🧪 test] Environment level filters the stream
    [⚙️ assert] SCRIBA_LOG_LEVEL is enforced
    ✅ got: [WARNING] kept

  [🧪 test] Unknown backends fall back to the console
    [⚙️ assert] A typo does not leave the program without a logger
    ✅ got: [INFO] hello

  [🧪 test] A space separated SCRIBA_LOG_LAYOUT is rejected
    [⚙️ assert] Fields are comma separated, so a typo fails loudly
    ✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field #{level message}#; expected one of (level tags time host name context message) () #f)
  [🧪 test] Syslog backend is selected by the environment
    [⚙️ assert] SCRIBA_LOGGER=syslog emits an RFC 5424 header
    ✅ got: #t
  [🧪 test] Auto JSON pretty printing is honored
    [⚙️ assert] SCRIBA_JSON_PRETTY=true reaches the backend
    ✅ got: #t
  [🧪 test] Color console backend is selected by the environment
    [⚙️ assert] SCRIBA_LOGGER=color-console emits ANSI escapes
    ✅ got: #t
  [🧪 test] Tag filters are trimmed and empty entries dropped
    [⚙️ assert] Only the matching tag stream survives
    ✅ got: [INFO] web

  [🧪 test] SCRIBA_LOG_LAYOUT is honored
    [⚙️ assert] Comma separated fields drive the rendered line
    ✅ got: [INFO] hello [tenant=acme]

+----------------------------------------------+
[📑 suite] Tag and Context Filtering
  [🧪 test] Tag filters match on any intersection
    [⚙️ assert] One matching tag is enough
    ✅ got: kept

  [🧪 test] Nested tags accumulate within a scope
    [⚙️ assert] Inner tags are prepended to the outer ones
    ✅ got: [#inner #outer] nested

  [🧪 test] Empty filters are wildcards
    [⚙️ assert] A logger without filters logs everything
    ✅ got: [INFO] [#anything] kept [tenant=acme]

  [🧪 test] Tag matching is lenient across types
    [⚙️ assert] A string filter matches a symbol tag
    ✅ got: kept

  [🧪 test] Context filters match a single pair
    [⚙️ assert] The other context pairs are irrelevant
    ✅ got: kept

  [🧪 test] Context filters compare numbers loosely
    [⚙️ assert] 42 matches "42"
    ✅ got: kept

  [🧪 test] Context filters are restored after their scope
    [⚙️ assert] A log outside the scope is filtered again
    ✅ got: inside

+----------------------------------------------+
[📑 suite] Syslog Backend Structure
  [🧪 test] Includes the process id and the given timestamp
    [⚙️ assert] Timestamp and pid are rendered
    ✅ got: FIXED 14174 hello

  [🧪 test] Severities map to RFC 5424 priorities
    [⚙️ assert] trace/debug/info/success/warning/error/critical
    ✅ got: (<15>2 <15>2 <14>2 <13>2 <12>2 <11>2 <10>2)
+----------------------------------------------+
[📑 suite] Severity Thresholds
  [🧪 test] A warning threshold keeps warning and above
    [⚙️ assert] Exactly the allowed severities reach the port
    ✅ got: ([WARNING] warning [ERROR] error [CRITICAL] critical unlevelled)
  [🧪 test] level #f disables every statement
    [⚙️ assert] Not even level-less messages are emitted
    ✅ got: 
  [🧪 test] level #t enables every statement
    [⚙️ assert] Every severity plus log-message is emitted
    ✅ got: 8
  [🧪 test] Severity ordering is consistent
    [⚙️ assert] error passes a warning threshold
    ✅ got: #t
    [⚙️ assert] info is dropped by a warning threshold
    ✅ got: #f
    [⚙️ assert] The threshold itself is included
    ✅ got: #t
    [⚙️ assert] critical passes the most permissive threshold
    ✅ got: #t
    [⚙️ assert] trace is dropped by the strictest threshold
    ✅ got: #f
+----------------------------------------------+
[📑 suite] Auto Logger Memoization
  [🧪 test] Changing a setting produces a new logger
    [⚙️ assert] The level is part of the cache key
    ✅ got: #f
  [🧪 test] Stable environments reuse one logger
    [⚙️ assert] The same configuration is cached
    ✅ got: #t
+----------------------------------------------+
[📑 suite] JSON Backend Structure
  [🧪 test] Emits one valid JSON object per line
    [⚙️ assert] JSON lines end with a newline
    ✅ got: #t
    [⚙️ assert] A compact JSON log is a single line
    ✅ got: 1
  [🧪 test] JSON respects the level threshold
    [⚙️ assert] Only the allowed level is serialized
    ✅ got: (kept)
  [🧪 test] Stores level, message and host
    [⚙️ assert] The level is an uppercase string
    ✅ got: INFO
    [⚙️ assert] The message is a JSON string
    ✅ got: hello
    [⚙️ assert] The host is present
    ✅ got: #t
  [🧪 test] Pretty printing is controlled by #:pretty?
    [⚙️ assert] Compact output is one line
    ✅ got: 1
    [⚙️ assert] Pretty output spans several lines
    ✅ got: #t
  [🧪 test] Serializes tags as an array
    [⚙️ assert] Both tags reach the array
    ✅ got: 2
  [🧪 test] Merges context members into the log object
    [⚙️ assert] Context pairs become top level JSON members
    ✅ got: acme
ℹ️ info - ran 9 tasks in: 0 seconds, 56816 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)
+----------------------------------------------+
[📑 suite] Console Backend - String Stream Output
  [🧪 test] Layout and Context Layout Rendering
    [⚙️ assert] Formats severe levels and layout records to raw string buffers accurately
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] Dynamic Context Filtering Pipeline
  [🧪 test] Non-Matching Context Suppression
    [⚙️ assert] Intercepts unlisted context streams and silently drops them via log-unit redirection
    ✅ success running without errors
  [🧪 test] Matching Context Interception
    [⚙️ assert] Passes execution and prepends active contexts when context matches the filter hash
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] Dynamic Tag Filtering Pipeline
  [🧪 test] Non-Matching Tag Suppression
    [⚙️ assert] Intercepts unlisted tag streams and silently drops them via log-unit redirection
    ✅ success running without errors
  [🧪 test] Matching Tag Interception
    [⚙️ assert] Passes execution and prepends active tags when context matches the filter hash
    ✅ success running without errors
ℹ️ info - ran 3 tasks in: 0 seconds, 3695 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)
+----------------------------------------------+
[📑 suite] Memoization Honors Dynamically Scoped Defaults
  [🧪 test] Cached loggers follow the parameterized out-port
    [⚙️ assert] Different default-out-port values must not share a cached logger
    ✅ got: #f
    [⚙️ assert] The same default-out-port value must resolve to the cached logger
    ✅ got: #t
    [⚙️ assert] The first logger keeps writing to its own port
    ✅ got: first port

    [⚙️ assert] The second logger keeps writing to its own port
    ✅ got: second port

  [🧪 test] Explicit keyword arguments bypass parameter defaults
    [⚙️ assert] Explicit out-port wins over the parameterized default
    ✅ got: explicit

+----------------------------------------------+
[📑 suite] Constructor Argument Validation
  [🧪 test] Boolean and known levels are accepted
    [⚙️ assert] #t means always log
    ✅ got: #t
    [⚙️ assert] #f means never log
    ✅ got: #t
    [⚙️ assert] Known severities are valid
    ✅ got: #t
    [⚙️ assert] Unknown severities are invalid
    ✅ got: #f
  [🧪 test] Unknown log levels are rejected
    [⚙️ assert] A typo such as 'verbose fails at construction time
    ✅ success catching error: scriba-invalid-log-level: (make-filtered-logger Invalid log level verbose; expected #t, #f or one of (trace debug info success warning error critical) () #f)
  [🧪 test] Layout fields are backend specific
    [⚙️ assert] The process id is not a JSON field
    ✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field process-id; expected one of (level tags time host name message context) () #f)
    [⚙️ assert] The process id is a syslog field
    ✅ got: #t
    [⚙️ assert] message is a known field
    ✅ got: #t
    [⚙️ assert] nonsense is not
    ✅ got: #f
  [🧪 test] Unknown layout fields are rejected
    [⚙️ assert] A mistyped field fails instead of silently writing blank lines
    ✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field nonsense; expected one of (level tags time host name context message) () #f)
    [⚙️ assert] A space separated SCRIBA_LOG_LAYOUT becomes one unknown field
    ✅ success catching error: scriba-invalid-layout: (make-filtered-logger Unknown log layout field #{level message}#; expected one of (level tags time host name context message) () #f)
    [⚙️ assert] An empty layout would log empty lines, so it is rejected
    ✅ success catching error: scriba-invalid-layout: (make-filtered-logger Invalid log layout (); expected a non-empty list of (level tags time host name context message) () #f)
  [🧪 test] JSON pretty printing follows its parameter
    [⚙️ assert] default-json-pretty? drives the JSON logger default
    ✅ got: #t
+----------------------------------------------+
[📑 suite] Configurable Log Line Termination
  [🧪 test] Leading newline remains available
    [⚙️ assert] Opting into 'leading restores the prefixed newline
    ✅ got: 
[INFO] hello
  [🧪 test] Trailing newline is the default
    [⚙️ assert] Log lines end with a newline and no leading blank line
    ✅ got: [INFO] hello

  [🧪 test] Invalid line endings are rejected
    [⚙️ assert] Logging with an unknown line-ending raises an error
    ✅ success catching error: misc-error: (#f Scriba: invalid line-ending, expected 'trailing or 'leading ~S (middle) #f)
ℹ️ info - ran 3 tasks in: 0 seconds, 37980 microseconds

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


warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)
+----------------------------------------------+
[📑 suite] File Backend - Argument Validation
  [🧪 test] Requires a path
    [⚙️ assert] No path, no file logger
    ✅ success catching error: misc-error: (#f Scriba: a file logger needs #:path (or default-file-path) ~S (#f) #f)
    [⚙️ assert] A blank path is rejected
    ✅ success catching error: misc-error: (#f Scriba: a file logger needs #:path (or default-file-path) ~S (   ) #f)
  [🧪 test] Honors the default-file-path parameter
    [⚙️ assert] default-file-path supplies the destination
    ✅ got: (from parameter)
  [🧪 test] Rejects impossible rotation settings
    [⚙️ assert] A zero byte limit is rejected
    ✅ success catching error: misc-error: (#f Scriba: #:max-size must be #f (never rotate) or a positive integer number of bytes, got ~S (0) #f)
    [⚙️ assert] A negative byte limit is rejected
    ✅ success catching error: misc-error: (#f Scriba: #:max-size must be #f (never rotate) or a positive integer number of bytes, got ~S (-5) #f)
    [⚙️ assert] A non-numeric byte limit is rejected
    ✅ success catching error: misc-error: (#f Scriba: #:max-size must be #f (never rotate) or a positive integer number of bytes, got ~S (ten) #f)
    [⚙️ assert] A negative backup count is rejected
    ✅ success catching error: misc-error: (#f Scriba: #:max-backups must be a non-negative integer, got ~S (-1) #f)
    [⚙️ assert] A non-numeric backup count is rejected
    ✅ success catching error: misc-error: (#f Scriba: #:max-backups must be a non-negative integer, got ~S (3) #f)
+----------------------------------------------+
[📑 suite] File Backend - Plaintext Writing
  [🧪 test] Honors level thresholds
    [⚙️ assert] Only lines at or above the threshold reach the file
    ✅ got: ([ERROR] kept error)
  [🧪 test] Appends to a file that already exists
    [⚙️ assert] Logging never truncates an existing file
    ✅ got: (first run second run)
  [🧪 test] Supports leading newline placement
    [⚙️ assert] Leading mode prefixes each line with a newline
    ✅ got: 
first
second
  [🧪 test] Leaves a literal message untouched
    [⚙️ assert] Messages without arguments skip the formatter
    ✅ got: 100% done ~ not a directive

  [🧪 test] Renders name, tags and context in layout order
    [⚙️ assert] The file backend uses the same formatting as the console
    ✅ got: [INFO] [app] [#db #performance] done [tenant=acme]
  [🧪 test] Creates the file and appends formatted lines
    [⚙️ assert] Logging creates a missing log file
    ✅ got: #t
    [⚙️ assert] Lines are appended in order with their levels
    ✅ got: ([INFO] hello [WARNING] careful)
  [🧪 test] Formats messages carrying arguments
    [⚙️ assert] Format arguments are substituted as usual
    ✅ got: 2 + 2 = 4

+----------------------------------------------+
[📑 suite] File Backend - Environment Driven Configuration
  [🧪 test] SCRIBA_FILE_MAX_SIZE rotates the env configured file
    [⚙️ assert] The environment threshold drives rotation
    ✅ got: #t
  [🧪 test] A missing SCRIBA_FILE_PATH is reported
    [⚙️ assert] file logging without a path fails loudly
    ✅ success catching error: misc-error: (#f Scriba: SCRIBA_LOGGER=file needs SCRIBA_FILE_PATH (or the #:path argument) () #f)
  [🧪 test] SCRIBA_LOGGER=file writes to SCRIBA_FILE_PATH
    [⚙️ assert] The auto logger routes to the file backend
    ✅ got: ([INFO] from environment [ERROR] second)
  [🧪 test] SCRIBA_FILE_MAX_SIZE=off disables rotation
    [⚙️ assert] Off really means no backups
    ✅ got: #f
  [🧪 test] Changing SCRIBA_FILE_PATH yields a different logger
    [⚙️ assert] The path is part of the memoization key
    ✅ got: #f
    [⚙️ assert] The old logger keeps writing to its file
    ✅ got: ([INFO] first)
    [⚙️ assert] The new logger writes to the new file
    ✅ got: ([INFO] second)
  [🧪 test] An invalid SCRIBA_FILE_MAX_SIZE is reported
    [⚙️ assert] A malformed size is not silently ignored
    ✅ success catching error: misc-error: (#f Scriba: SCRIBA_FILE_MAX_SIZE must be a positive byte count or 'off' ~S (banana) #f)
+----------------------------------------------+
[📑 suite] File Backend - Size Based Rotation
  [🧪 test] Rotates before a line would exceed the limit
    [⚙️ assert] A full file is renamed to its first backup
    ✅ got: #t
    [⚙️ assert] The backup holds the lines written before rotation
    ✅ got: 9
    [⚙️ assert] The current file starts over after rotation
    ✅ got: 1
    [⚙️ assert] The current file stays within the size limit
    ✅ got: #t
  [🧪 test] Never rotates when max-size is #f
    [⚙️ assert] No backup file appears
    ✅ got: #f
    [⚙️ assert] Every line stays in the one file
    ✅ got: 100
  [🧪 test] max-backups 0 truncates instead of keeping history
    [⚙️ assert] No backups are left behind
    ✅ got: #f
    [⚙️ assert] The file is truncated whenever it fills up
    ✅ got: #t
  [🧪 test] A later logger can change the rotation policy
    [⚙️ assert] Reconfiguring a path updates its shared sink
    ✅ got: #t
  [🧪 test] rotate-file! reports success
    [⚙️ assert] rotate-file! returns #t
    ✅ got: #t
  [🧪 test] rotate-file! refuses an unknown path
    [⚙️ assert] Rotating a file Scriba does not write needs a logger first
    ✅ success catching error: misc-error: (#f Scriba: no file sink is open for this path, create a file logger first ~S (/tmp/scriba-file-spec-QvL5yn/never-opened.log) #f)
  [🧪 test] rotate-file! moves the current file into its first backup
    [⚙️ assert] The written lines move into the backup
    ✅ got: (one two)
    [⚙️ assert] The current file is empty after rotation
    ✅ got: 0
  [🧪 test] Counts UTF-8 bytes, not characters
    [⚙️ assert] The threshold accounts for encoded length
    ✅ got: 5
  [🧪 test] Keeps only the configured number of backups
    [⚙️ assert] The first backup is kept
    ✅ got: #t
    [⚙️ assert] The second backup is kept
    ✅ got: #t
    [⚙️ assert] Backups beyond the limit are dropped
    ✅ got: #f
ℹ️ info - ran 4 tasks in: 0 seconds, 50697 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)[WARNING] [2026-10-26 13:24:27 CET] some kind of warning
[SUCCESS] [2026-10-26 13:24:27 CET] yes! we made it
[INFO] [2026-10-26 13:24:27 CET] Hello Scriba, 2 + 2 = 4!
[INFO] [2026-10-26 13:24:27 CET] Hello Scriba!
[#performance] [2026-10-26 13:24:27 CET] Slept 0 seconds
[2026-10-26 13:24:27 CET] While any editor can save your files only Emacs can save your soul !
[INFO] [2026-10-26 13:24:27 CET] Some log with context [sample-1=value-1]

+----------------------------------------------+
[📑 suite] Adaptive Auto-Logger Routing Backend
  [🧪 test] Severity Enforcement and Argument Expansion
    [⚙️ assert] Intercepts low-priority severities and cleanly expands layout format arguments
    ✅ success running without errors
  [🧪 test] Baseline Routing and Dynamic Tag Binding
    [⚙️ assert] Dispatches unformatted strings and appends active tags without execution faults
    ✅ success running without errors
  [🧪 test] Context Metadata Mapping
    [⚙️ assert] Safely threads structured Mapped Diagnostic Context (MDC) scopes onto active pipelines
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 9763 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)<14>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - Hello Scriba!
<12>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - some kind of warning
<13>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - yes! we made it
<14>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - Hello Scriba, 2 + 2 = 4!
<14>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - [sample-1="value-1"] Some log with context
<14>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - [sample-1="value-1"] Some log with context
<14>2 2026-10-26T13:24:27+0100 wolk-jjba 14174 - Not gonna sleep! [#performance #benchmark]

+----------------------------------------------+
[📑 suite] Syslog Integration Backend
  [🧪 test] Baseline Plain-Text Logging
    [⚙️ assert] Emits a standard, unformatted string without errors
    ✅ success running without errors
  [🧪 test] Severity Handlers and String Formatting
    [⚙️ assert] Processes multiple severities and expands format arguments cleanly
    ✅ success running without errors
  [🧪 test] Dynamic Context and Tag Propagation
    [⚙️ assert] Safely threads structured metadata alists and active tag lists to output
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 1732 microseconds

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


ℹ️ info - shuffled with seed 992766712 (replay with VERITAS_SEED=992766712)
+----------------------------------------------+
[📑 suite] Console Backend - File System Destination
  [🧪 test] File Destination Logging Operations
    [⚙️ assert] Enforces severity thresholds and drops formatted payloads to a file stream without faults
    ✅ success running without errors
    [⚙️ assert] Appends dynamic Mapped Diagnostic Context (MDC) properties onto a file-bound record
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 0 seconds, 3346 microseconds

finished running tests
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.


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

Maak 0.14.0: the infinitely extensible command runner

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

Executing Maak tasks: test


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

=> Running Maak task: test

  Run project's tests.

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

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



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

Maak 0.14.0: the infinitely extensible command runner

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

Executing Maak tasks: deploy


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

=> Running Maak task: deploy

  Generate documentation for the project and publish to web directory.
API documentation saved to doc/api
index.texi: warning: must specify a title with a title command or @top

Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- documenta api ./src/scriba

Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- texi2any -v --html --css-ref=https://jointhefreeworld.org/static/css/jointhefreeworld.css -o index_html ./doc/api/index.texi
renamed './index_html' -> './doc/api-dist'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/API.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fauto.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fcolor_002dconsole.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fconsole.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005ffile.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fjson.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005flayout.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fscriba.html'
removed '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fsyslog.html'
removed directory '/srv/http/jointhefreeworld.org/api-docs/scriba'
mkdir: created directory '/srv/http/jointhefreeworld.org/api-docs/scriba'
renamed 'doc/api-dist/API.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/API.html'
renamed 'doc/api-dist/scriba_005fauto.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fauto.html'
renamed 'doc/api-dist/scriba_005fcolor_002dconsole.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fcolor_002dconsole.html'
renamed 'doc/api-dist/scriba_005fconsole.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fconsole.html'
renamed 'doc/api-dist/scriba_005ffile.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005ffile.html'
renamed 'doc/api-dist/scriba_005fjson.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fjson.html'
renamed 'doc/api-dist/scriba_005flayout.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005flayout.html'
renamed 'doc/api-dist/scriba_005fscriba.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fscriba.html'
renamed 'doc/api-dist/scriba_005fsyslog.html' -> '/srv/http/jointhefreeworld.org/api-docs/scriba/scriba_005fsyslog.html'

Executing: mv -v doc/api-dist/* /srv/http/jointhefreeworld.org/api-docs/scriba
removed 'doc/api/index.texi'
removed directory 'doc/api'
removed directory 'doc/api-dist'
removed directory 'doc'
inspect the job's lambda expression
(lambda()
  `((task . ("maak-test" "maak-deploy"))
    (project . "scriba")
    (branch-name . "trunk")
    (clone-url . "https://codeberg.org/jjba23/scriba.git")
    (env . ((VERITAS_REPORTER . emoji-reporter)))))