Skip to content

fix(identity): ownership relation must refine, not invert Theirs - #259

Merged
patroza merged 1 commit into
fork/identityfrom
t3code/fix-ownership-relation-superset
Jul 31, 2026
Merged

fix(identity): ownership relation must refine, not invert Theirs#259
patroza merged 1 commit into
fork/identityfrom
t3code/fix-ownership-relation-superset

Conversation

@patroza

@patroza patroza commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

Follow-up to #256 (merged without this fix): Theirs + Created used only the origin field, so threads you later joined still matched as Theirs/Created, while Theirs + Created or participated required you off every person tag. That made Created show more than Both.

  • Classify involvement first (started vs joined vs foreign)
  • Then refine by relation so Both ⊇ Created and Both ⊇ Participated for both Mine and Theirs

Test plan

  • vp test run packages/client-runtime/src/state/identity.test.ts
  • vp check + full monorepo typecheck
  • Web: Theirs + Created no longer lists threads you participated in
  • Theirs + Both is a superset of Created and of Participated
  • Compose + integration CI green after merge

Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.
@patroza
patroza enabled auto-merge (squash) July 31, 2026 12:20
@patroza
patroza merged commit f117abe into fork/identity Jul 31, 2026
9 checks passed
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Jul 31, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
omegent-app Bot pushed a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 4, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 4, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 4, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 4, 2026
Created looked only at origin, so Theirs+Created included threads you
joined (origin ≠ you) while Theirs+Both required you to be absent from
every person tag — Created could show more than Both. Classify involvement
first, then narrow by role so Both is always the superset.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
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