Publish Public Gonol relationship lab - #35
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4292641b19
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| downloadButton.addEventListener('click', () => { | ||
| if (!currentReceiptText) return; | ||
| const href = URL.createObjectURL(new Blob([currentReceiptText], { type: 'application/json' })); |
There was a problem hiding this comment.
Rebuild the receipt before downloading it
When a user changes an operand, policy, or arity and immediately clicks Download, the change is still waiting in the 80 ms debounce—or in the asynchronous digest—so this handler serializes the previous currentReceiptText. An arity change can even produce a filename for the new arity containing a receipt for the old one; await or flush the current update, or disable downloading while an update is pending.
Useful? React with 👍 / 👎.
|
|
||
| async function assembleOperand(slot, occurrenceOrdinal) { | ||
| const view = operandViews.get(slot); | ||
| const payload = view.payload.value; |
There was a problem hiding this comment.
Preserve line endings before claiming exact UTF-8
When source text contains CRLF or standalone CR line endings, reading it through a textarea's .value normalizes those line breaks to LF before vectorization and hashing. The resulting occurrence vector and SHA-256 therefore do not represent the exact entered/source UTF-8 bytes promised by this lab; byte-exact input needs a path that preserves original line endings, or the receipt must explicitly declare this normalization.
Useful? React with 👍 / 👎.
| provenance: { | ||
| contract_repository: publication.source.repository, | ||
| contract_commit: publication.source.commit, | ||
| contract_path: publication.source.path, | ||
| contract_sha256: publication.source.sha256, |
There was a problem hiding this comment.
Include the producer blob in downloaded provenance
The module contract states that emitted receipts retain the exact UCNS commit, path, blob, and digest, and publication.source.blob is available, but the assembled provenance omits the blob. Consequently, downloaded receipts lose one of the declared producer identities; add it here and to the receipt schema so the portable artifact satisfies its provenance contract.
Useful? React with 👍 / 👎.
| display_policy: { | ||
| policy_id: contract.scale_contract.display_policy_id, | ||
| policy_version: contract.scale_contract.display_policy_version, | ||
| standing: arity === 7 ? 'unresolved' : 'declared-static-projection', | ||
| parameters: { display_radius: contract.scale_contract.display_radius, projection_id: primitive.projection_id }, | ||
| information_loss: contract.scale_contract.information_loss |
There was a problem hiding this comment.
Record whether derived layers were displayed
When the user clears “Show derived scope and relationship circles,” the SVG changes but the generated receipt remains identical because display_policy.parameters never records derivedLayersControl.checked. A downloaded receipt therefore cannot reproduce or distinguish the selected explicit view policy; include the derived-layer visibility choice in the policy parameters.
Useful? React with 👍 / 👎.
| provenance: { | ||
| contract_repository: publication.source.repository, | ||
| contract_commit: publication.source.commit, | ||
| contract_path: publication.source.path, | ||
| contract_sha256: publication.source.sha256, | ||
| producer_authenticated: false, | ||
| consumer_reference: 'The-Interdependency/The-Interdependency.github.io:/artifacts/gonol-relationships/' |
There was a problem hiding this comment.
Carry non-transfer boundaries into portable receipts
When a receipt is downloaded and viewed independently of this page, it retains only producer_authenticated: false and drops the publication's authority, proof, measurement, and empirical non-transfer flags. This is especially ambiguous when the same receipt reports candidate-measured-evidence; serialize those explicit false boundaries and add them to the schema so the portable artifact preserves the status limits promised by the page.
Useful? React with 👍 / 👎.
| const digestIdentity = operands.map(operand => operand.receiptOperand.content_digest?.slice(0, 12) || 'hmmm').join('-'); | ||
| const primitive = contract.primitives.find(candidate => candidate.arity === arity); | ||
| return { | ||
| schema_id: 'ucns.gonol-relationship-receipt', | ||
| schema_version: '0.1.0', | ||
| receipt_id: `website-gonol-relation:${arity}:${digestIdentity}`, |
There was a problem hiding this comment.
Derive receipt IDs from all identity-bearing state
The receipt ID depends only on arity and truncated payload digests, so changing gonol IDs, source identities, native scales, or the comparison policy produces a materially different receipt with the same receipt_id. Consumers that deduplicate or index these portable receipts by ID can conflate distinct relationships; derive the ID from all identity-bearing receipt state rather than payload digests alone.
Useful? React with 👍 / 👎.
| return { | ||
| source_ordinal: sourceOrdinal, | ||
| code_point: codePoint, | ||
| source_value: sourceValue, | ||
| carrier_position: invalidSurrogate ? null : (assignedPosition ?? null), |
There was a problem hiding this comment.
Emit the declared occurrence-vector dimension names
A consumer following vector_policy.dimensions is told that each occurrence has unicode_scalar_value and carrier_position_or_null, but these objects instead expose code_point and carrier_position without declaring an alias mapping. Such consumers will read both advertised dimensions as missing, and the scalar is represented as a formatted label rather than the declared scalar value; emit the contract-named fields or explicitly describe the adapter mapping.
Useful? React with 👍 / 👎.
…ew-reconciliation fix(site): reconcile post-merge export and Gonol receipt defects Repairs the eleven unresolved findings carried forward from PRs #35 and #36. Preserves the GitHub Actions pre-step execution failure as an operational boundary rather than representing it as successful repository validation.
|
Post-merge reconciliation completed in PR #37 and merged as The replacement repair addresses all seven unresolved findings from this PR: current-state receipt finalization before download, explicit textarea line-ending normalization, producer blob provenance, derived-layer visibility, complete false non-transfer boundaries, full-state SHA-256 receipt identity, and contract-named occurrence-vector dimensions. It also adopts the strict UCNS receipt schema from The original threads remain intact as historical evidence. GitHub Actions continued to fail before |
Outcome
Publishes a static-first Public Gonol relationship lab backed by the exact draft UCNS producer contract in UCNS PR #168.
{1,2,3,7}without hiding or ranking alternatives;AB,BC, andCAvesicas;hmmm;Producer pin
The-Interdependency/ucns9025957b4063c4748429cb56b52d3c9a56157c42docs/gonol-relationship-display-v1.jsonfdb94ff829a42c267de5f00f2a752550352a444dd1ac67d4a5d5b4cd0622056af94b24a1404f1f5c7d7dfeb59ee28e5edb73aad5The consumer does not fetch a moving branch at runtime and receives no canon, mathematical, proof, measurement, empirical, completion, or embedding authority.
Validation
npm run check:gonol-relationships— passednpm test— 48 passedA local production refresh attempt briefly observed Wayseer article-excerpt drift while upstream state was changing; the clean GitHub integration run passed. This PR does not weaken or bypass the existing validation gate.
Work graph and review order
The skill-lib/interdependent-work-graph discipline keeps producer ownership, exact content identity, consumer behavior, losses, and non-transfer boundaries separate.
hmmm
This begins the exact occurrence-address layer needed by later English embedding work. It does not claim that the English lexical floor, root-word policy, corpus materialization, continuous Möbius local-frame law, seven-form geometry, higher-gonol composition, or hyperdimensional embedding law is complete.