heks-emacs-22803792-de27

job succeeded

starting new job...


→ running command: dir='/etc/byggsteg/job-clone//heks-emacs/trunk'
branch='trunk'
if ! command -v git >/dev/null 2>&1; then
  echo 'byggsteg: git is not on this deployment PATH, so the clone cannot be updated' >&2
  exit 1
fi
if ! cd "$dir"; then
  echo "byggsteg: cannot enter the clone $dir" >&2
  exit 1
fi
root=$(git rev-parse --show-toplevel 2>/dev/null)
if [ "$root" != "$(pwd -P)" ]; then
  echo "byggsteg: $dir is not a git checkout; remove it and the next run clones it again" >&2
  exit 1
fi
if ! origin=$(git remote get-url origin 2>/dev/null); then
  echo "byggsteg: $dir has no origin remote to fetch $branch from" >&2
  exit 1
fi
before=$(git rev-parse --short HEAD 2>/dev/null) || before=none
attempt=1
while :; do
  if GIT_TERMINAL_PROMPT=0 git fetch --quiet origin "+refs/heads/$branch:refs/remotes/origin/$branch"; then
    break
  fi
  if [ "$attempt" -ge 3 ]; then
    echo "byggsteg: could not fetch $branch from $origin after 3 attempts; is the branch still there, and is the remote reachable?" >&2
    exit 1
  fi
  echo "byggsteg: fetching $branch from $origin failed; retrying in $((attempt * 2))s" >&2
  sleep $((attempt * 2))
  attempt=$((attempt + 1))
done
if ! git checkout --quiet --force -B "$branch" FETCH_HEAD; then
  echo "byggsteg: fetched $branch from $origin but could not check it out" >&2
  exit 1
fi
after=$(git rev-parse --short HEAD)
if [ "$before" = "$after" ]; then
  echo "byggsteg: $branch was already at $after"
else
  echo "byggsteg: $branch moved from $before to $after"
fi


byggsteg: trunk moved from bf60bbb to 9d9585a

→ running command: cd /etc/byggsteg/job-clone/heks-emacs/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/heks-emacs/trunk && git log --name-status HEAD^..HEAD

commit 9d9585ac299b1d46990e58f5c10a4dee9820e87d
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Tue Nov 3 09:33:11 2026 +0100

    feat: Improve GitHub facilities

M       src/modules/github-repo.el
M       src/modules/theme.el

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



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

Maak 0.14.0: the infinitely extensible command runner

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

Executing Maak tasks: test


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

=> Running Maak task: test

  Run the configuration's own test suite.

The other checks read this configuration and judge what it says; this one
loads the modules and calls the code, which is the only way to find out
that a function does what its docstring says.  It needs nothing installed:
the modules are loaded from `src' by name, with `use-package' stubbed out.
Running 239 tests (2026-11-03 09:33:34+0100, selector ‘t’)
   passed    1/239  heks/ai/a-chat-that-is-asked-for-is-not-quiet (0.000068 sec)
   passed    2/239  heks/ai/a-name-it-does-not-know-is-not-obeyed (0.000087 sec)
   passed    3/239  heks/ai/a-prepared-chat-is-made-without-a-window (0.000057 sec)
   passed    4/239  heks/ai/a-session-that-is-already-there-is-not-started-again (0.034273 sec)
   passed    5/239  heks/ai/a-start-that-fails-is-reported-and-is-not-quiet (0.001235 sec)
   passed    6/239  heks/ai/a-start-that-is-not-asked-for-is-not-started (0.000042 sec)
   passed    7/239  heks/ai/an-encrypted-key-file-is-decrypted-with-gpg (0.000916 sec)
   passed    8/239  heks/ai/copilot-is-what-is-left-without-a-key (0.000067 sec)
   passed    9/239  heks/ai/eca-is-prepared-once (0.000040 sec)
   passed   10/239  heks/ai/eca-names-the-account-its-own-way (0.000027 sec)
   passed   11/239  heks/ai/giving-up-cancels-the-timer (0.000039 sec)
   passed   12/239  heks/ai/nothing-is-said-while-preparing (0.000034 sec)
   passed   13/239  heks/ai/starting-inside-a-project-needs-no-file-visited (0.000040 sec)
