diff --git a/docs/WhatsNew.md b/docs/WhatsNew.md index 0f958eb..34fff93 100644 --- a/docs/WhatsNew.md +++ b/docs/WhatsNew.md @@ -154,3 +154,11 @@ Two compiler bugs surfaced during the migration and were fixed before the retire Plus one CLI polish item that the field test from the last cycle had flagged: `ail check` and eight other subcommands now show the same `[error-code]` prefix in their text output that the JSON mode has always shown — so a failed import, a module cycle, a schema mismatch, all arrive on the human path with the same diagnostic code that scripted consumers were already using. Before this fix the text path used a different formatter that dropped the code; now both paths share one source. All tests green. Compiler builds clean under both the linter and the documentation builder. Benchmark scripts all pass at the existing baselines. + +## 2026-05-14 — Prelude is now authored as .ail like every other source + +The prelude — until today the one file in the project authored as JSON-AST instead of as .ail — has been retired in its old form. Every source in the project, including the prelude itself, is now written in the .ail authoring surface; the JSON form is derived by the build, not hand-edited. The principle "authors write .ail; the build derives the JSON form" now holds for every source without exception. + +Compiled programs are unchanged. Before deleting the old JSON file a one-time identity check ran to confirm that parsing the .ail prelude produces the exact same canonical module the JSON used to deserialise to; the check fired green, so the deletion was safe. A long-term hash anchor stays in place to catch accidental drift. + +All tests green; benchmark scripts all pass at the existing baselines.