Repository navigation
docs: participant history as a braid, with site-scoped settlement - #799
Conversation
Record the owner decision of 2026-10-13. History from another participant is held as a strand in a braid and is not merged on arrival. Interference leaves a recorded conflict on a bounded site. A conflict must be settled before anything acts on that site; work on other sites continues and a braid may stay plural elsewhere while its law allows. The page refines Continuum Transport, which already states what crosses the boundary and how an import is classified. It uses the vocabulary of the cross-project constitution (participant, receiving authority, four outcomes) and cites Observer Geometry II for the interference relation. Its current-implementation section states what exists: local strand settlement, suffix classification without import execution, braid events and per-tick footprint conflicts. It also states two gaps against the design: settlement blocks by suffix rather than by site, and an unsettled conflict stops nothing. Refs #798. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 50 minutes. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
…braid page Apply review notes the owner supplied. Independent footprints make movement possible; they do not prove it. The law and the evidence must also hold before the outcome is Derived. A sender keeps authority over its own history. What it cannot do is decide the outcome for another participant. The earlier wording, that a sender does not settle its own history, was broader than the rule. A settlement names the conflict it answers. Plural queues nothing for later resolution. An obstruction names what was missing. Delivery, admission and outcome are separate facts, and carriage grants no authority to settle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 409002b1fb
ℹ️ 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".
Address seven review threads and an owner-supplied design review. The site rule contradicted itself and could not be implemented. It refused every tick that touched an unsettled site, which also refused the settlement that answers the conflict. It said later incoming ticks were not carried, which read as the suffix-wide blocking the design replaces. It said a settlement releases the site, including one that ends in obstruction. It let the intended writes of a refused tick enlarge the blocked site, so one submission that claimed to write everywhere could stop a receiver. The page now separates holding, judging and applying. A barrier refuses work whose validated dependencies meet an unsettled site. Settlement passes it by a path of its own. A held tick raises no barrier and is judged when the conflict is settled. What a settlement does to the barrier depends on its result. Also: the decision summary keeps the Plural outcome; interference is stated in both directions and covers write-write and absence; the common frontier is a set; a settlement planned on a basis that has moved is refused; determinism names authority, evidence, law version and limits among its inputs; the first law is limited to application readings. A worked trace is added. Decisions the design still needs are listed, and the status line says the design is not yet precise enough to implement. Remove the changelog entry. CHANGELOG.md is for shipped behaviour. Refs #798. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Code Lawyer: activity summaryHead
Added: a worked trace (interference, an independent later tick, a dependent later tick, a local write to a held tick's target, settlement, re-judging). Design choices made in this rework that the owner should confirm. They follow from the review but were not stated by the owner:
Left as open decisions on the page: footprint trust as a proof obligation (#716), what a footprint must record, overlapping conflicts, partial settlement, retries, accepting plurality with safe effects, the default plural law, delegation. Deviations from the Code Lawyer procedure: one commit for the queue, not one per issue, because the findings overlap in the same sentences. No failing regression test per issue: this is a documentation change. Checks run instead: the four |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a13e198fa5
ℹ️ 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".
… braid design Address review. A tick that only deletes a slot in an unsettled site was not refused, because delete targets are outside the use set. The settlement table did not say what a settlement that itself ends in conflict does to the barrier. The page calls the common frontier a set while the suffix bundle names each frontier as one coordinate; state that gap and list it as an open decision. Refs #798. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f741bfde66
ℹ️ 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".
Address review. The page said every admission ends in one of four outcomes, which left the Staged posture that suffix admission already returns outside the design. Staged is history that is held and not yet judged; the four outcomes are results of judging. Refs #798. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and that footprints are checked for completeness Record three clarifications to the confirmed design choices. A barrier exists from the moment a conflict is judged; holding raises none. A settlement refused for a stale basis records that reason, and a new plan is a new settlement with its own authorization. Authentic causal history does not prove a footprint complete. Refs #798. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b8e2c02800
ℹ️ 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".
Address review. Derived now requires that the tick interfere with no local tick it is carried across, so one tick cannot be both Derived and in conflict. Held history is retained while a claim or conflict depends on it; today a strand is scoped to its session, and that gap is stated. An exact repeat of a bundle is recognized by its identity, as Continuum Transport already requires; only retries with new evidence stay open. The page states that an admission response carries one outcome per bundle and lists a per-tick outcome artifact as an open decision. Refs #798. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 25a5af3baa
ℹ️ 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".
| - **Retries with new evidence.** An exact repeat of a bundle is the same | ||
| question again: it is recognized by the bundle's identity, it weaves no | ||
| second member, and it returns the retained outcome. |
There was a problem hiding this comment.
Scope retry identity to the full admission question
When the same source bundle is proposed against another target worldline, target basis, or named law, it is not the same import question and may produce a different outcome. Fresh evidence in the current tree is that derive_causal_suffix_bundle_digest hashes only the source frontiers and suffix witness, while ImportSuffixRequest carries the target fields separately; therefore recognizing retries solely by bundle identity can return another target's retained outcome. Scope outcome reuse to the bundle plus the receiving basis/law posture, while retaining the bundle digest for shell equivalence and loop prevention.
AGENTS.md reference: AGENTS.md:L20-L28
Useful? React with 👍 / 👎.
| - **Outcomes for part of a bundle.** One bundle can hold ticks that end | ||
| Derived, in Conflict and Staged. The boundary needs an artifact that | ||
| reports an outcome for each. |
There was a problem hiding this comment.
Report outcomes per site rather than only per tick
When one incoming tick interferes at two disjoint sites, the receiving law can preserve the claims as Plural at one site while producing Conflict at the other. An artifact with only one outcome per tick still cannot encode both site-scoped judgments, so it would discard a lawful claim or barrier; define per-site results or an explicit deterministic aggregation rule instead of treating per-tick reporting as sufficient.
AGENTS.md reference: AGENTS.md:L20-L28
Useful? React with 👍 / 👎.
| 2. **Judge.** The receiving authority carries each incoming tick across its | ||
| own history and records an outcome. Judging changes no reading of | ||
| application state. It can raise a barrier. | ||
| 3. **Apply.** A Derived result becomes part of the receiving worldline only | ||
| through a witnessed commit on an explicit basis. Readings of application |
There was a problem hiding this comment.
Emit Derived only after the commit succeeds
When the target frontier changes after Judge but before Apply, the explicit-basis commit can be refused, yet step 2 has already recorded a witnessed Derived outcome. AdmissionOutcomeKind::Derived denotes a result that was admitted, so this sequence can retain a success for an effect that never entered receiving history. Keep the pre-commit judgment as a nonfinal candidate posture and emit Derived only atomically with successful Apply, or make the two operations indivisible.
AGENTS.md reference: AGENTS.md:L48-L56
Useful? React with 👍 / 👎.
| as a member strand. Braid membership changes. No reading of application | ||
| state changes, and nothing becomes inadmissible. History that is held and | ||
| not yet judged is Staged. Held history and its evidence are retained for | ||
| as long as a claim or a conflict depends on them. They do not end with the | ||
| session that received them. |
There was a problem hiding this comment.
Gate holding on capability and retention budgets
When receiving untrusted remote suffixes, this Hold step unconditionally changes braid membership and promises durable retention before any judgment can obstruct the submission. A sender can therefore consume unbounded membership and evidence storage with oversized or repeatedly unique staged bundles; mentioning budgets only as later classification inputs does not protect the Hold itself. Require bounded-aperture, capability, and retention-budget admission before weaving, with a typed obstruction that leaves no membership when the gate fails.
AGENTS.md reference: AGENTS.md:L20-L28
Useful? React with 👍 / 👎.
| - A settlement is planned against a basis. If that basis has moved when the | ||
| settlement is committed, the commit is refused with an obstruction that | ||
| records the stale basis as its reason. A new plan is a new settlement and | ||
| needs its own authorization. An authorized settlement is never altered to | ||
| fit a basis it was not planned on. |
There was a problem hiding this comment.
Keep unrelated commits from invalidating settlement
When a conflict at X is planned and an admissible independent tick at Y commits before it, the receiving frontier moves, so this rule rejects the settlement even though Y cannot affect it. Allowed work outside the site can therefore invalidate every plan and starve settlement under sustained unrelated traffic, defeating the site-scoped barrier; revalidate only the settlement's named site dependencies, or pin/reserve its commit, rather than treating every frontier movement as stale.
AGENTS.md reference: AGENTS.md:L20-L28
Useful? React with 👍 / 👎.
What this adds
docs/architecture/participant-history-as-a-braid.md: an accepted design, not implemented, recording the owner's decision of 2026-10-13.It refines
continuum-transport.md, which already states what crosses the boundary and how an import is classified; this page does not restate that.Vocabulary
The page says participant (the cross-project name is Kitten), receiving authority, and the four outcomes Derived, Plural, Conflict and Obstruction. It does not say "replica". Sources are cited as the origin of the terms and rules, not as evidence of implementation: Observer Geometry II (interference relation, use set, common frontier, suffix transport) and History Over State (the Kitten, the receiving authority's sole right to settle, the four-outcome algebra).
Current implementation section
Written from the code, not from memory. It states what exists (
SettlementServicecompare, plan and settle for a local strand;export_suffixandimport_suffixas classification only; braid events; per-tick footprint conflicts) and two gaps against the design:Checks
tests/docs/test_retired_component_refs.sh,test_knowledge_model.sh,test_documentation_model.shandtest_generated_rule_truth.shpass locally. Prettier is not installed on this host, so hosted CI is the formatting check.Not done
I read four sections of Observer Geometry II and the glossary and settlement lines of History Over State, not either work in full. The open-decisions section lists what the page leaves for the owner, including whether observed footprints (#716) are the trusted source for independence.
Refs #798.
🤖 Generated with Claude Code
Summary by CodeRabbit