FABRIC-3.5.md §XXVIII: this release is 2.1.0
LITHOS_VERSION becomes 2.1.0 and the tag cut at close is v2.1.0. Checked against the authoritative policy rather than §I.2's paraphrase of it. Makefile.starkernel carries the roadmap table itself, and it is more specific: X.0.0 is a QEMU release, X.5.0 a hardware bare-metal release, with 2.0.0 QEMU, 2.0.1 the SER5 hardware-track line, 2.2.0 amd64 bare-metal and 2.5.0 the hardware release. 2.1.0 is unallocated, so the ruling takes a real gap rather than overloading a rung, and it lands below both bare-metal milestones -- correct, since this is QEMU-only work and must claim no hardware progress, which was §I.2's whole concern when it rolled the version back. Notes the table must gain a 2.1.0 line or the ladder will step 2.0.1 to 2.2.0 with a released tag sitting in a gap it does not mention. Two live places to edit; FABRIC-2 §G is the origin but is closed/archival, so it is cited rather than amended -- amending a closed document to match a later decision is what this series' discipline forbids. Flags a trap for the documentation sweep with precedent. Makefile.starkernel is not a .md file, and §I.2 records a FABRIC rename that looked complete but silently skipped it along with Kconfig.kernel, a shell script, four proof/*.thy files and an .S source, because the sweep matched four extensions by inclusion. The sweep must grep by exclusion instead, reuse §I.2's ordered placeholder technique, and keep §I.2's own deliberate exclusions -- settings.local.json's command log and ClaudeEXPORT are frozen audit records, and rewriting them would falsify an audit trail rather than fix a citation. Leaves the engine VERSION string explicitly unruled. It is independently tracked, plausibly moves given the registration and messaging changes, but is a separate decision at tag time. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VkM1zHGvBerLF6aqkHPweP
This commit is contained in:
+98
-1
@@ -2564,7 +2564,7 @@ execution.
|
||||
| 13 | Documentation sweep | §XXVI.1 |
|
||||
| 14 | `make sbom`; check `Created:` and `DocumentName` | §XXVI.2 |
|
||||
| 15 | Resolve the stray `v2.0.1` branch and PR #1 | §XXVI.4 |
|
||||
| 16 | **⬜ DECIDE: version**, then merge to `master` and tag | §XXVI.3 |
|
||||
| 16 | **Version RULED `2.1.0`** (§XXVIII); merge to `master`, tag `v2.1.0`. Engine `VERSION` still open | §XXVIII |
|
||||
| 17 | Close this document | §XXVI.5 |
|
||||
|
||||
**No code is authorized by this document.** Per Captain Bob's Law, nothing on this list starts
|
||||
@@ -2663,3 +2663,100 @@ habit to carry into the build.
|
||||
|
||||
**Punch list (§XXVI.6) stands as written, with item 9 now closed and one decision outstanding:
|
||||
the version number (§XXVI.3).** No code is authorized.
|
||||
|
||||
---
|
||||
|
||||
## XXVIII. RULING: this release is `2.1.0` (Captain Bob, 2026-09-19)
|
||||
|
||||
`LITHOS_VERSION` becomes **`2.1.0`**, and the tag cut at §XXVI's close is **`v2.1.0`**.
|
||||
|
||||
### XXVIII.1 — Checked against the real policy, not §I.2's paraphrase
|
||||
|
||||
§XXVI.3 worked from `FABRIC-3.md` §I.2's summary. The authoritative statement is the roadmap
|
||||
table in `Makefile.starkernel` itself (lines ~74–82), which is more specific:
|
||||
|
||||
```
|
||||
# Roadmap (per docs/lithosananke/ROADMAP.md "Release Versioning Policy" and
|
||||
# FABRIC-2.md §G — X.0.0 = QEMU release, X.5.0 = hardware bare-metal release):
|
||||
# v1.0.x — serial-only production (released)
|
||||
# v1.5.x — framebuffer VT100 terminal/console milestone (released)
|
||||
# v2.0.0 — QEMU release (even major = LTS): three-arch QEMU story complete
|
||||
# v2.0.1 — SER5 hardware-track line: RDRAND backend + generic thumbdrive image goal
|
||||
# v2.2.0 — amd64 bare-metal (Beelink SER5) — see ROADMAP "Board-by-board rollout"
|
||||
# v2.5.0 — hardware bare-metal release: real per-arch RNG + real-board boot
|
||||
```
|
||||
|
||||
**`2.1.0` is unallocated** — the ladder currently steps 2.0.0 → 2.0.1 → 2.2.0 → 2.5.0. So the
|
||||
ruling takes a genuine gap rather than overloading an existing rung, and it lands correctly:
|
||||
|
||||
- **Below `v2.2.0` (amd64 bare-metal) and `v2.5.0` (hardware bare-metal release)** — right,
|
||||
because this reshuffle is QEMU-only work and must claim no hardware progress. That was §I.2's
|
||||
entire concern when it rolled the version back.
|
||||
- **Does not disturb `v2.0.1`'s meaning** as the SER5 hardware-track *line*. That name keeps
|
||||
what it means; nothing is reused.
|
||||
- **Consistent with `X.0.0` = QEMU / `X.5.0` = hardware bare-metal** — a minor bump inside the
|
||||
2.x QEMU-side band, before the hardware rungs.
|
||||
|
||||
A structural change to the Tripod, a new kernel-resident arbiter and a generalized `BIRTH` are
|
||||
comfortably a minor-version event rather than a patch.
|
||||
|
||||
### XXVIII.2 — The roadmap table must gain a `2.1.0` line, in three places
|
||||
|
||||
The table above is not decoration — it is how the next person reads the ladder. Left alone it
|
||||
will step 2.0.1 → 2.2.0 with a released `v2.1.0` tag sitting in a gap the table does not
|
||||
mention. **Add the line wherever the table lives:**
|
||||
|
||||
1. `Makefile.starkernel` (the copy above, beside the `LITHOS_VERSION` edit itself).
|
||||
2. `docs/lithosananke/ROADMAP.md`, "Release Versioning Policy" — the comment names it as the
|
||||
upstream source.
|
||||
3. `FABRIC-2.md` §G is the origin of the scheme but is **CLOSED/ARCHIVAL** — **cite it, do not
|
||||
edit it.** Amending a closed document to match a later decision is exactly what this series'
|
||||
discipline forbids.
|
||||
|
||||
### XXVIII.3 — A trap the documentation sweep must not walk into, with precedent
|
||||
|
||||
**`Makefile.starkernel` is not a `.md` file, and this project has already been bitten by
|
||||
exactly that.** `FABRIC-3.md` §I.2 records it plainly: a FABRIC-series rename looked complete
|
||||
but had silently skipped `Makefile.starkernel`, `Kconfig.kernel`, `scripts/bleach_zuse_img.sh`,
|
||||
**four `proof/*.thy` files** and `src/starkernel/arch/amd64/isr.S` —
|
||||
|
||||
> the original sweep's file-list only matched `--include=*.md/*.c/*.h/*.4th`, which silently
|
||||
> skipped every file without one of those four extensions. Found by re-grepping with the
|
||||
> extensions **excluded** instead of included.
|
||||
|
||||
**So item 13's sweep (§XXVI.1) must grep by exclusion, not inclusion**, and must expect
|
||||
version/policy/citation text in Makefiles, `Kconfig.*`, `scripts/*.sh`, `proof/*.thy`, `.S`
|
||||
sources and `.gitea/workflows/`. The technique §I.2 used to fix it — ordered placeholder
|
||||
substitution, one pass per file — is the recorded-working method and should be reused rather
|
||||
than reinvented.
|
||||
|
||||
**And the same exclusion that §I.2 made deliberately still applies:**
|
||||
`.claude/settings.local.json`'s historical command log and `ClaudeEXPORT/` are frozen audit
|
||||
records — **rewriting them would falsify an audit trail, not fix a stale citation.** Leave them.
|
||||
|
||||
### XXVIII.4 — Still unruled: `VERSION`, the embedded engine string
|
||||
|
||||
`LITHOS_VERSION` and `VERSION` are independently tracked (`.claude/CLAUDE.md`, and confirmed at
|
||||
`Makefile.starkernel:83-84`). **`2.1.0` settles the kernel version; the engine version
|
||||
`VERSION ?= 3.1.0` is not settled by it.**
|
||||
|
||||
It plausibly moves — this reshuffle changes `BIRTH`'s registration, adds a Hera-only word,
|
||||
relocates the framebuffer primitives' registration and replaces the messaging layer, all of
|
||||
which are engine-side. But it is a separate string with its own meaning, and
|
||||
`.claude/CLAUDE.md` warns it "does not auto-sync with the standalone StarForth repo's own
|
||||
version." **Captain Bob's call, at tag time.**
|
||||
|
||||
Both are hand-edited. The `bump-z`/`bump-y` targets were removed 2026-08-15 as non-functional
|
||||
(they referenced fields that never existed in the generated `include/version.h`) and must not
|
||||
be resurrected from memory.
|
||||
|
||||
### XXVIII.5 — Punch list
|
||||
|
||||
- ✅ **Version — RULED**: `LITHOS_VERSION = 2.1.0`, tag `v2.1.0` (§XXVIII).
|
||||
- ⬜ **Roadmap-table line added in two live places**, `FABRIC-2.md` §G cited not edited
|
||||
(§XXVIII.2). Folds into item 13.
|
||||
- ⬜ **Item 13's sweep greps by exclusion**, per §XXVIII.3's precedent.
|
||||
- ⬜ **`VERSION` (engine) — one decision outstanding**, at tag time (§XXVIII.4).
|
||||
|
||||
**Every design question is ruled and the release number is set.** What remains is execution,
|
||||
one engine-version call, and the close.
|
||||
|
||||
Reference in New Issue
Block a user