Skip to content

History from other participants: braids and site-scoped settlement (tracking) #798

Open

Description

@flyingrobots

Tracking container for the accepted design in docs/architecture/participant-history-as-a-braid.md (added by the PR that references this issue). This issue groups executable units; it is not itself one PR.

Decision (owner, 2026-10-13). History from another participant is held as a strand in a braid. A conflict must be settled before anything acts on the site it covers; a braid may stay plural elsewhere while its law allows.

What exists today. Local strand settlement into a base worldline (SettlementService: compare, plan, settle), the four-outcome admission algebra, suffix bundle export and classification (witnessed_suffix, shape only), braid membership and settlement events, and per-tick footprint conflict rejection.

Proposed units (each needs its own issue before work starts; order is by dependency):

  1. Site-scoped blocking in the settlement plan. Today the first conflict or plural entry blocks every later entry of the suffix. Block only entries whose use set touches the unsettled site, and grow the site by the writes of each blocked entry.
  2. An unsettled-site index on the receiving worldline, and scheduler refusal (a typed obstruction) of any tick whose footprint touches an unsettled site.
  3. Settlement of a recorded conflict as its own witnessed act that releases the site.
  4. Footprint coverage: decide what Echo's in_slots and out_slots must add to cover deletes and anchors as the paper's use set requires, and whether observed footprints (Retain observed execution footprints for falsification #716) are the trusted source.
  5. Import execution for a suffix bundle from another participant: today import_suffix classifies and does not append or apply.
  6. A benchmark with a controlled share of overlapping footprints.
  7. The Continuum binding: which crossing artifact carries a suffix bundle. Depends on Continuum, not on Echo alone.

Related: #782 (settlement simulates on a whole-state copy per entry and copies the runtime; sliced readings would remove both), #787.

Activity

  1. flyingrobots commented on Oct 13, 2026

    @flyingrobots
    OwnerAuthor

    Proposed first milestone (from review notes supplied by the owner, 2026-10-13): one explicit crossing between two participants.

    Transfer a witnessed strand; show one independent derivation and one bounded conflict; return outcome evidence; then reconnect and retry the same crossing without duplicating its effects. The measure of success: another participant's history enters Echo without importing that participant's authority.

    Protocol roles proposed in those notes, recorded here as proposals and not as a description of any existing Continuum wire format: offer history; request missing evidence (a suffix is enough only when the receiver can establish its required causal context); transfer history and witnesses; evaluate locally under the receiver's profile; return a witnessed outcome. Delivery acknowledgement and semantic outcome stay separate, and a crossing has a stable identity so that a retry is not new participation.

    Where this sits against existing pages: continuum-transport.md already requires a host adapter to hold no mutation authority and treats exact bundle re-import as the same question returning. It does not yet describe an offer and request exchange, or a crossing identity distinct from the bundle identity. Those belong to Continuum's side of the boundary (unit 7 above).

  2. flyingrobots commented on Oct 13, 2026

    @flyingrobots
    OwnerAuthor

    Proposals on exploration and receiving context (2026-10-13). Not accepted. The design page is not changed by these. They are recorded here to be refined; the page should be amended only after the owner settles their meaning.

    Background. The questions were what other participants do while one participant rewinds, replays or explores a counterfactual, and whether network traffic affects only a "main" worldline. Echo has no main worldline: ImportSuffixRequest already names an explicit target worldline and target basis, and continuum-transport.md requires operations to be proposed against explicit causal bases. So the target of a crossing is already explicit. What is missing is context policy and admission, not routing.

    Proposed rule that frames the rest

    Every crossing names its target worldline and causal basis. The receiving authority checks whether the crossing's declared mode and permitted effects are admissible in that context.

    Proposed invariants (judged solid in review)

    1. Replay never re-sends. Outbound crossings are represented from their records. This extends an existing rule: docs/topics/ExternalActions.md says settled replay returns the retained bytes and does not open the capability again.
    2. A recorded reply is evidence only of what happened. If a counterfactual changes the request, it cannot reuse the old reply as evidence of what the other participant would have done. It needs a simulated counterpart with its assumptions recorded, a real participant who explicitly joins, or an Obstruction.

    Proposals that still need refinement

    1. A sandbox outcome grants no authority over another context. Acting on it requires a new crossing against an explicit target and basis, followed by the receiver's evaluation. (An earlier wording said "cross again from the present"; that was more restrictive than necessary.)
    2. An exploration context may cross with a consenting participant and remain exploratory. The explicit act is authorizing the crossing and its effects, not leaving exploration. (An earlier wording required a transition into active participation before any live crossing.)
    3. Live arrivals are held for the context they are addressed to. A rewind, replay or counterfactual does not silently ingest them, and holding them must not become an implicit destination that overrides the crossing's named target.

    Open questions

    • What marks a worldline or strand as an exploration context, and where that mark is retained. Nothing in Echo does this today.
    • What "declared mode" and "permitted effects" are as data on a crossing, and whether they belong to Continuum's family or to Echo's import intent.
    • How a receiver records that it agreed to take part in another participant's exploration, so that its answer is evidence of that participation and not of the alternative having happened.
    • Whether rewind and replay need any admission rule at all, given that both are readings.

    Rewind itself needs no rule: it changes what one participant observes, not what any other participant has witnessed.

  3. flyingrobots commented on Oct 13, 2026

    @flyingrobots
    OwnerAuthor

    The design page merged in #799. During review it gained: three named steps (hold, judge, apply), the barrier and what passes it, release that depends on the settlement's result, the Staged posture, a worked trace, and an open-decisions list. Three choices confirmed by the owner on 2026-10-13: a held tick raises no barrier and is judged when the conflict is settled; a settlement on a stale basis is refused and a new plan needs its own authorization; dependence between incoming ticks needs validated causal evidence, with footprint completeness checked separately.

    Gaps against today's code that the page now states, in addition to the two in this issue's description: holding, judging and applying are one call; nothing answers a recorded conflict later; a suffix bundle names one coordinate per frontier; an admission response carries one outcome per bundle; a strand does not outlive its session.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions