fix(projection): stamp entity docs against a canonical body digest - #106
Merged
Conversation
The node-scoped key introduced for 0.4.3 ({scale signal, semantic
proof}) was not a complete "body would be byte-identical" predicate:
renderEntitySummary also prints node status, summary, localContracts,
entrypoints, and relations, none of which enter the semantic
compilation. A model-level status flip rewrote the body while the
stamp was reused, and once the new body landed the marker outputDigest
matched, so drift went clean — a permanently silent false stamp.
Hash the entity body rendered with a fixed placeholder stamp
(CANONICAL_STICKY_STAMP) instead. The digest is a total function of
every body input except the stamp itself, so future body inputs are
covered by construction and restamping stays truthful. Sticky
decision logic, restamp-unmeasured semantics, non-entity targets,
renderer version (v3), and package versions (0.4.3) are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
archctxmain package).{scale signal, proof digest}was not a complete body predicate —renderEntitySummaryalso renders status/summary/localContracts/entrypoints/relations, absent from both the semantic compilation and the footprint measurement. A model-level status flip rewrote the body while reusing the old stamp; once the new body landed, drift went clean — a permanently silent falseverifiedAgainst.digestJsonof the entity body rendered with a fixed placeholder stamp. Total function of every body input except the stamp; future body inputs covered by construction. Sticky decision logic untouched.bun test1233 pass / 0 fail;tsc --noEmitclean; read-onlydocs plansmoke confirms one-time entity digest reshape with non-entity bodies byte-identical to main.ARCHCTX_FEATUREStoken naming; repo-internal docs re-projection (one-time re-render after upgrade).