AI: deepseek (some-deepseek-model)
   passed   14/239  heks/ai/switching-points-both-tools-at-the-same-account (0.000057 sec)
   passed   15/239  heks/ai/the-chat-the-reader-asks-for-shows-itself (0.000035 sec)
   passed   16/239  heks/ai/the-daemon-waits-for-the-first-project-file (0.000025 sec)
   passed   17/239  heks/ai/the-environment-can-name-one-outright (0.000039 sec)
   passed   18/239  heks/ai/the-key-file-is-read-when-the-environment-has-none (0.000958 sec)
   passed   19/239  heks/ai/the-key-file-is-what-makes-it-the-personal-machine (0.000169 sec)
   passed   20/239  heks/ai/the-key-in-the-environment-is-the-personal-account (0.000040 sec)
   passed   21/239  heks/ai/the-setting-does-not-need-the-environment (0.000035 sec)
   passed   22/239  heks/ai/the-watch-for-a-project-removes-itself (0.000061 sec)
   passed   23/239  heks/ai/there-is-nothing-to-prepare-outside-a-project (0.000034 sec)
Bookmarked under Dev
Bookmarked under Music / Guitar
Already bookmarked, under Dev
   passed   24/239  heks/bookmarks/a-bookmark-is-filed-under-its-category-and-only-once (0.295674 sec)
   passed   25/239  heks/bookmarks/the-links-under-a-heading-are-its-bookmarks (0.000441 sec)
   passed   26/239  heks/contacts/a-birthday-is-read-with-or-without-its-year (0.000066 sec)
Added Ada
   passed   27/239  heks/contacts/a-contact-is-added-with-only-the-details-given (0.011378 sec)
   passed   28/239  heks/contacts/the-agenda-is-told-whose-birthday-it-is (0.001088 sec)
   passed   29/239  heks/dev-folding/a-folded-block-shows-only-its-marker (0.000054 sec)
   passed   30/239  heks/dev-folding/a-line-is-as-tall-as-its-font-and-spacing (0.000041 sec)
   passed   31/239  heks/dev-folding/a-marker-is-cut-to-the-height-of-a-line (0.000056 sec)
   passed   32/239  heks/dev-folding/an-indicator-is-faded-toward-the-background (0.000048 sec)
   passed   33/239  heks/dev-folding/every-engine-gets-the-quiet-colour (0.000064 sec)
   passed   34/239  heks/dev-folding/every-line-of-a-block-is-drawn-by-its-own-bitmap (0.000090 sec)
   passed   35/239  heks/dev-folding/no-fade-leaves-the-markers-alone (0.000021 sec)
   passed   36/239  heks/dev-folding/the-guide-is-given-back-five-points (0.000018 sec)
   passed   37/239  heks/dev-folding/the-guide-is-one-row-repeated (0.000031 sec)
   passed   38/239  heks/dev-folding/the-guide-of-a-block-ends-where-the-block-does (0.000076 sec)
   passed   39/239  heks/dev-folding/the-marker-of-an-open-block-ends-in-its-guide (0.000061 sec)
Marking matching files...
2 matching files marked
Copied contents of 2 files to clipboard.
   passed   40/239  heks/dired/the-contents-of-the-marked-files-are-copied (0.009995 sec)
   passed   41/239  heks/duplicates/a-block-copied-inside-one-file-is-hidden-until-asked-for (0.004714 sec)
   passed   42/239  heks/duplicates/a-block-in-two-files-is-one-cluster (0.004013 sec)
   passed   43/239  heks/duplicates/a-block-written-once-is-not-a-cluster (0.003718 sec)
   passed   44/239  heks/duplicates/a-comment-is-not-code-and-is-not-compared (0.038487 sec)
   passed   45/239  heks/duplicates/a-short-block-is-an-idiom-and-not-reported (0.003190 sec)
   passed   46/239  heks/duplicates/an-empty-report-says-so (0.000054 sec)
   passed   47/239  heks/duplicates/indentation-is-not-a-difference (0.003481 sec)
   passed   48/239  heks/duplicates/the-report-has-a-mode-and-keys (0.000110 sec)
   passed   49/239  heks/duplicates/the-report-says-where-and-how-much (0.000145 sec)
That is the last cluster
   passed   50/239  heks/duplicates/the-report-walks-its-clusters (0.000223 sec)
   passed   51/239  heks/duplicates/the-scan-reads-what-is-code (0.002977 sec)
   passed   52/239  heks/flymake/a-buffer-no-server-manages-keeps-what-it-has (0.015707 sec)
   passed   53/239  heks/flymake/a-server-does-not-take-the-checkers-of-a-buffer (0.000058 sec)
   passed   54/239  heks/format/a-language-of-its-own-answers-first (0.000044 sec)
   passed   55/239  heks/format/a-predicate-that-does-not-hold-is-passed-over (0.000045 sec)
   passed   56/239  heks/github-repo/a-false-setting-is-sent-as-false (0.000087 sec)
   passed   57/239  heks/github-repo/a-remote-url-names-its-repository (0.000053 sec)
   passed   58/239  heks/github-repo/normalize-ignores-the-capture-not-the-settings (0.000736 sec)
   passed   59/239  heks/github-repo/the-most-specific-spec-wins (0.000028 sec)
   passed   60/239  heks/github-repo/the-whole-spec-encodes (0.000155 sec)
