build: a build no longer dirties the tree

v3/include/version.h is written by every build (kernel/Makefile and
v3/Makefile, both FORCE), with a timestamp and the last build's ARCH; the
committed copy was stale (LITHOS_VERSION 2.1.0). Untracked, and .gitignore's
entry corrected: it said include/version.h, the path before the move to v3/,
and matched nothing.

capsules/BLOCK_MAP.md differed on every build only in mkcapsule's
"Generated ... <timestamp>" header. The timestamp is dropped, so the manifest
changes only when the capsules do; two runs are byte-identical.
mkcapsule's warnings unchanged (5, #143).

Captain Bob, 2026-11-11: untrack version.h and fix the ignore; drop the
manifest timestamp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RzZgrf7V7Zk2iczBXDRbm
This commit is contained in:
Claude
2026-11-11 17:05:01 +00:00
parent aec7ddb56e
commit 90c5c140ea
4 changed files with 5 additions and 22 deletions
+2 -7
View File
@@ -740,11 +740,6 @@ static int cmp_blockref(const void *a, const void *b) {
}
static void generate_manifest(FILE *out) {
time_t now = time(NULL);
struct tm *tm_ptr = gmtime(&now);
char timestamp[64];
strftime(timestamp, sizeof(timestamp), "%Y-%m-%dT%H:%M:%SZ", tm_ptr);
qsort(manifest_entries, (size_t)manifest_count,
sizeof(ManifestEntry), cmp_manifest_name);
@@ -762,11 +757,11 @@ static void generate_manifest(FILE *out) {
fprintf(out,
"# Capsule Block Manifest — Auto-generated\n"
"<!-- Generated by mkcapsule --manifest %s -->\n"
"<!-- Generated by mkcapsule --manifest (no timestamp: it changes only with the capsules) -->\n"
"<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->\n"
"<!-- Hand-written justifications and immutability notes live -->\n"
"<!-- in MANIFEST.md alongside this auto-generated index. -->\n"
"\n", timestamp);
"\n");
/* Capsule summary */
fprintf(out, "## Capsule Summary\n\n");