Repository navigation
feat(weave): add message-origin axis coupling candidate - #74
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 36f5f4bf04
ℹ️ 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".
| if type(self.axes) is not tuple or len(self.axes) != self.byte_length * 8: | ||
| raise ValueError("message origin must contain exactly eight axes per byte") | ||
| if tuple(axis.index for axis in self.axes) != tuple(range(len(self.axes))): | ||
| raise ValueError("message axes must preserve contiguous admission order") |
There was a problem hiding this comment.
Validate axes against their declared source positions
When a caller constructs the public MessageOrigin object directly, this validation checks only sequential axis.index values, so eight MessageAxis instances can all claim the same bit_index or an out-of-range-for-the-message byte_index and still be accepted by CoupledWitness and public_recover. That permits evidence whose occurrence metadata does not represent the claimed source-bit topology; require each axis to be a MessageAxis with (byte_index, bit_index) matching its index (for example, divmod(index, 8)).
Useful? React with 👍 / 👎.
| space=Fraction((i * 3 + shift) % 16, 8), | ||
| zero=Fraction((i * 3 + shift + 1) % 16, 8), | ||
| one=Fraction((i * 3 + shift + 9) % 16, 8), |
There was a problem hiding this comment.
Perturb relative circle geometry in the causality test
In test_six_hidden_circles_are_not_causal_in_this_candidate, hidden_shift is added equally to space, zero, and one, but Circle.position() computes the selected bit position minus space, so the shift cancels and all six hidden circles have exactly the same positional behavior in both key sets. The ciphertext equality therefore does not test a changed hidden-circle relation as claimed; vary zero or one relative to space and assert that the hidden circles' position functions actually differ before using the result as a causality witness.
Useful? React with 👍 / 👎.
| Run all Weave evidence: | ||
|
|
||
| ```bash | ||
| cd research/weave | ||
| python test.py --receipt /tmp/weave-check.json |
There was a problem hiding this comment.
Do not label the unit-test run as all Weave evidence
Following this instruction only invokes test.py, which performs unittest discovery and never runs probe.py or its receipt check, even though the workspace README and specification identify those commands as the reproduction path for the executed schedule and attack evidence. A user can therefore obtain the advertised passing receipt without reproducing that evidence; narrow this wording to the local candidate tests or include the probe generation and verification commands.
Useful? React with 👍 / 👎.
| - participants are individually addressable axes at one declared origin; | ||
| - axis identity follows construction/admission order; | ||
| - occurrence identity is preserved; | ||
| - attachment happens at the participation point; | ||
| - unresolved cross-origin geometry is not silently promoted. |
There was a problem hiding this comment.
Label occurrence-per-axis as a Weave-only candidate
The referenced UCHC blob does not establish this bullet: it defines one axis per glyph, word, or definition identity, while compose_definition explicitly preserves repeated participation's order and multiplicity without duplicating identity. Making every raw-bit occurrence a distinct axis is therefore a new admission law, but this section attributes occurrence-identity preservation to UCHC and makes the experiment appear source-backed; mark this mapping as an explicit Weave candidate/hmmm or bind it to a producer source that actually defines occurrence axes.
AGENTS.md reference: AGENTS.md:L26-L26
Useful? React with 👍 / 👎.
Implements the next Weave construction after merged #73.
Preserved structure
O_MUCHC boundary
Consumes the architecture actually present in UCHC
human/english/english_gonol/hyperspace_construct.py(blob8b55823805c87ad8c4cc9d7451dc2eb90bdedd3a): ordered axis participation at a shared origin, occurrence identity preservation, and construction-derived attachment. It does not invent UCHC cross-origin angles or continuum lift selection.Falsification
The candidate is publicly recoverable. The same public pair and public coupling state used to encode are sufficient to replay the trajectory and recover the message. A separate test changes all six omitted circles while holding the two public circles fixed; ciphertext remains unchanged.
So:
message origin + ordered axes + public feedbackdoes not yet make the six private circles causal and is not an asymmetric relation.
This narrows the remaining work to the actual degeneration/lift relation: public forward operation, private eight-circle efficient lift, and failure of efficient public inversion.
Usage
cd research/weave && python test.py --receipt /tmp/weave-check.jsonhmmm: the trapdoor degeneration/lift relation itself remains unresolved; no additional circle-selection policy is introduced.