heks/github-repo: dropping unsupported pull_request parameter: require_extra_approval_for_unattributed_changes
heks/github-repo: dropping unsupported rule: copilot_code_review
heks/github-repo: dropping unsupported rule: code_scanning
heks/github-repo: dropping unsupported rule: code_quality
   passed   61/239  heks/github-repo/what-a-repository-cannot-take-is-dropped-last (0.000221 sec)
   passed   62/239  heks/graph/notes-and-topics-are-nodes-and-links-and-folders-are-edges (0.002965 sec)
   passed   63/239  heks/graph/the-page-carries-its-data-and-cannot-close-its-script (0.001676 sec)
   passed   64/239  heks/hover/a-pointer-that-has-not-moved-is-not-asked-about-again (0.000079 sec)
   passed   65/239  heks/hover/a-source-with-nothing-to-say-calls-back-nobody (0.716605 sec)
   passed   66/239  heks/hover/the-fast-answer-is-not-held-behind-the-slow-one (0.903211 sec)
   passed   67/239  heks/import/a-block-that-says-it-is-not-a-heading-is-not-shifted (0.000562 sec)
Org copied to the kill ring
   passed   68/239  heks/import/a-buffer-that-cannot-be-written-to-is-copied-from (0.000268 sec)
   passed   69/239  heks/import/a-bullet-is-never-written-as-a-headline (0.000367 sec)
   passed   70/239  heks/import/a-checked-box-is-the-box-org-reads (0.002720 sec)
   passed   71/239  heks/import/a-document-is-what-its-name-says-it-is (0.000085 sec)
   passed   72/239  heks/import/a-file-is-imported-next-to-the-source (0.009545 sec)
   passed   73/239  heks/import/a-fragment-keeps-its-headings-where-they-are (0.000610 sec)
   passed   74/239  heks/import/a-fragment-says-things-the-way-a-note-does (0.000890 sec)
   passed   75/239  heks/import/a-link-in-a-document-becomes-the-file-it-names (0.000597 sec)
Finding ID locations (1/2 files): /tmp/heks-ert-notes-uSqN4n/note.org
2 files scanned, 1 files contains IDs, and 1 IDs found.
Finding ID locations (1/2 files): /tmp/heks-ert-notes-uSqN4n/note.org
2 files scanned, 1 files contains IDs, and 1 IDs found.
   passed   76/239  heks/import/a-note-imported-into-the-notes-is-a-node (0.013435 sec)
   passed   77/239  heks/import/a-note-somebody-wrote-is-not-written-over-unasked (0.003330 sec)
Org copied to the kill ring
   passed   78/239  heks/import/a-prefix-argument-copies-and-leaves-the-buffer-alone (0.000332 sec)
   passed   79/239  heks/import/a-region-without-a-final-newline-gets-none (0.000266 sec)
   passed   80/239  heks/import/a-table-becomes-a-table-org-can-align (0.000615 sec)
   passed   81/239  heks/import/a-title-can-be-left-as-a-heading (0.000400 sec)
   passed   82/239  heks/import/an-identifier-is-a-uuid (0.000136 sec)
   passed   83/239  heks/import/emphasis-links-and-images-become-org-markup (0.000759 sec)
   passed   84/239  heks/import/front-matter-is-what-the-note-says-about-itself (0.001566 sec)
   passed   85/239  heks/import/nothing-is-shifted-when-there-is-no-title (0.000296 sec)
   passed   86/239  heks/import/the-blank-lines-a-document-has-separate-its-blocks (0.000238 sec)
   passed   87/239  heks/import/the-heading-a-document-names-itself-with-is-its-title (0.000071 sec)
   passed   88/239  heks/import/the-hierarchy-of-a-document-is-the-hierarchy-of-a-note (0.000377 sec)
