feat: name Event Lineage isolation reasons (v2.16.0) - #493
Conversation
|
Warning Review limit reachedNext included review available in 41 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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. Comment |
|
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. |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
…; 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
…493 sync) # Conflicts: # AGENTS.md # backend/app/lineage_ingestion.py # tests/test_lineage_ingestion.py
|
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. |
ff960f3 to
6fbc866
Compare
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.
eb6c979 to
cc3080c
Compare
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_keyImport backfills
thread_group_keyfrom process-unit code when no explicit thread mapping exists, so key presence is not evidence a real thread was identified.isolation_reasoncounts only ABAC-visiblereconstruct_group_keymembers. A hidden sibling must not flipno_comparison_group→comparison_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
no_comparison_group; two visible members and zero edges →comparison_candidates_available; hidden sibling staysno_comparison_group; inaccessible focus staysnull; landing staysnull.Do not squash-merge without independent APPROVE on this exact head plus required checks green. Author will not self-approve.