Hazel reports · ^report(23) · draft, 2026-10-19

#2635 Is Green

^report(18) answered Cyrus's question of 2026-10-16, why CI fails on #2635 (livelits × modular editors), with three causes, and ended with five next steps. What happened to each step, and what is known now? Matthew asked on 2026-10-19, once the agenda for the next meeting with Cyrus, ^report(20), could mark #2635 green.

Short answers. As of 2026-10-20 04:24 UTC (2026-10-19 evening, Mountain time). Every run is linked below, and its numbers are in this page's data.

  1. #2635 has passed CI twice, its first green runs since it was made on 2026-10-01. First on 90ed4505bf, the merge of #2699: Fast checks ran 5,553 tests and Full tests 6,098, none failing (1 h 28 min for Full tests). Then on 5961401df2, one more commit on top, with the same counts. ^report(18) counted 97 runs and none green; since then 2 green, 0 red, and 4 cancelled by a newer push.
    0 of 97runs green before ^report(18)2 of 2finished runs green since
  2. Each of ^report(18)'s three causes is fixed on #2635, and one was a real bug. The 8 module cases pass with Andrew Blinn's per-member analysis on Modules II (through #2699); the table test has an input whose error the table hides whatever completion does (27f100e37c); and the corpus mismatch was incremental statics keeping a livelit use's old expansion after the livelit changed (1131a457e4).
  3. Of its five next steps, two are done, two partly, and one is for the meeting. Left over: #2597 still has the old table-test input (it will fail when #2597 next merges dev, now 494 commits ahead of it); #2635 conflicts with its base again in 1 file, since #2597 took two commits that evening; and the plan for merging into dev is item 6 of the agenda.
  4. Both parents are green too: #2597 at 8a03584ef6 (4,523 + 4,977 tests) and #2469 at 1290464a1a (5,131 + 5,538). #2687's newest finished run failed one test of its own (below), which is Andrew's work in progress, not #2635's.
report 18's five next steps, as of 2026-10-20 04:24 UTC1. Per-member analysis on Modules II, into #2635#2699 merged: the 8 module cases passdone2. The table test's input, on #2635 and #2597#2635: done · #2597: still the old inputpartly3. Why macro-result.hz differs per itema real bug in incremental statics, fixeddone4. The merge plan for devfor the 2026-10-21 meeting (report 20, item 6)open5. Merge the livelits branch into #2635merged · 1 file conflicts again since #2597 movedpartly
^report(18)'s five next steps, each with where it stands. Green: done; amber: done on #2635 but not everywhere it is needed; grey: open, for the meeting on 2026-10-21.

The question, and ^report(18)'s answer

Cyrus asked, at his meeting with Matthew on 2026-10-16, why CI fails on #2635, the branch that merges modular editors (#2469) into the livelits branch (#2597). ^report(18) read all 97 of #2635's CI runs and found that it had never passed, failing the same tests every time, for three causes that came from the merge itself, with neither parent broken on its own:

Its update at 12:45 MDT the same day had a fix for each, and its What next listed five steps. This report takes them one by one.

The five steps, then and now

Step^report(18) saidNowWhat happened
1Bring Andrew's per-member analysis on Modules II into #2635, adapted to Modules II part 3.doneDone through #2699, merged into #2635 on 2026-10-19 (its merge commit 90ed4505bf): Andrew Blinn's per-member module analysis on Modules II, fitted to #2635's Modules II part 3, and one fix of its own, a livelit definition analyzed whole, not as a module (223357135a). The 8 module cases pass.
2Give Editing.TableDecorations 1 an input whose error stays hidden under canonical completion, on #2597 too.partlyDone on #2635 (27f100e37c: the row gets a wrong label, an error in table syntax that the projector hides, whatever completion does). Not yet on #2597, which still has the old input: it passes there only because #2597's dev predates canonical completion, and it is now 494 commits behind dev.
3Find why macro-result.hz elaborates differently per item.doneFound and fixed (1131a457e4): a real bug in incremental statics. A livelit use records the livelit it applies as ^inc among the names it depends on, but DefStatics named the livelit's own entry plain inc, so a changed livelit marked no use stale, and after an edit the use kept its old expansion. DefStatics is #2469's, so #2597, which has no DefStatics, never had the bug.
4Follow Cyrus's plan for merging into dev: first the PRs that have been waiting, then Andrew's modular editing PRs (#2469, with #2687 in it), then the livelits and performance PRs.openFor the meeting: item 6 of the agenda for 2026-10-21, ^report(20), with item 7 (requiring the test jobs for merging into dev).
5Merge the livelits branch into #2635 instead of cherry-picking, to clear the 25 conflicting files before its next CI run.partlyDone (cf325d4f61: a merge keeping #2635's side, every one of #2597's commits since the merge base being there already): GitHub showed #2635 mergeable, and its CI ran green twice after. Since then #2597 took two more commits on 2026-10-19 (54e5a66bf2, 8a03584ef6), and #2635 conflicts with it again, now in 1 file (test/Test_ContextInspector.re).

#2635's CI since then

Every CI run since report 18 was written (2026-10-19 15:55 UTC)#2635 livelits × modular editors2 green · 4 cancelled2026-10-19T21:07 5961401df2 success2026-10-19T19:33 90ed4505bf success2026-10-19T17:58 1131a457e4 cancelled2026-10-19T17:38 27f100e37c cancelled2026-10-19T17:35 cf325d4f61 cancelled2026-10-19T16:41 b44bb9c50f cancelled#2597 the livelits branch1 green2026-10-19T20:16 8a03584ef6 success#2469 modular editors6 green · 2 cancelled2026-10-20T03:16 1290464a1a success2026-10-20T02:53 b529477e37 cancelled2026-10-20T01:19 7377d1523c success2026-10-20T00:22 b2a4366366 success2026-10-19T22:44 2deccc25bf success2026-10-19T22:22 d693ce1376 cancelled2026-10-19T19:44 9f18e3a6db success2026-10-19T18:21 411db92bd2 success#2687 modular editors + stdlib1 green · 2 red · 7 cancelled · 1 running2026-10-20T03:27 aa9aeda1e9 in_progress2026-10-20T03:05 c722554fa0 cancelled2026-10-20T01:37 939cd7f7c7 failure2026-10-20T01:13 176d2565d1 cancelled2026-10-20T01:02 52872db9dc cancelled2026-10-20T00:36 e17a9a3257 cancelled2026-10-19T23:56 d87dcc4417 cancelled2026-10-19T23:16 04c75fd4fe cancelled2026-10-19T22:38 fc0fdfc55f cancelled2026-10-19T19:55 8c9d437863 success2026-10-19T18:12 de0c77b302 failure
Every CI run on #2635, its two parents and #2687 from 15:55 UTC on 2026-10-19, when ^report(18)'s data was read, to 2026-10-20 04:24 UTC: one tick each, green passed, red failed, grey cancelled (a newer push replaced it), amber running. #2635's cancelled runs are four commits of its afternoon, among them the merge of the livelits branch, the table test's input and the statics fix, each replaced by the next push before its tests finished.
Started (UTC)HeadRunVerdictFast checksFull tests
2026-10-19 21:075961401df2runsuccess5,553, 0 failed, 12 min6,098, 0 failed, 1 h 14 min
2026-10-19 19:3390ed4505bfrunsuccess5,553, 0 failed, 15 min6,098, 0 failed, 1 h 28 min
2026-10-19 17:581131a457e4runcancelled(a newer push replaced it)
2026-10-19 17:3827f100e37cruncancelled(a newer push replaced it)
2026-10-19 17:35cf325d4f61runcancelled(a newer push replaced it)
2026-10-19 16:41b44bb9c50fruncancelled(a newer push replaced it)

The two green runs are the first in #2635's history. Fast checks ran one test more than at 1131a457e4 in ^report(18)'s update (5,552 then, 5,553 now). The times are the test suite's own, as alcotest reports them.

The parents and #2687

BranchHeadRunVerdictFast checksFull tests
#2597 the livelits branch8a03584ef6runsuccess4,523, 0 failed4,977, 0 failed
#2469 modular editors1290464a1arunsuccess5,131, 0 failed5,538, 0 failed
#2687 modular editors + the standard library939cd7f7c7runfailure5,423, 0 failed5,837, 1 failed

#2597 took two commits on 2026-10-19 after ^report(18): a revealed livelit model selects whole tiles and no longer blanks the editor (54e5a66bf2), and Γ outlines a type too large to show (8a03584ef6). Both answer items of the agenda (item 2 and item 4). #2687's newest finished run, on 939cd7f7c7, passed Fast checks and failed one of 5,837 Full tests: WorldTree 3, "the corpus in one document", which raised Not_found. That is #2687's own test on its own work, which goes red and back within hours, as ^report(18) found for #2469; a newer run of it was still going when this was collected.

What is still open

What next

  1. Give #2597 the table test's new input (27f100e37c) before it next merges dev.
  2. Merge #2597's two commits of 2026-10-19 into #2635, to clear the conflict in test/Test_ContextInspector.re before #2635's next CI run.
  3. Settle the order of merging into dev at the meeting on 2026-10-21 (^report(20), item 6), and whether the test jobs are required for it (item 7).

How this was put together