Imported 2 of 2 Markdown files as Org
   passed   89/239  heks/import/the-project-import-asks-once-and-imports-the-markdown (0.004664 sec)
   passed   90/239  heks/import/the-region-is-replaced-by-what-it-says-in-org (0.000362 sec)
   passed   91/239  heks/jvm/a-directory-that-is-no-project-says-so (0.001055 sec)
   passed   92/239  heks/jvm/a-goal-nobody-defined-is-refused (0.000198 sec)
   passed   93/239  heks/jvm/a-wrapper-is-preferred-to-a-system-program (0.000997 sec)
   passed   94/239  heks/jvm/the-build-file-is-found-above-the-buffer (0.001445 sec)
   passed   95/239  heks/jvm/the-project-is-the-nearest-one (0.000846 sec)
   passed   96/239  heks/jvm/the-same-goal-has-a-name-in-each-build-tool (0.000049 sec)
   passed   97/239  heks/jvm/what-is-offered-is-what-the-table-says (0.000048 sec)
   passed   98/239  heks/keys/a-description-is-found-for-what-the-tables-hold (0.000060 sec)
   passed   99/239  heks/keys/a-topic-letters-are-letters (0.000392 sec)
   passed  100/239  heks/keys/every-key-is-described-once (0.001015 sec)
   passed  101/239  heks/keys/every-topic-letter-is-a-key-and-means-one-thing (0.000300 sec)
   passed  102/239  heks/keys/the-action-alphabet-has-no-duplicates (0.000112 sec)
   passed  103/239  heks/markdown/a-backtick-line-with-backticks-after-is-inline-code (0.000116 sec)
   passed  104/239  heks/markdown/a-longer-fence-holds-a-shorter-one (0.000111 sec)
   passed  105/239  heks/markdown/a-tilde-fence-is-not-closed-by-backticks (0.000085 sec)
   passed  106/239  heks/markdown/an-indented-fence-works (0.000068 sec)
   passed  107/239  heks/markdown/an-unclosed-fence-hides-nothing-after-it (0.000064 sec)
   passed  108/239  heks/markdown/blocks-get-a-label-and-a-body-face (0.000070 sec)
   passed  109/239  heks/markdown/code-blocks-keep-their-characters (0.000088 sec)
   passed  110/239  heks/markdown/huge-buffers-are-left-alone (0.000027 sec)
   passed  111/239  heks/markdown/inline-delimiters-are-hidden (0.000072 sec)
   passed  112/239  heks/markdown/intraword-underscores-are-not-emphasis (0.000064 sec)
   passed  113/239  heks/markdown/markup-shows-while-point-is-in-it (0.000108 sec)
   passed  114/239  heks/markdown/rehiding-is-idempotent-and-refreshes (0.000060 sec)
   passed  115/239  heks/markdown/removing-a-fence-removes-its-look (0.000082 sec)
   passed  116/239  heks/markdown/the-readme-style-document-has-balanced-hiding (0.000143 sec)
   passed  117/239  heks/markdown/tilde-fences-are-fences (0.000082 sec)
   passed  118/239  heks/markdown/two-blocks-are-paired-correctly (0.000079 sec)
   passed  119/239  heks/notes/a-directory-nobody-set-is-not-a-directory (0.000023 sec)
   passed  120/239  heks/notes/a-directory-that-is-set-is-answered-expanded (0.001330 sec)
   passed  121/239  heks/notes/a-note-that-was-created-here-is-offered-at-once (0.001042 sec)
   passed  122/239  heks/notes/a-title-changed-on-disk-is-read-again (0.000773 sec)
   passed  123/239  heks/notes/an-annotation-says-what-the-note-is (0.001141 sec)
Indexes: 3 written
   passed  124/239  heks/notes/an-index-lists-what-is-in-its-folder (0.005399 sec)
Indexes: 1 written
   passed  125/239  heks/notes/an-index-written-by-hand-is-left-alone (0.001959 sec)
   passed  126/239  heks/notes/moving-a-note-repairs-the-links-to-it-and-in-it (0.000235 sec)
Indexes: 2 written
   passed  127/239  heks/notes/regenerating-an-index-changes-nothing-and-keeps-its-description (0.002373 sec)
   passed  128/239  heks/notes/the-archive-is-in-no-prompt (0.001305 sec)
   passed  129/239  heks/notes/what-is-remembered-is-remembered-for-one-directory (0.001091 sec)
   passed  130/239  heks/openapi/a-schema-says-what-a-value-of-it-looks-like (0.000390 sec)
   passed  131/239  heks/present/a-buffer-that-is-not-a-document-has-no-slides (0.000062 sec)
   passed  132/239  heks/present/a-deck-carries-its-own-stylesheet-and-script (0.001424 sec)
   passed  133/239  heks/present/a-deck-of-an-org-note-is-made-too (0.045590 sec)
   passed  134/239  heks/present/a-deck-prints-one-slide-per-page (0.001528 sec)
   passed  135/239  heks/present/a-slide-boundary-is-inserted-in-the-documents-own-way (0.001329 sec)
   passed  136/239  heks/present/an-empty-document-has-no-slides (0.000854 sec)
   passed  137/239  heks/present/deck-is-one-section-per-slide (0.001729 sec)
   passed  138/239  heks/present/deck-walks-its-slides-with-the-keyboard (0.001560 sec)
   passed  139/239  heks/present/markdown-divides-on-a-line-of-dashes (0.000896 sec)
   passed  140/239  heks/present/markdown-without-a-break-is-one-slide (0.000875 sec)
   passed  141/239  heks/present/org-divides-on-its-own-headings (0.000347 sec)
   passed  142/239  heks/present/org-slides-are-the-level-that-repeats (0.000330 sec)
