Skip to content

feat: name Event Lineage isolation reasons (v2.16.0) - #493

Merged
seonghobae merged 1 commit into
mainfrom
feat/event-lineage-isolation-reason-v2160
Aug 25, 2026
Merged

feat: name Event Lineage isolation reasons (v2.16.0)#493
seonghobae merged 1 commit into
mainfrom
feat/event-lineage-isolation-reason-v2160

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Independent of #481 / #485 / #484 / #482 / #490 / #387.

Buyer-visible increment

Opening a post with no Event Lineage DAG no longer says only "No linked posts yet." The focused graph now reports isolation_reason:

  • comparison_candidates_available — other visible posts share this comparison group, but the current projection has no Event Lineage link; this does not claim a completed rebuild considered the latest source rows. Next: read Keyman and evaluation.
  • no_comparison_group — this post is the only visible member of its comparison group, so there was nothing to compare it against. Next: request a reconstruction after more posts share the group, or read Keyman and evaluation.
  • null — landing view, a non-empty DAG, or a post the account cannot see.

Why group size, not thread_group_key

Import backfills thread_group_key from process-unit code when no explicit thread mapping exists, so key presence is not evidence a real thread was identified. isolation_reason counts only ABAC-visible reconstruct_group_key members. A hidden sibling must not flip no_comparison_groupcomparison_candidates_available (side channel).

ADR

ADR 0143 — accepted and implemented here. Same decision as the proposed record on #490; this slice does not mix that mega-branch.

Tests

  • Python FakeConnection: sole visible member → no_comparison_group; two visible members and zero edges → comparison_candidates_available; hidden sibling stays no_comparison_group; inaccessible focus stays null; landing stays null.
  • Frontend empty-DAG copy for both reasons; i18n ko/zh/ja/vi.

Do not squash-merge without independent APPROVE on this exact head plus required checks green. Author will not self-approve.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 41 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b5a66807-fd82-468b-add3-0efa6c06c425

📥 Commits

Reviewing files that changed from the base of the PR and between 4f53190 and cc3080c.

📒 Files selected for processing (2)
  • backend/app/lineage_ingestion.py
  • tests/test_lineage_ingestion.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Dependency record: exact head f75b0ac keeps its protected base unchanged. Frontend tests (143) and lint complete, but tsc build remains blocked by two pre-existing protected-base errors in App.tsx: unused OIDC return-url helpers and an optional access token passed to AdminPanel. PR #426 owns that shared OIDC/TypeScript root fix, so #493 intentionally does not duplicate it. Revalidate #493 against protected main after #426 lands; until then the failed Frontend lint, test, build gate and normal merge protection remain authoritative.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@codex review exact head d9dd62f please. This head keeps only PR #493 privacy/request-state semantics effective; the common OIDC/Admin TypeScript fix remains owned by #426 and must be revalidated after that protected-base dependency lands.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@codex review exact head a19455a please. The only delta after d9dd62f is release/architecture synchronization for the emitted provisional candidate state.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: a19455a30c

ℹ️ 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".

seonghobae added a commit that referenced this pull request Aug 23, 2026
…; log unexpected provider-boundary defects (#361)

visible_lineage_graph's connected-component BFS built its neighbor
graph from every post_lineage_edge row before ABAC filtering, so an
edge to a hidden sibling post could make an otherwise-isolated focused
post look connected -- masking isolation_reason (ADR 0143) and leaking
the existence of a hidden relationship through its absence. Both edge
endpoints must now be visible before an edge counts. Found on a
divergent history line (PR #493) via cross-session coordination;
ported the fix into this branch's canonical implementation rather than
merging the parallel reimplementation. Regression test proves RED
(pre-fix: focused post renders as connected) to GREEN.

Also: the 10 fail-closed `except Exception` catch-alls across
backend/app/main.py (Global Ask, per-post chat, keymen extraction,
entity-relationship verification, evaluation, summary regeneration,
commitment derivation) now log the exception server-side
(logger.exception, stdlib logging, no new dependency) before the same
stable customer-facing 503. Partial close of issue #361: server-side
traceback capture is done; OpenTelemetry metrics/correlation IDs are a
separate new-dependency decision not forced through this checkpoint.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011EP69xAyLaJxa6oaF6D9eq
@seonghobae
seonghobae enabled auto-merge August 24, 2026 01:24
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 04:40
@seonghobae
seonghobae enabled auto-merge August 24, 2026 07:58
github-code-quality[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

@github-actions
github-actions Bot disabled auto-merge August 24, 2026 16:43
@seonghobae
seonghobae enabled auto-merge August 24, 2026 17:04
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 17:58
@seonghobae
seonghobae enabled auto-merge August 24, 2026 19:12
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 19:25
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae enabled auto-merge August 24, 2026 22:45
seonghobae added a commit that referenced this pull request Aug 25, 2026
…493 sync)

# Conflicts:
#	AGENTS.md
#	backend/app/lineage_ingestion.py
#	tests/test_lineage_ingestion.py
@seonghobae
seonghobae enabled auto-merge August 25, 2026 02:15
@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 02:28
@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 03:37
@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 03:40
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 03:47
devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 05:00
@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 05:36
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact head 8b4fa4f semantically composes ADR 0143 isolation reasons with protected-main ADR 0161 interval labels. Backend lineage/docs: 32 passed; frontend lint and build passed. The three App cases that hit the 5 s limit during the aggregate run each passed together under an explicit 15 s diagnostic bound (15.41 s combined); hosted exact-head checks remain authoritative. No unresolved review threads remain; auto-merge is armed pending checks and independent approval.

devin-ai-integration[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 05:57
@seonghobae
seonghobae force-pushed the feat/event-lineage-isolation-reason-v2160 branch from ff960f3 to 6fbc866 Compare August 25, 2026 05:58
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 06:43
devin-ai-integration[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration 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.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread tests/test_merge_conflict_markers.py Outdated
@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 07:45
@seonghobae
seonghobae enabled auto-merge August 25, 2026 07:55
devin-ai-integration[bot]

This comment was marked as resolved.

Rebase of the v2.16.0 isolation contract onto main's batched
lineage-graph fetch. A focused Event Lineage DAG that renders empty now
says why: no comparison group in the ABAC-visible thread, or comparison
candidates merely available (the published projection may predate their
arrival, so a completed comparison is never claimed). The landing graph
never reports an isolation reason; hidden siblings cannot flip one into
the other.
@seonghobae
seonghobae force-pushed the feat/event-lineage-isolation-reason-v2160 branch from eb6c979 to cc3080c Compare August 25, 2026 08:06

@devin-ai-integration devin-ai-integration 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.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread backend/app/lineage_ingestion.py
@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 08:21
@seonghobae
seonghobae merged commit b02ed32 into main Aug 25, 2026
27 of 31 checks passed
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