Repository navigation
feat: make Event Lineage directional and evidence-readable #330
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
seonghobae
merged 122 commits into
feat/analysis-run-name-evidence-lineage
from
feat/lineage-dag-regression
Aug 21, 2026
Merged
Changes from 120 commits
Commits
Show all changes
122 commits
Select commit
Hold shift + click to select a range
09a9ca1
fix: preserve oidc deep links across callback storage
seonghobae e02cb11
fix: render buyer-facing image evidence
seonghobae b0edd9b
fix: label unavailable image evidence
seonghobae f7d11e3
docs: avoid oidc adr number collision
seonghobae 116a8dc
Merge remote-tracking branch 'origin/fix/oidc-deep-link-locale' into …
seonghobae 5deb067
docs: avoid buyer image adr number collision
seonghobae cd6301b
fix: bind summary actions to source-grounded projects
seonghobae 3efdff3
test: cover project-bound summary action round trip
seonghobae 1e5ac11
docs: record buyer gap checkpoint evidence
seonghobae 313d38a
docs: align image evidence ADR heading
seonghobae e0dbc38
docs: align OIDC ADR heading
seonghobae 4d1736e
fix: preserve legacy action evidence delimiters
seonghobae c01001d
Merge branch 'fix/project-bound-summary-actions' of https://github.co…
seonghobae e81aff8
docs: refresh buyer gap audit checkpoint
seonghobae d442287
docs: record current project action head
seonghobae 0eb70c9
feat: bind summary events to source-grounded projects
seonghobae 60b52f2
Merge remote-tracking branch 'origin/fix/project-bound-summary-action…
seonghobae a49b315
docs: record full checkpoint verification
seonghobae 8220673
fix(summary): normalize project keys before persistence
seonghobae 3c74f1f
Merge commit 'a49b315e6e0ad3c2369d56a77fa6fd50d2230a0a' into codex/fi…
seonghobae bd4e96b
docs: refresh exact-head buyer gap audit
seonghobae 42e6230
test(summary): cover project key sentinel normalization
seonghobae a4d1de5
test(image): cover source placement and OCR rendering
seonghobae d8b7f56
fix: preserve stale summary buyer continuity
seonghobae 2218ee7
fix: keep post content recovery alive
seonghobae b7ed772
test(summary): cover stale continuity and retry
seonghobae c914f76
feat: add explicit post content retry
seonghobae bff4c9d
test(queue): cover explicit retry rejection
seonghobae ba60842
docs(queue): complete retry command docstrings
seonghobae c301e2e
fix: reconcile backfill content with job ledger
seonghobae 4016e2b
fix(ui): preserve indentation after mixed content
seonghobae 20b9177
Merge remote-tracking branch 'origin/fix/stale-summary-buyer-continui…
seonghobae e219e48
docs: record post content recovery evidence
seonghobae 8b0e1d8
docs(ui): clarify indentation matching boundary
seonghobae 5873966
test(ui): cover missing source unit fallback
seonghobae 4bc21e4
fix: serialize per-post vision region analysis
seonghobae 69b96e9
Merge remote-tracking branch 'origin/fix/stale-summary-buyer-continui…
seonghobae d4807f0
fix(ui): preserve adjacent table boundaries
seonghobae d9b4b51
fix: preserve honest image evidence rendering
seonghobae cea0e7b
fix: separate source whitespace from explicit structure
seonghobae 9f7574f
docs: record source indentation buyer gap
seonghobae f13bc3f
feat: enrich semantic hints from source catalogs
seonghobae adbb72d
fix: reject non-decomposed vision regions
seonghobae 766b742
docs: refresh protected gate baseline
seonghobae 4d3d7ae
docs: record corrected image region evidence
seonghobae 85dbfb5
fix: trim source catalog lookup codes
seonghobae efd4aab
docs: record catalog hint boundary
seonghobae deca246
docs: record exact-head validation evidence
seonghobae 82b7b39
docs: record live browser acceptance
seonghobae 69b8909
docs: refresh live gate topology
seonghobae f922322
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae 49d85d0
Merge remote-tracking branch 'origin/fix/oidc-deep-link-locale' into …
seonghobae 40c9168
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into c…
seonghobae fc7969e
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae 516603c
Merge remote-tracking branch 'origin/fix/oidc-deep-link-locale' into …
seonghobae 3072e01
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into c…
seonghobae a903fff
Merge remote-tracking branch 'origin/fix/project-bound-summary-action…
seonghobae d36e106
Merge remote-tracking branch 'origin/fix/stale-summary-buyer-continui…
seonghobae ca3f56a
Merge remote-tracking branch 'origin/codex/fix-mixed-body-indentation…
seonghobae e84994e
Merge remote-tracking branch 'origin/codex/post-structure-case-fixes'…
seonghobae ab27898
fix: refresh content after summary ingestion
seonghobae e14dd95
test: cover lineage graph interactions
seonghobae 2d7f899
fix: bound OIDC return state parsing
seonghobae 3a32312
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae e5ee5db
Merge remote-tracking branch 'origin/fix/oidc-deep-link-locale' into …
seonghobae 9e17c2a
fix: validate buyer image sources at render boundary
seonghobae 1fa42f8
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into c…
seonghobae 446abeb
Merge remote-tracking branch 'origin/fix/project-bound-summary-action…
seonghobae 36a879b
Merge remote-tracking branch 'origin/fix/stale-summary-buyer-continui…
seonghobae bb9c78e
Merge remote-tracking branch 'origin/codex/fix-mixed-body-indentation…
seonghobae 1e762d5
Merge remote-tracking branch 'origin/codex/post-structure-case-fixes'…
seonghobae 9a45941
fix: expose unexpected content channel defects
seonghobae 0816d59
Merge remote-tracking branch 'origin/codex/normalize-source-indent-se…
seonghobae 9e59b70
fix: expose recoverable content batch failures
seonghobae 18fdaa9
Merge remote-tracking branch 'origin/codex/normalize-source-indent-se…
seonghobae 17fa14f
test: define directional accessible lineage graph contract
seonghobae 3ab6ba7
test: avoid duplicate lineage marker identities
seonghobae c5bbb52
feat: make event lineage direction and evidence explicit
seonghobae 6be794a
fix: keep lineage graph legible across themes and widths
seonghobae 89daa52
fix: expose lineage evidence by default
seonghobae d8b7eef
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae 4e40e26
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae fbecd77
Merge remote-tracking branch 'origin/fix/oidc-deep-link-locale' into …
seonghobae 46ca533
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into c…
seonghobae 4f029ea
test: require accessible lineage graph regions
seonghobae 63269e4
feat: make lineage graph structure accessible
seonghobae b32e177
style: add lineage graph interaction states
seonghobae a285256
docs: add lineage graph Storybook states
seonghobae c5fa8c2
docs: record lineage DAG evidence improvements
seonghobae 17ff911
Merge remote-tracking branch 'origin/fix/project-bound-summary-action…
seonghobae efaef8a
test: keep lineage node controls exposed to assistive technology
seonghobae 077509e
fix: expose lineage node controls outside image semantics
seonghobae 1fb1626
docs: record buyer lineage DAG design boundary
seonghobae e38df62
Merge remote-tracking branch 'origin/fix/stale-summary-buyer-continui…
seonghobae 1faed2f
Merge remote-tracking branch 'origin/codex/fix-mixed-body-indentation…
seonghobae e3f00ea
Merge remote-tracking branch 'origin/codex/post-structure-case-fixes'…
seonghobae cabe3bb
test: cover isolated roots and fused-score labeling
seonghobae d668267
fix: omit empty lineage evidence tables
seonghobae f80998b
docs: add isolated lineage Storybook state
seonghobae 3f3ec01
Merge remote-tracking branch 'origin/codex/normalize-source-indent-se…
seonghobae c19d05e
docs: record Event Lineage Figma frame IDs
seonghobae a157220
test: require lineage meaning and legend disclosure
seonghobae 2d595d0
test: require five-locale lineage meaning copy
seonghobae 94dbfeb
feat: add localized lineage meaning copy
seonghobae 5f12e91
feat: disclose lineage legend and inference boundary
seonghobae 5d63e1c
style: add lineage legend and inference notice
seonghobae e04b128
docs: record lineage meaning and legend disclosure
seonghobae 34a3603
test: require actionable lineage empty state and Space activation
seonghobae 088b1d5
test: require localized lineage empty-state next action
seonghobae 507d520
feat: localize actionable lineage empty state
seonghobae 0db9bd7
feat: make the lineage empty state actionable
seonghobae c883483
docs: record actionable lineage empty state
seonghobae 86e2134
test: require mobile evidence-card labels
seonghobae 0b0cacd
feat: label mobile lineage evidence cards
seonghobae f9df5ea
fix: guard lineage dag layout against cycles
seonghobae f4563df
docs: plan forward-only fast stabilization
seonghobae 0d7fd47
test: reproduce lineage date specificity defect
seonghobae 6f4712d
fix: preserve muted lineage event-date styling
seonghobae 1fad94f
Merge protected main into Event Lineage stack
seonghobae 6c9f86d
Merge commit 'c135c41ba65e02a5598647adcfc978002f275673' into HEAD
seonghobae 336730f
fix: keep unauthenticated admin controls gated
seonghobae 0e63ba0
fix: align Event Lineage shell with UI UX guide (#350)
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # 2.12.6 — Validate buyer image sources | ||
|
|
||
| ## Fixed | ||
|
|
||
| - Buyer image rendering now rejects script, SVG, external, and malformed | ||
| source URLs before they reach an image element. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # 2.12.6 — Bound OIDC deep-link state parsing | ||
|
|
||
| ## Fixed | ||
|
|
||
| - OIDC callback state is parsed at most once and length-bounded before JSON | ||
| handling, preventing recursive encoded state from exhausting the browser | ||
| stack while preserving safe same-origin post deep links. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| ### Changed | ||
|
|
||
| - Made the buyer Event Lineage DAG explicitly directional with parent-to-child arrowheads whose paths stop outside node circles. | ||
| - Preserved authored graph width behind a keyboard-focusable horizontal scroll region instead of shrinking deep lineages. | ||
| - Added visible event dates, a redundant visual/text legend, and an accessible exact-value evidence table for lineage relations, dates, and fused scores. | ||
| - Added five-locale buyer copy stating that reconstructed continuation edges do not prove causality or authoritative fact. | ||
| - Replaced the internal "seed posts" empty-state language with an actionable five-locale instruction to add eligible source records and rebuild Event Lineage. | ||
| - Added synthetic Storybook states for branching, selected-root, isolated-root, and empty lineage surfaces. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # Mixed table and paragraph indentation | ||
|
|
||
| ## Fixed | ||
|
|
||
| - Match persisted post units to their source text instead of using ordinal | ||
| position, so a table or embedded image cannot shift the fallback indentation | ||
| of a later unresolved paragraph. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| ## Preserve partial visual regions | ||
|
|
||
| - Retain valid salient image regions for panel-level OCR and search. | ||
| - Also analyze the parent image when locator coverage is partial so text outside | ||
| the returned panels remains searchable. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # Preserve adjacent source tables | ||
|
|
||
| ## Fixed | ||
|
|
||
| - Keep consecutive persisted rows in separate buyer-facing tables when the | ||
| source post contains more than one HTML table, preserving the authored table | ||
| boundary without changing source text or semantic row content. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| ## Fix source-only indentation depth | ||
|
|
||
| - Keep leading spaces and ` ` available as diagnostics without persisting | ||
| them as authoritative structure; only declared HTML/CSS/OOXML or list | ||
| nesting is explicit. | ||
| - Keep expected structure and embedding channel failures retryable while | ||
| propagating unexpected defects to the durable ingestion ledger. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| import re | ||
|
|
||
| with open("frontend/src/i18n.ts", "r") as f: | ||
| content = f.read() | ||
|
|
||
| translations = { | ||
| "Admin": { | ||
| "ko": "관리자", | ||
| "zh": "管理员", | ||
| "ja": "管理者", | ||
| "vi": "Quản trị viên" | ||
| }, | ||
| "Admin settings": { | ||
| "ko": "관리자 설정", | ||
| "zh": "管理员设置", | ||
| "ja": "管理者設定", | ||
| "vi": "Cài đặt quản trị viên" | ||
| }, | ||
| "Tenant brand name": { | ||
| "ko": "테넌트 브랜드명", | ||
| "zh": "租户品牌名称", | ||
| "ja": "テナントブランド名", | ||
| "vi": "Tên thương hiệu khách thuê" | ||
| }, | ||
| "Save settings": { | ||
| "ko": "설정 저장", | ||
| "zh": "保存设置", | ||
| "ja": "設定を保存", | ||
| "vi": "Lưu cài đặt" | ||
| }, | ||
| "Settings saved!": { | ||
| "ko": "설정이 저장되었습니다!", | ||
| "zh": "设置已保存!", | ||
| "ja": "設定が保存されました!", | ||
| "vi": "Đã lưu cài đặt!" | ||
| } | ||
| } | ||
|
|
||
| for eng, trans in translations.items(): | ||
| content = content.replace(f' Refresh: "새로 고침",', f' Refresh: "새로 고침",\n "{eng}": "{trans["ko"]}",') | ||
| content = content.replace(f' Refresh: "조회",', f' Refresh: "조회",\n "{eng}": "{trans["ko"]}",') | ||
|
|
||
| content = content.replace(f' Refresh: "刷新",', f' Refresh: "刷新",\n "{eng}": "{trans["zh"]}",') | ||
| content = content.replace(f' Refresh: "更新",', f' Refresh: "更新",\n "{eng}": "{trans["ja"]}",') | ||
| content = content.replace(f' Refresh: "Làm mới",', f' Refresh: "Làm mới",\n "{eng}": "{trans["vi"]}",') | ||
|
|
||
| with open("frontend/src/i18n.ts", "w") as f: | ||
| f.write(content) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔍 Changelog version 2.12.7 is below the latest 2.13.1 fragment
This adds 2.12.7-lineage-dag-evidence.md while newer fragments (up to
2.13.1-*) already exist inCHANGELOG.d/. The PR description notes it stacks oncodex/normalize-source-indent-semantics, so the lower version may be intentional to slot into an earlier release line, but reviewers should confirm the version fragment is correct for the intended release rather than an accidental regression.Was this helpful? React with 👍 or 👎 to provide feedback.