Wrote /tmp/heks-ert-1ozDWW.deck.html
   passed  143/239  heks/present/the-deck-of-a-file-is-written-beside-it (0.002428 sec)
Markdown preview: /tmp/heks-preview-waVzXz.html
   passed  144/239  heks/preview/rendering-it-again-shows-what-the-buffer-says-now (0.004326 sec)
Markdown preview: /tmp/heks-preview-2egT8z.html
   passed  145/239  heks/preview/the-document-is-shown-in-a-buffer-that-survives (0.002103 sec)
   passed  146/239  heks/render/a-buffer-with-no-heading-has-no-section-to-follow (0.000066 sec)
   passed  147/239  heks/render/a-callout-is-a-quote-that-says-what-it-is (0.000375 sec)
   passed  148/239  heks/render/a-fence-says-what-language-it-is (0.000326 sec)
   passed  149/239  heks/render/a-footnote-is-answered-at-the-end (0.000356 sec)
   passed  150/239  heks/render/a-formula-is-readable-without-a-network (0.000807 sec)
   passed  151/239  heks/render/a-heading-that-has-an-id-keeps-it (0.000052 sec)
   passed  152/239  heks/render/a-highlighted-phrase-is-marked (0.000150 sec)
   passed  153/239  heks/render/a-label-this-document-does-not-define-is-left-alone (0.000237 sec)
   passed  154/239  heks/render/a-language-without-a-mode-is-left-as-text (0.000050 sec)
   passed  155/239  heks/render/a-note-asks-for-colours-htmlize-can-give-it (0.000823 sec)
   passed  156/239  heks/render/a-note-gets-one-contents-list-and-it-is-this-modules (0.007474 sec)
   passed  157/239  heks/render/a-reference-link-is-the-link-it-names (0.000234 sec)
   passed  158/239  heks/render/an-emoji-is-written-as-its-shortcode (0.000168 sec)
   passed  159/239  heks/render/an-org-note-is-exported-by-org-itself (0.006158 sec)
   passed  160/239  heks/render/anchors-are-ids-a-link-can-use (0.000119 sec)
   passed  161/239  heks/render/code-is-fontified-with-its-modes-faces (0.000248 sec)
   passed  162/239  heks/render/contents-are-in-the-document (0.000347 sec)
   passed  163/239  heks/render/contents-are-listed-when-there-are-enough (0.000118 sec)
   passed  164/239  heks/render/contents-do-not-list-the-title (0.000080 sec)
   passed  165/239  heks/render/contents-stop-one-level-under-the-shallowest (0.000030 sec)
   passed  166/239  heks/render/escaped-markup-is-text-and-not-markup (0.000378 sec)
   passed  167/239  heks/render/every-link-in-a-notes-contents-list-reaches-a-heading (0.005024 sec)
   passed  168/239  heks/render/fontified-code-is-still-escaped (0.000201 sec)
   passed  169/239  heks/render/footnotes-are-numbered-in-the-order-they-are-read (0.000353 sec)
   passed  170/239  heks/render/headings-get-ids-in-the-order-they-appear (0.000079 sec)
   passed  171/239  heks/render/the-contents-list-reaches-the-operations-it-names (0.000251 sec)
   passed  172/239  heks/render/the-language-of-a-fence-finds-its-mode (0.000055 sec)
   passed  173/239  heks/render/the-palette-has-the-colours-a-page-needs (0.000032 sec)
   passed  174/239  heks/render/the-section-point-is-in-is-the-one-a-preview-follows (0.000344 sec)
   passed  175/239  heks/render/the-stylesheet-colours-the-faces-that-have-colours (0.000055 sec)
   passed  176/239  heks/render/two-headings-with-one-name-get-two-ids (0.000071 sec)
   passed  177/239  heks/scheme/a-definition-is-the-head-and-not-a-mention (0.000109 sec)
   passed  178/239  heks/scheme/a-head-says-which-name-it-defines (0.000048 sec)
   passed  179/239  heks/scheme/a-mention-is-a-name-of-its-own (0.000077 sec)
   passed  180/239  heks/scheme/a-name-the-repl-knows-asks-it-where-it-is-when-jumped-to (0.005549 sec)
   passed  181/239  heks/scheme/a-repl-that-will-not-come-up-is-said-so (0.001455 sec)
   passed  182/239  heks/scheme/an-evaluation-brings-up-the-repl-it-needs (0.000059 sec)
   passed  183/239  heks/scheme/apropos-is-answered-by-both-sources-once-each (0.000108 sec)
   passed  184/239  heks/scheme/no-repl-is-a-question-the-repl-answers-with-nil (0.000043 sec)
   passed  185/239  heks/scheme/the-backend-answers-for-a-scheme-buffer-alone (0.000378 sec)
   passed  186/239  heks/scheme/the-column-is-where-the-name-is-defined (0.000035 sec)
   passed  187/239  heks/scheme/the-files-answer-with-the-definitions (0.029464 sec)
   passed  188/239  heks/scheme/the-files-answer-with-the-definitions-that-match (0.019895 sec)
   passed  189/239  heks/scheme/the-names-are-read-once-and-remembered (0.000171 sec)
   passed  190/239  heks/scheme/the-names-the-files-define-are-what-is-asked-for (0.007186 sec)
   passed  191/239  heks/scheme/the-places-a-name-is-used-are-found-in-the-files (0.008892 sec)
   passed  192/239  heks/scheme/the-repl-answers-with-the-names-it-has-loaded (0.000121 sec)
   passed  193/239  heks/scheme/the-repl-is-asked-before-the-files (0.000084 sec)
   passed  194/239  heks/scheme/the-repl-says-a-line-and-the-column-is-read (0.000497 sec)
   passed  195/239  heks/scheme/the-repls-false-is-no-answer-at-all (0.000101 sec)
   passed  196/239  heks/shell/a-copy-keeps-the-extension-of-the-file (0.000048 sec)
