1. What cost the most: row d, the struct field. Its fix needed an edit to how the struct’s 'a is decided (views_the_call_s / holds_view in views.nika, borrowing in emit_tables.nika). That cost about 12 turns, including telling apart a regression (e2) from a failure that was already there, and checking the on_a_cycle impl for< prefix rewrite in emit_function.nika. Writing probes in syntax I didn’t know cost about 4 more: (h.f)(..) doesn’t parse, struct fields need commas, and String without ref was refused with NK1102.
  2. What the brief could have handed me:
    • That the Kept form’s lifetimes pair with views_the_call_s (views.nika:419), which also tests is_sync. The twin check outside the brief’s file was the real blocker.
    • That the second fallback at :233 can never be reached (runs implies code_parameter_runs).
    • The call syntax for a field holding a function (h.f(a, b)) and that struct fields are separated by commas.
    • Where an unfixed binary lives (/home/user/nikaia-suite/target/fast/nikaia), which I found by chance.
  3. Checks: the old/new probe matrix (a–f, ds, bs, e2), one standalone rustc check of the for<'call> AsyncFn form, two build cycles, the full tests/compiler run with both settings, fmt, clippy on 1.97 and 1.99.1, and pre-push-check.sh. Wasted: the first build, which carried the kept form I later reverted, and a workspace-wide clippy that went red on another agent’s file.
  4. Change that would have saved the most: the architect’s trace should list every function that repeats the rule it widens, here views_the_call_s’s !code.is_sync. It should also either allow that file or drop row d up front. A standing line in builder.md would help too: “an unfixed binary for before/after probes: /home/user/nikaia-suite/target/fast/nikaia”.
This site is open source. Improve this page.