Skip to content

Publish Public Gonol relationship lab - #35

Merged
erinepshovel-code merged 1 commit into
mainfrom
agent/publish-gonol-relationship-lab-v1
Aug 3, 2026
Merged

erinepshovel-code merged 1 commit into
mainfrom
agent/publish-gonol-relationship-lab-v1

Conversation

@erinepshovel-code

@erinepshovel-code erinepshovel-code commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Outcome

Publishes a static-first Public Gonol relationship lab backed by the exact draft UCNS producer contract in UCNS PR #168.

  • renders the primitive option range {1,2,3,7} without hiding or ranking alternatives;
  • renders one as a figure-eight centerline, two as the complete vesica with scope and relationship circles, and three as a triquetra retaining separate AB, BC, and CA vesicas;
  • retains seven exact operand identities while leaving its geometry and pairing plan explicitly hmmm;
  • exposes all 157 exact Public Gonol positions and creates ordered Unicode occurrence-address vectors without normalization;
  • admits any declared native scale while declaring equalized visible-radius loss;
  • keeps comparison off by default and offers exact UTF-8 equality only as an explicit experiment candidate;
  • emits local, downloadable, schema-shaped relationship receipts with producer provenance and non-transfer boundaries;
  • remains useful without JavaScript and gives generated substantive text fields the site's existing copy controls.

Producer pin

  • repository: The-Interdependency/ucns
  • commit: 9025957b4063c4748429cb56b52d3c9a56157c42
  • path: docs/gonol-relationship-display-v1.json
  • Git blob: fdb94ff829a42c267de5f00f2a752550352a444d
  • SHA-256: d1ac67d4a5d5b4cd0622056af94b24a1404f1f5c7d7dfeb59ee28e5edb73aad5

The 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 — passed
  • npm test — 48 passed
  • targeted Eleventy Nunjucks/static render — passed
  • targeted Chromium interaction tests — 2 passed
  • targeted axe serious/critical accessibility test — passed
  • desktop and 390 px visual audits — passed; narrow-view horizontal overflow is regression-tested
  • GitHub Pull Request run #77 — passed the full clean-checkout build, validation, source tests, generated-site tests, browser tests, and accessibility tests

A 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

  1. Review the option-preserving producer contract in UCNS PR #168.
  2. Review this dependent publication and interaction layer.
  3. Merge neither without explicit user approval.

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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +555 to +557
downloadButton.addEventListener('click', () => {
if (!currentReceiptText) return;
const href = URL.createObjectURL(new Blob([currentReceiptText], { type: 'application/json' }));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Comment on lines +508 to +512
provenance: {
contract_repository: publication.source.repository,
contract_commit: publication.source.commit,
contract_path: publication.source.path,
contract_sha256: publication.source.sha256,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +488 to +493
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +508 to +514
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/'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +480 to +485
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}`,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +135 to +139
return {
source_ordinal: sourceOrdinal,
code_point: codePoint,
source_value: sourceValue,
carrier_position: invalidSurrogate ? null : (assignedPosition ?? null),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@erinepshovel-code
erinepshovel-code merged commit 7fb223e into main Aug 3, 2026
5 checks passed
erinepshovel-code added a commit that referenced this pull request Aug 4, 2026
…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.

Copy link
Copy Markdown
Contributor Author

Post-merge reconciliation completed in PR #37 and merged as 4576ce712684135f02ca72f88251f75dcd927ae6.

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 cfad06cf41bd1cc82861f08f6076f0d398a0089b.

The original threads remain intact as historical evidence. GitHub Actions continued to fail before Set up job, with no steps, logs, or configured failure artifact; merge history records that as an unresolved execution boundary rather than a green gate claim.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant