1these 2 derivations will be built:2 /nix/store/kf7yv5mfr2mw43cb3x9s1wcl4260lcv2-clj-binary-template.drv3 /nix/store/n16rw1c94kyqvggsar9klihjrsa60rvv-nad-api-0.2.drv4these 3 paths will be fetched (0.0 KiB download, 263.5 KiB unpacked):5 /nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home6 /nix/store/ikg74gmld1f1y0x97gv0zcxy0dvr5cxk-clojure-nix-locker.shell-env7 /nix/store/yajj0sqbq9gk044b6ylb02jgg2bphyl1-maven-repo-cache8building '/nix/store/kf7yv5mfr2mw43cb3x9s1wcl4260lcv2-clj-binary-template.drv'9building '/nix/store/n16rw1c94kyqvggsar9klihjrsa60rvv-nad-api-0.2.drv' on 'ssh-ng://nix-remote-build@quine'10building '/nix/store/n16rw1c94kyqvggsar9klihjrsa60rvv-nad-api-0.2.drv'11nad-api-0.2> Running phase: unpackPhase12nad-api-0.2> unpacking source archive /nix/store/dbw5pgqlkj6nm5habn4dqv3jfa93l77f-source13nad-api-0.2> source root is source14nad-api-0.2> Running phase: patchPhase15nad-api-0.2> Running phase: updateAutotoolsGnuConfigScriptsPhase16nad-api-0.2> Running phase: configurePhase17nad-api-0.2> no configure script, doing nothing18nad-api-0.2> Running phase: buildPhase19nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build20nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build21nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build22nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build23nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build24nad-api-0.2> Running phase: checkPhase25nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build26nad-api-0.2> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/nix/store/ff0q6zdcif91b2355g7bgqzj7kpgz1q1-clojure-home -Djava.io.tmpdir=/build27nad-api-0.2> --- unit (clojure.test) ---------------------------28nad-api-0.2> ol.nad-api.commands-test29nad-api-0.2> build-command-test30nad-api-0.2> builds query commands31nad-api-0.2> builds set commands with values32nad-api-0.2> builds increment/decrement commands33nad-api-0.2> commands-registry-test34nad-api-0.2> commands map exists and contains expected Main domain keys35nad-api-0.2> commands map contains Zone2 domain keys36nad-api-0.2> each command has required keys37nad-api-0.2> valid-operator-test38nad-api-0.2> validates operators for main commands39nad-api-0.2> model and version only support query operator40nad-api-0.2> zone2 commands support standard operators41nad-api-0.2> returns false for unknown commands42nad-api-0.2> 43nad-api-0.2> ol.nad-api.telnet-test44nad-api-0.2> connect-test45nad-api-0.2> connects to NAD receiver and returns connection46nad-api-0.2> reads initial model response on connect47nad-api-0.2> make-config-test48nad-api-0.2> creates config with host and defaults49nad-api-0.2> allows overriding port50nad-api-0.2> allows overriding timeout51nad-api-0.2> allows overriding both52nad-api-0.2> parse-command-test53nad-api-0.2> extracts command name before operator54nad-api-0.2> returns nil for invalid commands55nad-api-0.2> parse-introspection-response-test56nad-api-0.2> parses multi-line introspection response into set of command names57nad-api-0.2> handles empty response58nad-api-0.2> filters out lines without equals sign59nad-api-0.2> send-command-validation-test60nad-api-0.2> allows supported commands after introspection61nad-api-0.2> throws for unsupported commands after introspection62nad-api-0.2> allows any command without introspection63nad-api-0.2> parse-response-test64nad-api-0.2> extracts value after equals sign65nad-api-0.2> returns nil for response without equals66nad-api-0.2> handles values containing equals sign67nad-api-0.2> finds specific command in multi-line response68nad-api-0.2> returns nil when command not found in multi-line69nad-api-0.2> handles T778-style temperature dump70nad-api-0.2> introspect-test71nad-api-0.2> sends ? command and parses supported commands72nad-api-0.2> filters supported commands against registry73nad-api-0.2> disconnect-test74nad-api-0.2> disconnects and closes socket75nad-api-0.2> disconnecting twice is safe76nad-api-0.2> send-command-test77nad-api-0.2> sends query command and returns response78nad-api-0.2> sends set command and returns response79nad-api-0.2> sends increment command and returns response80nad-api-0.2> default-config-test81nad-api-0.2> default-config has expected structure82nad-api-0.2> wrap-command-test83nad-api-0.2> wraps command with telnet line endings84nad-api-0.2> unwrap-response-test85nad-api-0.2> strips leading newline and trailing carriage return86nad-api-0.2> handles response without line endings87nad-api-0.2> handles partial line endings88nad-api-0.2> 89nad-api-0.2> ol.nad-api-test90nad-api-0.2> e2e-error-handling-test91nad-api-0.2> returns 404 for unknown commands92nad-api-0.2> returns 400 for invalid operator93nad-api-0.2> returns 400 for missing value with = operator94nad-api-0.2> system-starts-when-device-is-unreachable-test95nad-api-0.2> api/start does not fail when a configured device is offline96nad-api-0.2> e2e-mute-toggle-test97nad-api-0.2> mute can be toggled on and off98nad-api-0.2> find-config-file-test99nad-api-0.2> uses --config-file option first when file exists100nad-api-0.2> falls back to ./config.edn when it exists101nad-api-0.2> exception contains searched paths and hint102nad-api-0.2> prefers --config-file over ./config.edn103nad-api-0.2> e2e-connection-and-introspection-test104nad-api-0.2> connects to device and discovers supported commands105nad-api-0.2> e2e-volume-control-test106nad-api-0.2> volume can be set, incremented, and decremented107nad-api-0.2> e2e-query-state-test108nad-api-0.2> GET request returns current device state109nad-api-0.2> xdg-config-home-test110nad-api-0.2> returns path ending with .config when XDG_CONFIG_HOME not set111nad-api-0.2> e2e-home-assistant-workflow-test112nad-api-0.2> simulates Home Assistant switch integration workflow113nad-api-0.2> e2e-source-selection-test114nad-api-0.2> source can be changed115nad-api-0.2> e2e-set-power-test116nad-api-0.2> POST request changes device power state117nad-api-0.2> parse-args-test118nad-api-0.2> parses --config-file option119nad-api-0.2> returns empty map for no args120nad-api-0.2> ignores unknown args121nad-api-0.2> handles --config-file at end of args122nad-api-0.2> 123nad-api-0.2> ol.nad-api.web-test124nad-api-0.2> handler-api-root-test125nad-api-0.2> GET /api returns list of all devices126nad-api-0.2> handler-recovers-from-disconnected-startup-test127nad-api-0.2> command routes work after a device starts disconnected128nad-api-0.2> handler-post-test129nad-api-0.2> POST with = operator sets value130nad-api-0.2> POST with + operator increments131nad-api-0.2> POST returns 400 for missing operator132nad-api-0.2> POST returns 400 for invalid operator133nad-api-0.2> POST returns 400 for missing value with = operator134nad-api-0.2> handler-device-discovery-test135nad-api-0.2> GET /api/{device} returns device info and supported commands136nad-api-0.2> handler-get-test137nad-api-0.2> GET queries device and returns JSON138nad-api-0.2> GET returns 404 for unknown command139nad-api-0.2> GET returns 404 for unknown device140nad-api-0.2> handler-multiple-devices-test141nad-api-0.2> handler supports multiple devices142nad-api-0.2> make-device-routes-test143nad-api-0.2> generates routes for device with commands plus discovery and reconnect144nad-api-0.2> device discovery route has only GET handler145nad-api-0.2> reconnect route has only POST handler146nad-api-0.2> command routes have GET and POST handlers147nad-api-0.2> returns discovery and reconnect routes even for empty commands148nad-api-0.2> available-commands-test149nad-api-0.2> intersects supported-commands with registry150nad-api-0.2> returns empty set when no overlap151nad-api-0.2> returns empty set for nil input152nad-api-0.2> returns empty set for empty input153nad-api-0.2> 154nad-api-0.2> ol.nad-api.sockets-test155nad-api-0.2> connect-test156nad-api-0.2> connects to a server and returns a socket157nad-api-0.2> throws on connection timeout to unreachable host158nad-api-0.2> read-until-test159nad-api-0.2> reads until delimiter character160nad-api-0.2> reads multiple segments until delimiter161nad-api-0.2> write-test162nad-api-0.2> writes string to socket163nad-api-0.2> close-test164nad-api-0.2> closes an open socket165nad-api-0.2> closing already closed socket is safe166nad-api-0.2> 167nad-api-0.2> 39 tests, 245 assertions, 0 failures.168nad-api-0.2> checkPhase completed in 34 seconds169nad-api-0.2> Running phase: installPhase170nad-api-0.2> Running phase: fixupPhase171nad-api-0.2> shrinking RPATHs of ELF executables and libraries in /nix/store/nvj2ld5z35jc7hw69vxlk0hm0d5x2zi7-nad-api-0.2172nad-api-0.2> checking for references to /build/ in /nix/store/nvj2ld5z35jc7hw69vxlk0hm0d5x2zi7-nad-api-0.2...173nad-api-0.2> patching script interpreter paths in /nix/store/nvj2ld5z35jc7hw69vxlk0hm0d5x2zi7-nad-api-0.2174nad-api-0.2> stripping (with command strip and flags -S -p) in /nix/store/nvj2ld5z35jc7hw69vxlk0hm0d5x2zi7-nad-api-0.2/bin175nad-api-0.2> shrinking RPATHs of ELF executables and libraries in /nix/store/xljqdswdb7nj4zhrwhrf6bgqvd950cnx-nad-api-0.2-lib176nad-api-0.2> checking for references to /build/ in /nix/store/xljqdswdb7nj4zhrwhrf6bgqvd950cnx-nad-api-0.2-lib...177nad-api-0.2> patching script interpreter paths in /nix/store/xljqdswdb7nj4zhrwhrf6bgqvd950cnx-nad-api-0.2-lib178nad-api-0.2> making symlink relative: /nix/store/xljqdswdb7nj4zhrwhrf6bgqvd950cnx-nad-api-0.2-lib/uber.jar179180post-build step Upload to Mali Attic: ok181⚙️ Pushing 2 paths to "ol-ci" on "mali" (0 already cached, 106 in upstream)...182✅ nvj2ld5z35jc7hw69vxlk0hm0d5x2zi7-nad-api-0.2 (88.91 KiB/s)183✅ xljqdswdb7nj4zhrwhrf6bgqvd950cnx-nad-api-0.2-lib (14.76 MiB/s)