RedFlag/PROVENANCE.md
Fimeg 765ec4188f publish: carry the Windows product into the projection
The tree adds the installer, service and test paths admitted by this source commit. Nothing else changes about what may cross.

Source-Sha: 3e4a3aa4ce092e9e3f51bc78daf3ddc14d9638f8

Policy-Sha: 3e4a3aa4ce092e9e3f51bc78daf3ddc14d9638f8

Tree-Digest: 89d6fce3828a0e0de0c8eeb41ee6750f4462217e2a04b5190297134d7f4a50c3
2026-09-09 12:47:34 -04:00

2.3 KiB

Publication provenance

This branch is a constructed public projection. Its commit trailers identify the internal source commit and the policy used to admit the projected tree. Admission means the tree is eligible for disclosure; it neither authorizes nor implies external publication.

.publication/paths.txt is the exact path authority. Every file in a candidate must be listed, and every listed file must exist. Parent directories grant no recursive authority. .publication/surface_gate.py can also write the exact mode, blob ID, size, and path inventory for one immutable candidate with --inventory-out.

Path authority covers every reachable commit, including files deleted before the tip. Removing a path from disclosure therefore requires history that does not contain it; a deletion commit alone is insufficient. Shallow history fails closed. Internal development history is preserved separately.

Reproduce the tree digest from a checked-out public commit with:

LC_ALL=C git ls-tree -r --full-tree HEAD^{tree} | LC_ALL=C sort | sha256sum

The result must equal the commit's Tree-Digest trailer.

Why public history begins at the epoch

Public history starts at a single constructed commit because the history before it was not admissible. Twenty-six commits carried an internal author identity and one body quoted an internal registry address, and no force push removes what a mirror has already copied.

Replaying eleven hundred commit messages through a filter would have produced a different object graph wearing the old words, and would still have required a person to read every one of them. The honest alternative is this one: the development history is preserved in full inside the private forge, where it is useful, and the public repository carries what was deliberately sent out.

The reviewed history allowlist is empty for the first time. It held forty-four commits, and every one of them was excused for exactly the thing the epoch removes.

Everything after the epoch commit is an ordinary publication carrying the same three trailers, so a force push stops being routine and starts meaning that something deliberate happened. The trailers bind a projection to its source without pretending the public commit is the private one: same lineage, different tree, and the record says so.