phase10: control-record corrections — symbol count 380 (not 392); record empty-merge pipeline pre-validation

This commit is contained in:
Christopher Williams
2026-09-24 06:51:50 -04:00
parent 5c1212b837
commit dd15442e09
2 changed files with 27 additions and 2 deletions
+18 -1
View File
@@ -38,7 +38,7 @@ Revalidated at head `25bf4a3` (the Phase 9 closure commit), before any Phase 10
| `make check` (test + extents-verify + gate) | exit 0; `regions=409 disagreements=0 result=AGREE`; `c_regions=409 differing_bytes=0 result=MATCH` |
| Rebuilt/original SHA-1 | `e173426c157384ebf1b6caf8c6fea18a85a14af9` (both) |
| Synthetic suite | 229 tests, `OK` |
| Registry | **409 regions / 400 distinct bodies** / 392 symbols |
| Registry | **409 regions / 400 distinct bodies** / 380 symbols |
| Firewall | 0 tracked paths under any prohibited root (506 tracked files) |
## Worklist state (regenerated at P10-T1)
@@ -74,6 +74,23 @@ The exclusion arithmetic now reconciles exactly. Of the 139 unregistered negativ
`delay_slot_start=1` + 6 with no derived extent (never candidates) = 139, and **0 survive into
the worklist**.
## Merge-pipeline pre-validation (P10-T1)
Before any claim existed, the full merge path was exercised end-to-end with an
**empty** claim set to prove the machinery cannot surprise the coordinator when
real claims arrive:
```
sf3_merge apply --exe 'extracted/SCUS_946.40;1' --extents config/function_extents.tsv \
--regions config/regions.tsv --claims <empty> --symbols config/symbols.tsv \
--out-regions ... --out-symbols ...
```
Result: `rejected=0 added_regions=0 added_symbols=0 regions_total=409
symbols_total=380 result=MERGED`, and both candidate files are **byte-identical**
to the tracked registry and symbol file. So an empty merge is a no-op and the
candidate-gate-before-promote step is wired correctly for this phase.
## Partitions (P10-T1)
3-way, generated by interleaving worklist ranks (tier mix preserved by construction). Files under
+9 -1
View File
@@ -18,7 +18,7 @@ operational contract, which Phase 10 inherits verbatim).
| whole-binary gate | `c_regions=409 differing_bytes=0 result=MATCH` |
| SHA-1 (both files) | `e173426c157384ebf1b6caf8c6fea18a85a14af9` |
| synthetic suite | 229 tests, `OK` |
| registry | 409 regions / 400 distinct bodies / 392 symbols |
| registry | 409 regions / 400 distinct bodies / 380 symbols |
| firewall | 0 tracked paths under any prohibited root (506 tracked files) |
**Session probing.** Three fresh sessions were live in the repository. All three
@@ -66,6 +66,14 @@ derived extent (never candidates) = 139, and **0 survivors** into the worklist.
pairwise intersections 0/0/0 and union == the 1343-row worklist (proved at
generation). Files under `.run/p10/` (ignored).
**Merge-pipeline pre-validation.** With no claims yet, the full merge path was
exercised end-to-end against an empty claim set: `rejected=0 added_regions=0
added_symbols=0 regions_total=409 symbols_total=380 result=MERGED`, and both
candidate files came out byte-identical to the tracked registry and symbol file.
An empty merge is therefore a no-op and the candidate-gate-before-promote step is
wired correctly for this phase. (This also corrected a coordinator miscount: the
symbol registry holds 380 rows under 13 comment lines, not 392.)
**Control-record commit:** `0557281`.
---