Setting up indent for shell type sh
Indentation variables are now local.
Indentation setup for shell type sh
   passed  197/239  heks/shell/both-of-the-modes-of-a-script-are-shell-buffers (0.000237 sec)
   passed  198/239  heks/shell/shellcheck-is-told-to-follow-the-sources-of-a-script (0.000058 sec)
   passed  199/239  heks/shell/shfmt-arguments-come-before-the-file (0.000179 sec)
  skipped  200/239  heks/sift/a-buffer-is-set-up-with-the-mode-and-both-reports (0.002439 sec)
  skipped  201/239  heks/sift/a-file-that-does-not-parse-is-said-so (0.000438 sec)
  skipped  202/239  heks/sift/a-fix-changes-the-rule-it-was-asked-for (0.000396 sec)
  skipped  203/239  heks/sift/a-server-that-is-sift-is-recognised (0.000474 sec)
   passed  204/239  heks/sift/eglot-is-told-that-sift-serves-the-lisps (0.000049 sec)
  skipped  205/239  heks/sift/emacs-lisp-is-checked-and-not-formatted (0.000601 sec)
  skipped  206/239  heks/sift/formatting-replaces-the-buffer-and-nothing-else (0.000544 sec)
  skipped  207/239  heks/sift/the-copy-the-formatter-sees-is-named-for-its-dialect (0.000541 sec)
  skipped  208/239  heks/sift/the-dialect-is-read-from-the-major-mode (0.000738 sec)
  skipped  209/239  heks/sift/the-drift-backend-reports-the-lines-that-would-change (0.000443 sec)
  skipped  210/239  heks/sift/the-keys-are-the-scheme-s-own (0.000419 sec)
  skipped  211/239  heks/sift/the-lint-backend-reports-what-the-program-found (0.000403 sec)
  skipped  212/239  heks/sift/the-mode-s-keys-answer-in-every-lisp (0.000419 sec)
  skipped  213/239  heks/sift/the-server-takes-over-what-the-backend-was-reporting (0.000476 sec)
  skipped  214/239  heks/terraform/the-commands-say-so-when-there-is-no-terraform (0.000060 sec)
   passed  215/239  heks/terraform/the-configuration-is-the-directory-of-the-file (0.008046 sec)
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the java grammar did not build on attempt 1 (no library could be loaded); trying once more
the java grammar could not be built: it was built, but no library can be loaded
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: kotlin, scala, nix, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, java, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
   passed  216/239  heks/treesit/a-build-that-produces-nothing-is-not-a-grammar (0.103808 sec)
