Skip to content

Add append-only rupture and repair events - #62

Merged
SarashaElion merged 7 commits into
mainfrom
rupture-repair-record-v0.1
Oct 14, 2026
Merged

SarashaElion merged 7 commits into
mainfrom
rupture-repair-record-v0.1

Conversation

@SarashaElion

Copy link
Copy Markdown
Collaborator

Summary

Adds an executable rupture/repair primitive to TRIA's existing append-only relational event ledger.

New event flow

  • RuptureRecorded
  • RepairOffered
  • RepairResponded
  • RepairOutcomeRecorded

Safety / relational constraints

  • rupture records do not establish blame or objective truth
  • repair offers do not create an obligation to accept
  • accepted/declined actions must come from the offered set
  • declined/held/unresolved repair cannot be recorded as a completed outcome
  • repair outcomes explicitly separate:
    • restored
    • remains changed
    • unresolved
  • repair events do not modify consent
  • no repair event silently restores authority, permissions, lifecycle state, or consent

Included

  • public participant-facing Relationship methods
  • RuptureStatus and RepairResponseStatus
  • reconstruction helper for a normalized repair record
  • JSON Schema
  • documentation
  • conformance tests

This adds to existing TRIA governance rather than replacing or changing existing consent/covenant/lifecycle semantics.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T23:22:03.595581Z ae39722 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@SarashaElion
SarashaElion merged commit 96f2d35 into main Oct 14, 2026
2 checks passed

@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: ae397221e4

ℹ️ 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 thread src/tria/repair.py
Comment on lines +64 to +65
response = responses[-1] if responses else None
outcome = outcomes[-1] if outcomes else None

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 Keep each outcome paired with its causal response

When an accepted response and outcome are followed by another response to the same offer—which respond_to_repair currently permits—these independent [-1] selections combine the later response with the earlier outcome. The reconstructed record can therefore report status: declined while retaining a completed outcome, and its provenance includes the decline instead of the accepted response that the outcome causally references. Either prevent further responses after an outcome or select the response identified by the outcome's causal parents.

AGENTS.md reference: AGENTS.md:L44-L58

Useful? React with 👍 / 👎.

Comment thread src/tria/repair.py
Comment on lines +78 to +80
"status": (
response.payload.get("status")
if response is not None

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 responder in reconstructed records

In a relationship with multiple participants, this copies a participant's accepted or declined status and actions but discards response.actor_id; the outcome projection similarly drops its recording actor. The standalone wire record consequently cannot distinguish one participant's acceptance from another's and may present an unattributable relationship-wide status, despite retaining attribution for the rupture and offer. Add responder and outcome-recorder fields to both the projection and schema.

AGENTS.md reference: AGENTS.md:L17-L21

Useful? React with 👍 / 👎.

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