← Jobs
failure

test ant/term ↗

main @ 59351fb06127b6a5858bd1bc81f119d2ecfb9c8d · pipeline test #79 → · 2 more pipelines from this commit →
started 22 Sep 2026 11:56 UTC · ran for
10s, success 9s, success 10s, success 10s, success 12s, success 13s, success 13s, success 12s, success 12s, success 12s, success avg 11s ± 1s over the last 10 runs
feat: implement DEC Sixel graphics and the Kitty graphics protocol Closes the last 3 failing probes in scripts/terminfo_dev_test.py's conformance suite (108/111 -> 111/111): extensions.sixel, extensions.sixel-da1, and extensions.kitty-graphics. Both protocols share one storage model on vt.Grid (vt/image.odin): a new Cell.image_id anchors a placement to a single cell, mirroring link_id/cluster_id's "small id, resolved via a side table" shape but, unlike those never-freed tables, bounded and evictable (a placed image can be megabytes of raw RGBA). Sixel (vt/sixel.odin) is a from-scratch decoder for the 6-dot-per-byte palette bitmap encoding. Kitty graphics (vt/kitty_graphics.odin) leans on Odin's own core: stdlib (image/png, encoding/base64, compress/zlib) for decoding, no new FFI. render/render.odin gained a draw_row_images pass that blits placed images into the same wl_shm pixel buffer, reusing the glyph pass's existing alpha-compositing helper. Deliberate scope cuts (each documented at its point in the code): Kitty's raw RGB/RGBA formats, file/temp-file transmission mediums (security -- same class of concern as OSC 8's url_scheme_allowed), and re-placing a previously-transmitted image; sixel's HLS color mode. See ROADMAP.md's v1 (done) entry for the full writeup, including a real defer-scoping bug this work turned up along the way (defer inside an if-block fires at the end of that block, not the function). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
$ test failure · exit 1 · raw
++ mktemp -d
+ checkout=/tmp/tmp.7sWLThEHPl
+ trap 'rm -rf "$checkout"' EXIT
+ cp -R /var/lib/ci-tron/sources/394be4867f3166bd/. /tmp/tmp.7sWLThEHPl
+ cd /tmp/tmp.7sWLThEHPl
+ nix develop --command odin test . -all-packages
GC Warning: Could not open /proc/stat
[INFO ] --- [2026-09-22 11:56:10] Starting test runner with 12 threads. Set with -define:ODIN_TEST_THREADS=n.
[INFO ] --- [2026-09-22 11:56:10] The random seed sent to every test is: 1079737317830916. Set with -define:ODIN_TEST_RANDOM_SEED=n.
[INFO ] --- [2026-09-22 11:56:10] Memory tracking is enabled. Tests will log their memory usage if there's an issue.
[INFO ] --- [2026-09-22 11:56:10] < Final Mem/ Total Mem> < Peak Mem> (#Free/Alloc) :: [package.test_name]
Fontconfig error: No writable cache directories
/tmp/tmp.dz7SFdLWRk/.cache/fontconfig
/var/cache/fontconfig
/nix/store/q1bm68zxq6gda6z0i416gaq87qxvyxwp-fc-cache
term: --class requires an argument
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
term: -e requires a command
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
term: --working-directory requires an argument
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
term: unknown flag "--bogus"
usage: term [--class <app_id>] [--working-directory <dir>] [-e <command> [args...]]
[ERROR] --- [2026-09-22 11:56:10] [terminfo_test.odin:441:test_terminfo_source_infocmp_round_trip()] expected state.exit_code == 0 to be true
[ERROR] --- [2026-09-22 11:56:10] [terminfo_test.odin:442:test_terminfo_source_infocmp_round_trip()] expected strings.contains(string(stdout), "smacs") to be true
[ERROR] --- [2026-09-22 11:56:10] [terminfo_test.odin:443:test_terminfo_source_infocmp_round_trip()] expected strings.contains(string(stdout), "setaf") to be true
[ERROR] --- [2026-09-22 11:56:10] [terminfo_test.odin:463:test_terminfo_source_tput_longname()] expected state.exit_code == 0 to be true
[ERROR] --- [2026-09-22 11:56:10] [terminfo_test.odin:464:test_terminfo_source_tput_longname()] expected strings.contains(string(stdout), "term terminal emulator with 256 colors") to be true
Finished 469 tests in 928.779928ms. 2 tests failed.
- main.test_terminfo_source_infocmp_round_trip expected strings.contains(string(stdout), "setaf") to be true
- main.test_terminfo_source_tput_longname expected strings.contains(string(stdout), "term terminal emulator with 256 colors") to be true
To run only the failed tests, use:
-define:ODIN_TEST_NAMES=main.test_terminfo_source_infocmp_round_trip,main.test_terminfo_source_tput_longname,
If your terminal supports OSC 52, you may use -define:ODIN_TEST_CLIPBOARD to have this copied directly to your clipboard.
+ rm -rf /tmp/tmp.7sWLThEHPl
Artifacts

no artifacts