the kotlin grammar did not build on attempt 1 (the clone timed out); trying once more
the kotlin grammar was built on attempt 2
heks-emacs: 1 tree-sitter grammar built
   passed  217/239  heks/treesit/a-grammar-that-fails-once-is-built-on-the-second-try (0.085231 sec)
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: kotlin, scala, nix, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
   passed  218/239  heks/treesit/a-grammar-that-is-here-is-not-built-again (0.025803 sec)
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the java grammar did not build on attempt 1 (no compiler here); trying once more
the java grammar could not be built: no compiler here
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: kotlin, scala, nix, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, java, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
   passed  219/239  heks/treesit/a-grammar-that-will-not-build-does-not-stop-the-others (0.026260 sec)
   passed  220/239  heks/treesit/the-grammars-are-built-by-a-batch-emacs (0.000069 sec)
   passed  221/239  heks/treesit/the-grammars-are-installed-where-told-to (0.000036 sec)
the heks-ert-own grammar did not build on attempt 1 (no library could be loaded); trying once more
the heks-ert-own grammar could not be built: it was built, but no library can be loaded
the nix grammar did not build on attempt 1 (no library could be loaded); trying once more
the nix grammar could not be built: it was built, but no library can be loaded
the scala grammar did not build on attempt 1 (no library could be loaded); trying once more
the scala grammar could not be built: it was built, but no library can be loaded
the kotlin grammar did not build on attempt 1 (no library could be loaded); trying once more
the kotlin grammar could not be built: it was built, but no library can be loaded
the bash grammar did not build on attempt 1 (no library could be loaded); trying once more
the bash grammar could not be built: it was built, but no library can be loaded
the yaml grammar did not build on attempt 1 (no library could be loaded); trying once more
the yaml grammar could not be built: it was built, but no library can be loaded
the javascript grammar did not build on attempt 1 (no library could be loaded); trying once more
the javascript grammar could not be built: it was built, but no library can be loaded
the jsdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the jsdoc grammar could not be built: it was built, but no library can be loaded
the typescript grammar did not build on attempt 1 (no library could be loaded); trying once more
the typescript grammar could not be built: it was built, but no library can be loaded
the tsx grammar did not build on attempt 1 (no library could be loaded); trying once more
the tsx grammar could not be built: it was built, but no library can be loaded
the toml grammar did not build on attempt 1 (no library could be loaded); trying once more
the toml grammar could not be built: it was built, but no library can be loaded
the rust grammar did not build on attempt 1 (no library could be loaded); trying once more
the rust grammar could not be built: it was built, but no library can be loaded
the ruby grammar did not build on attempt 1 (no library could be loaded); trying once more
the ruby grammar could not be built: it was built, but no library can be loaded
the python grammar did not build on attempt 1 (no library could be loaded); trying once more
the python grammar could not be built: it was built, but no library can be loaded
the html grammar did not build on attempt 1 (no library could be loaded); trying once more
the html grammar could not be built: it was built, but no library can be loaded
the css grammar did not build on attempt 1 (no library could be loaded); trying once more
the css grammar could not be built: it was built, but no library can be loaded
the php grammar did not build on attempt 1 (no library could be loaded); trying once more
the php grammar could not be built: it was built, but no library can be loaded
the phpdoc grammar did not build on attempt 1 (no library could be loaded); trying once more
the phpdoc grammar could not be built: it was built, but no library can be loaded
the lua grammar did not build on attempt 1 (no library could be loaded); trying once more
the lua grammar could not be built: it was built, but no library can be loaded
the json grammar did not build on attempt 1 (no library could be loaded); trying once more
the json grammar could not be built: it was built, but no library can be loaded
the java grammar did not build on attempt 1 (no library could be loaded); trying once more
the java grammar could not be built: it was built, but no library can be loaded
the doxygen grammar did not build on attempt 1 (no library could be loaded); trying once more
the doxygen grammar could not be built: it was built, but no library can be loaded
the heex grammar did not build on attempt 1 (no library could be loaded); trying once more
the heex grammar could not be built: it was built, but no library can be loaded
the elixir grammar did not build on attempt 1 (no library could be loaded); trying once more
the elixir grammar could not be built: it was built, but no library can be loaded
the go grammar did not build on attempt 1 (no library could be loaded); trying once more
the go grammar could not be built: it was built, but no library can be loaded
the gomod grammar did not build on attempt 1 (no library could be loaded); trying once more
the gomod grammar could not be built: it was built, but no library can be loaded
the gowork grammar did not build on attempt 1 (no library could be loaded); trying once more
the gowork grammar could not be built: it was built, but no library can be loaded
the dockerfile grammar did not build on attempt 1 (no library could be loaded); trying once more
the dockerfile grammar could not be built: it was built, but no library can be loaded
the c-sharp grammar did not build on attempt 1 (no library could be loaded); trying once more
the c-sharp grammar could not be built: it was built, but no library can be loaded
the cmake grammar did not build on attempt 1 (no library could be loaded); trying once more
the cmake grammar could not be built: it was built, but no library can be loaded
the c grammar did not build on attempt 1 (no library could be loaded); trying once more
the c grammar could not be built: it was built, but no library can be loaded
the cpp grammar did not build on attempt 1 (no library could be loaded); trying once more
the cpp grammar could not be built: it was built, but no library can be loaded
heks-emacs: 0 tree-sitter grammars built, not built: heks-ert-own, nix, scala, kotlin, bash, yaml, javascript, jsdoc, typescript, tsx, toml, rust, ruby, python, html, css, php, phpdoc, lua, json, java, doxygen, heex, elixir, go, gomod, gowork, dockerfile, c-sharp, cmake, c, cpp
   passed  222/239  heks/treesit/the-script-builds-the-grammars-emacs-knows (0.028602 sec)
   passed  223/239  heks/ui/a-face-that-is-not-there-yet-is-skipped (0.000032 sec)
   passed  224/239  heks/ui/a-family-becomes-a-font-spec (0.005184 sec)
   passed  225/239  heks/ui/a-font-nothing-provides-falls-back-to-the-last-resort (0.000051 sec)
   passed  226/239  heks/ui/a-font-that-cannot-be-set-is-a-warning (0.000042 sec)
   passed  227/239  heks/ui/a-missing-font-becomes-the-next-best (0.000055 sec)
   passed  228/239  heks/ui/an-eca-face-gets-the-family-of-what-it-prints (0.000075 sec)
   passed  229/239  heks/ui/an-installed-font-is-left-alone (0.000029 sec)
   passed  230/239  heks/ui/no-eca-face-is-in-both-lists (0.000025 sec)
   passed  231/239  heks/ui/no-graphical-frame-means-no-resolution (0.000019 sec)
   passed  232/239  heks/which-key/a-mode-that-answers-first-says-its-own-wording (0.000900 sec)
   passed  233/239  heks/which-key/no-sentence-of-the-scheme-is-cut (0.000357 sec)
   passed  234/239  heks/which-key/the-menu-goes-where-the-frame-has-room (0.000206 sec)
   passed  235/239  heks/which-key/the-scheme-is-what-which-key-shows (0.001305 sec)
   passed  236/239  heks/xref/the-chaining-backend-is-a-servers-buffers (0.000099 sec)
   passed  237/239  heks/xref/the-global-backends-are-part-of-the-chain (0.000110 sec)
   passed  238/239  heks/xref/the-name-is-read-by-the-buffers-own-tool (0.000070 sec)
   passed  239/239  heks/xref/the-server-is-asked-first-and-the-others-after (0.000044 sec)

Ran 239 tests, 225 results as expected, 0 unexpected, 14 skipped (2026-11-03 09:33:37+0100, 2.615543 sec)

14 skipped results:
  SKIPPED  heks/sift/a-buffer-is-set-up-with-the-mode-and-both-reports
  SKIPPED  heks/sift/a-file-that-does-not-parse-is-said-so
  SKIPPED  heks/sift/a-fix-changes-the-rule-it-was-asked-for
  SKIPPED  heks/sift/a-server-that-is-sift-is-recognised
  SKIPPED  heks/sift/emacs-lisp-is-checked-and-not-formatted
  SKIPPED  heks/sift/formatting-replaces-the-buffer-and-nothing-else
  SKIPPED  heks/sift/the-copy-the-formatter-sees-is-named-for-its-dialect
  SKIPPED  heks/sift/the-dialect-is-read-from-the-major-mode
  SKIPPED  heks/sift/the-drift-backend-reports-the-lines-that-would-change
  SKIPPED  heks/sift/the-keys-are-the-scheme-s-own
  SKIPPED  heks/sift/the-lint-backend-reports-what-the-program-found
  SKIPPED  heks/sift/the-mode-s-keys-answer-in-every-lisp
  SKIPPED  heks/sift/the-server-takes-over-what-the-backend-was-reporting
  SKIPPED  heks/terraform/the-commands-say-so-when-there-is-no-terraform
inspect the job's lambda expression
(lambda()
  `((task . ("maak-test"))
    (project . "heks-emacs")
    (branch-name . "trunk")
    (clone-url . "https://github.com/jjba23/heks-emacs.git")))