Skip to content

feat: deliver workspace evidence board and source-grounded ontology surface - #258

Open
seonghobae wants to merge 1013 commits into
mainfrom
feat/analysis-run-name-evidence-lineage
Open

feat: deliver workspace evidence board and source-grounded ontology surface#258
seonghobae wants to merge 1013 commits into
mainfrom
feat/analysis-run-name-evidence-lineage

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Scope

This root stack reconciliation preserves the accumulated customer-facing evidence, ontology, semantic-source, contextual-orchestrator, durable-ingestion, and customer-evidence capability while following protected main through normal merge history. No product capability is removed to reduce the diff.

Product and security boundary

  • Keeps Board, Customer Master, Calendar, Ask Agent, authorized source evidence, 5W1H, project/Keyman context, Event Lineage, and ontology/provenance contracts.
  • Prevents unauthenticated login from rendering the authenticated Admin surface.
  • Keeps contextual-orchestrator, OIDC, RankWeave, TEPP, and durable-worker failures behind stable customer-facing errors while preserving chained server diagnostics.
  • Preserves synthetic-only repository fixtures and the established Figma, Storybook, token, provenance, and knowledge-cutoff boundaries.
  • Keeps the heterogeneous Ontology Explorer and Event Lineage readability follow-ups independent rather than weakening this root.

Exact current candidate

  • Protected base: main@ef6f5a5ffcb467bd935dc1e53acc0029669b0bd7.
  • Exact current head: f4ebfc684cdd6017255712cc4be37528cbb7d21a.
  • GitHub reports the PR mergeable.
  • Auto-merge is not enabled; merge automation state is not used as readiness evidence.
  • Existing submitted reviews are comments, not an independent formal APPROVED verdict on this exact head.
  • Required checks were re-queued on this head; queued evidence is non-passing. The ADR 0146 reference repair passed 5 documentation-hygiene tests and diff validation locally. Do not merge until terminal success plus independent APPROVE.

Verification and merge gate

Merge only after:

  1. every required check is terminal-success on f4ebfc684cdd6017255712cc4be37528cbb7d21a;
  2. no new unresolved current-head finding exists;
  3. an eligible independent non-author formal approval exists for this head; and
  4. GitHub branch protection accepts an expected-head merge without bypass, force-push, or history rewrite.

Do not self-approve. After this root lands, dependent branches continue by ordinary restack and retain their full customer-visible scope.

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 363 files, which is 263 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fc7e7f7f-6ca7-4ce5-a5ce-509ef8837aa3

📥 Commits

Reviewing files that changed from the base of the PR and between ef6f5a5 and f0b5234.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (363)
  • .env.example
  • .github/workflows/repair-global-ask-pnpm-v2.yml
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.d/2.12.0-weekly-voc-iso-week.md
  • CHANGELOG.d/2.12.6-frontend-build-gate.md
  • CHANGELOG.d/2.12.6-oidc-return-storage.md
  • CHANGELOG.d/2.12.6-provider-error-boundary.md
  • CHANGELOG.d/2.12.6-remove-self-modifying-repair-workflows.md
  • CHANGELOG.d/2.12.7-korean-search-boundary.md
  • CHANGELOG.d/2.12.7-lineage-dag-evidence.md
  • CHANGELOG.d/2.12.8-ontology-org-shacl.md
  • CHANGELOG.d/2.13.0-weekly-voc-open-event-lineage.md
  • CHANGELOG.d/2.13.1-mcp-browser-admission.md
  • CHANGELOG.d/2.14.0-calendar-open-event-lineage.md
  • CHANGELOG.d/2.15.0-customer-hierarchy-boundary.md
  • CHANGELOG.d/2.15.0-customer-master-open-event-lineage.md
  • CHANGELOG.d/2.16.0-ask-agent-open-event-lineage.md
  • CHANGELOG.d/2.16.0-pr262-hardening.md
  • CHANGELOG.d/2.17.0-event-lineage-node-keeps-gnb-focus.md
  • CHANGELOG.d/2.17.0-image-and-summary-boundaries.md
  • CHANGELOG.d/2.18.0-ask-agent-evidence-workspace.md
  • CHANGELOG.d/2.18.0-project-history-truth-and-loading.md
  • CHANGELOG.d/2.18.2-authenticated-mcp-global-ask.md
  • CHANGELOG.d/2.19.0-gnb-event-lineage-focus-keyman.md
  • CHANGELOG.d/2.19.0-remove-source-fix-artifacts.md
  • CHANGELOG.d/2.19.1-mcp-boundary-hardening.md
  • CHANGELOG.d/2.20.0-global-ask-cutoff-safety.md
  • CHANGELOG.d/2.20.1-authorized-entity-ids.md
  • CHANGELOG.d/2.20.2-ask-session-storage-key.md
  • CHANGELOG.d/2.23.0-global-ask-knowledge-cutoff.md
  • CHANGELOG.d/2.23.2-project-history-lineage-counts.md
  • CHANGELOG.d/cross-repo-lineage-provider-contract.md
  • CHANGELOG.d/customer-master-tree-projection.md
  • CHANGELOG.d/external-lineage-contract.md
  • CHANGELOG.d/mcp-distributed-account-rate-limit.md
  • CHANGELOG.d/pr258-bug-fixes.md
  • CHANGELOG.md
  • CLAUDE.md
  • add_translations.py
  • backend/Dockerfile
  • backend/app/activity_stream.py
  • backend/app/analysis_run_ingestion.py
  • backend/app/analysis_run_start.py
  • backend/app/ask_project_history.py
  • backend/app/auth.py
  • backend/app/config.py
  • backend/app/demo_scope.py
  • backend/app/entity_relationship_ingestion.py
  • backend/app/five_w1h_ingestion.py
  • backend/app/global_ask.py
  • backend/app/global_ask_media.py
  • backend/app/global_ask_verification.py
  • backend/app/issue_ticket_ingestion.py
  • backend/app/keycloak_audience_reconciler.py
  • backend/app/knowledge_graph.py
  • backend/app/main.py
  • backend/app/mcp_admission.py
  • backend/app/mcp_auth.py
  • backend/app/mcp_rate_limit.py
  • backend/app/mcp_server.py
  • backend/app/organization_name_resolution_ingestion.py
  • backend/app/post_chat_ingestion.py
  • backend/app/post_content_worker.py
  • backend/app/post_eligibility.py
  • backend/app/post_summary_ingestion.py
  • backend/app/project_history.py
  • backend/app/ranking_ingestion.py
  • backend/app/report_ingestion.py
  • backend/app/source_post_revision.py
  • backend/app/tepp_project_history.py
  • backend/tests/test_api.py
  • backend/tests/test_auth_jwks.py
  • docker-compose.yml
  • docker/contextual-orchestrator/start.py
  • docker/keycloak/Dockerfile
  • docker/keycloak/entrypoint.sh
  • docker/keycloak/realm-export.json
  • docker/keycloak/themes/lineageweave/login/resources/css/lineageweave.css
  • docker/keycloak/themes/lineageweave/login/theme.properties
  • docker/postgres-init/migrate.sh
  • docs/adr/0002-figma-access-boundary.md
  • docs/adr/0005-relation-verification-agent.md
  • docs/adr/0008-organization-abbreviation-resolution.md
  • docs/adr/0022-authorized-tepp-start.md
  • docs/adr/0063-third-normal-form-bookmarks.md
  • docs/adr/0090-global-ask-lineage-timeline-expansion.md
  • docs/adr/0092-weekly-voc-iso-week-filter.md
  • docs/adr/0093-weekly-voc-open-focuses-event-lineage.md
  • docs/adr/0094-calendar-open-focuses-event-lineage.md
  • docs/adr/0095-customer-master-open-focuses-event-lineage.md
  • docs/adr/0096-ask-agent-open-focuses-event-lineage.md
  • docs/adr/0097-event-lineage-node-keeps-gnb-focus.md
  • docs/adr/0100-gnb-event-lineage-focuses-keyman.md
  • docs/adr/0101-internal-relation-evidence.md
  • docs/adr/0102-major-event-requester-processor.md
  • docs/adr/0103-semantic-document-evidence-contract.md
  • docs/adr/0105-source-whitespace-is-not-authoritative-structure.md
  • docs/adr/0106-related-node-business-captions.md
  • docs/adr/0108-semantic-source-unit-boundaries.md
  • docs/adr/0113-project-history-links-in-ask-surfaces.md
  • docs/adr/0114-stale-summary-buyer-continuity.md
  • docs/adr/0119-mcp-browser-request-admission.md
  • docs/adr/0120-two-word-database-identifiers.md
  • docs/adr/0121-mhtml-source-body-resolution.md
  • docs/adr/0122-ticket-mutation-resource-authorization.md
  • docs/adr/0123-provider-error-boundary.md
  • docs/adr/0124-customer-master-tree-projection.md
  • docs/adr/0125-global-ask-cutoff-and-migration-identity.md
  • docs/adr/0126-enrichment-timeout-does-not-block-summary.md
  • docs/adr/0127-recover-tepp-validation-on-canonical-project-history.md
  • docs/adr/0128-authorized-project-history-buyer-surface.md
  • docs/adr/0129-customer-master-three-pane-workspace.md
  • docs/adr/0130-global-ask-cutoff-and-migration-identity.md
  • docs/adr/0131-batched-post-ask-reauthorization.md
  • docs/adr/0132-operational-controlled-vocabulary-semantic-layer.md
  • docs/adr/0133-external-email-project-lineage-contract.md
  • docs/adr/0134-calendar-open-focuses-event-lineage.md
  • docs/adr/0135-global-ask-knowledge-cutoff.md
  • docs/adr/0136-authorized-project-history-buyer-surface.md
  • docs/adr/0137-ask-agent-evidence-workspace.md
  • docs/adr/0138-authenticated-mcp-global-ask.md
  • docs/adr/0139-valkey-account-operation-events.md
  • docs/adr/0140-mathematical-script-semantic-normalization.md
  • docs/adr/0141-retire-buyer-terminology.md
  • docs/adr/0142-lineage-provider-contract.md
  • docs/adr/0146-distributed-mcp-principal-rate-limit.md
  • docs/adr/0147-tepp-topic-lineage-project-history.md
  • docs/contracts/README.md
  • docs/contracts/external-lineage-analysis-v1.authorization.md
  • docs/contracts/external-lineage-analysis-v1.consumer-checklist.md
  • docs/contracts/external-lineage-analysis-v1.data-minimization.md
  • docs/contracts/external-lineage-analysis-v1.example.json
  • docs/contracts/external-lineage-analysis-v1.limitations.md
  • docs/contracts/external-lineage-analysis-v1.operability.md
  • docs/contracts/external-lineage-analysis-v1.schema.json
  • docs/contracts/external-lineage-analysis-v1.security.md
  • docs/contracts/external-lineage-analysis-v1.versioning.md
  • docs/doctoring/CUSTOMER_HIERARCHY_REFERENCES.md
  • docs/doctoring/DESIGN_TOKEN_REFERENCES.md
  • docs/doctoring/EXTERNAL_LINEAGE_CONTRACT_REFERENCES.md
  • docs/doctoring/EXTERNAL_LINEAGE_CONTRACT_TRACEABILITY.md
  • docs/doctoring/GLOBAL_ASK_KNOWLEDGE_CUTOFF.md
  • docs/doctoring/MCP_REFERENCES.md
  • docs/doctoring/PRODUCT_TECHNICAL_GAP_REFERENCES.md
  • docs/doctoring/RELATED_NODE_AFFILIATION_REFERENCES.md
  • docs/image-content-schema.md
  • docs/integrations/MCP.md
  • docs/lineage-bi-research-notes.md
  • docs/ontology/lineageweave-kg.shacl.ttl
  • docs/ontology/lineageweave-kg.ttl
  • docs/product-technical-gap-baseline.md
  • docs/storybook-inventory.md
  • docs/superpowers/plans/2026-08-21-external-lineage-integration-contract.md
  • docs/superpowers/plans/2026-08-21-forward-only-fast-stabilization.md
  • docs/superpowers/plans/2026-08-21-naruon-email-project-lineage-contract.md
  • docs/superpowers/specs/2026-08-21-naruon-email-project-lineage-contract-design.md
  • fix_prompts.py
  • frontend/package.json
  • frontend/src/App.css
  • frontend/src/App.test.tsx
  • frontend/src/App.tsx
  • frontend/src/LineageDag.css
  • frontend/src/LineageDag.css.test.ts
  • frontend/src/LineageDag.stories.tsx
  • frontend/src/LineageDag.test.tsx
  • frontend/src/LineageDag.tsx
  • frontend/src/PostBody.stories.tsx
  • frontend/src/PostBody.test.tsx
  • frontend/src/PostBody.tsx
  • frontend/src/RelatedNodeChip.stories.tsx
  • frontend/src/RelatedNodeChip.test.tsx
  • frontend/src/RelatedNodeChip.tsx
  • frontend/src/analysisRunNavigation.test.ts
  • frontend/src/analysisRunNavigation.ts
  • frontend/src/api.test.ts
  • frontend/src/api.ts
  • frontend/src/boardCss.test.ts
  • frontend/src/components/AskAgentWorkspace.css
  • frontend/src/components/AskAgentWorkspace.stories.tsx
  • frontend/src/components/AskAgentWorkspace.styles.test.ts
  • frontend/src/components/AskAgentWorkspace.test.tsx
  • frontend/src/components/AskAgentWorkspace.tsx
  • frontend/src/components/AskProjectHistoryLinks.css
  • frontend/src/components/AskProjectHistoryLinks.stories.tsx
  • frontend/src/components/AskProjectHistoryLinks.test.tsx
  • frontend/src/components/AskProjectHistoryLinks.tsx
  • frontend/src/components/BuyerNav.tsx
  • frontend/src/components/CitationChip.test.tsx
  • frontend/src/components/CustomerMasterRelationshipWorkspace.test.tsx
  • frontend/src/components/CustomerMasterTree.css
  • frontend/src/components/CustomerMasterTree.stories.tsx
  • frontend/src/components/CustomerMasterTree.test.tsx
  • frontend/src/components/CustomerMasterTree.tsx
  • frontend/src/components/PopupCloseButton.test.tsx
  • frontend/src/components/PopupCloseButton.tsx
  • frontend/src/components/ProjectHistoryTimeline.css
  • frontend/src/components/ProjectHistoryTimeline.stories.tsx
  • frontend/src/components/ProjectHistoryTimeline.tepp.test.tsx
  • frontend/src/components/ProjectHistoryTimeline.test.tsx
  • frontend/src/components/ProjectHistoryTimeline.tsx
  • frontend/src/components/TeppProjectHistoryEvidence.css
  • frontend/src/components/TeppProjectHistoryEvidence.stories.tsx
  • frontend/src/components/TeppProjectHistoryEvidence.test.tsx
  • frontend/src/components/TeppProjectHistoryEvidence.tsx
  • frontend/src/components/WorkspaceNav.test.tsx
  • frontend/src/components/WorkspaceNav.tsx
  • frontend/src/components/icons.tsx
  • frontend/src/customerMasterTree.test.ts
  • frontend/src/customerMasterTree.ts
  • frontend/src/customerMasterWorkspace.ts
  • frontend/src/i18n.test.ts
  • frontend/src/i18n.ts
  • frontend/src/index.css
  • frontend/src/isoWeek.test.ts
  • frontend/src/isoWeek.ts
  • frontend/src/lineageDagI18n.test.ts
  • frontend/src/lineageDagI18n.ts
  • frontend/src/lineageLayout.test.ts
  • frontend/src/lineageLayout.ts
  • frontend/src/mobileHeaderCss.test.ts
  • frontend/src/oidcReturnUrl.test.ts
  • frontend/src/oidcReturnUrl.ts
  • frontend/src/popupLayoutCss.test.ts
  • frontend/src/postBodyDisplay.test.ts
  • frontend/src/postBodyDisplay.ts
  • frontend/src/projectHistory.ts
  • frontend/src/relatedNodeCaption.test.ts
  • frontend/src/relatedNodeCaption.ts
  • frontend/src/relatedNodeTokens.css
  • frontend/src/styles/tokens.css
  • lineageweave/__init__.py
  • lineageweave/adjudication_client.py
  • lineageweave/affiliate_tree.py
  • lineageweave/caldav_client.py
  • lineageweave/chunking.py
  • lineageweave/commitment_extraction.py
  • lineageweave/corporate_hierarchy_inference.py
  • lineageweave/customer_hint_resolution.py
  • lineageweave/entity_relationship_classification.py
  • lineageweave/external_lineage.py
  • lineageweave/external_lineage_analysis.py
  • lineageweave/external_lineage_contract.py
  • lineageweave/http_client.py
  • lineageweave/image_content.py
  • lineageweave/keyman_extraction.py
  • lineageweave/ontology.py
  • lineageweave/organization_name_resolution.py
  • lineageweave/post_chat.py
  • lineageweave/post_content_normalization.py
  • lineageweave/post_content_persistence.py
  • lineageweave/post_evaluation.py
  • lineageweave/post_summary.py
  • lineageweave/project_history.py
  • lineageweave/rankweave_client.py
  • lineageweave/reconstruct.py
  • lineageweave/relation_verification.py
  • lineageweave/source_artifacts.py
  • lineageweave/tepp_client.py
  • lineageweave/tepp_project_history.py
  • lineageweave/topic_lineage_artifact.py
  • lineageweave/voc_evidence.py
  • migrations/0018_analysis_run_registry.sql
  • migrations/0031_semantic_project_mentions.sql
  • migrations/0035_body_search_prefix.sql
  • migrations/0036_normalized_body_search.sql
  • migrations/0043_bookmark.sql
  • migrations/0044_member_locale_preference.sql
  • migrations/0050_post_content_ingestion_queue.sql
  • migrations/0051_context_scoped_organization_name_resolution.sql
  • migrations/0052_global_ask_context.sql
  • migrations/0053_project_history_lookup.sql
  • migrations/0054_post_chat_knowledge_cutoff.sql
  • migrations/0103_tenant_settings.sql
  • migrations/0104_two_word_database_identifiers.sql
  • migrations/0131_analysis_run_topic_lineage_kind.sql
  • migrations/0132_analysis_run_topic_lineage_result.sql
  • migrations/rollback/0053_project_history_lookup.sql
  • migrations/rollback/0054_post_chat_knowledge_cutoff.sql
  • migrations/rollback/0104_two_word_database_identifiers.sql
  • patch_api.py
  • patch_app_fetch.py
  • patch_app_order.py
  • patch_app_test.py
  • patch_main.py
  • patch_main_pool.py
  • pyproject.toml
  • scripts/backfill_post_content.py
  • scripts/backfill_post_keymen.py
  • scripts/backfill_post_summaries.py
  • scripts/import_postgresql_posts.py
  • scripts/seed_demo_data.py
  • tests/test_activity_stream.py
  • tests/test_adjudication_client.py
  • tests/test_analysis_run_create.py
  • tests/test_analysis_run_start.py
  • tests/test_ask_project_history.py
  • tests/test_ask_project_history_cutoff.py
  • tests/test_backfill_post_content.py
  • tests/test_chunking.py
  • tests/test_config.py
  • tests/test_contextual_orchestrator_start.py
  • tests/test_documentation_hygiene.py
  • tests/test_entity_relationship_ingestion.py
  • tests/test_external_lineage_analysis.py
  • tests/test_external_lineage_contract.py
  • tests/test_external_lineage_explicit_parent_budget.py
  • tests/test_external_lineage_public_api.py
  • tests/test_global_ask_cutoff.py
  • tests/test_global_ask_cutoff_contract.py
  • tests/test_global_ask_cutoff_postgres.py
  • tests/test_global_ask_external_verification.py
  • tests/test_global_ask_external_verification_contracts.py
  • tests/test_global_ask_sources.py
  • tests/test_http_client.py
  • tests/test_image_content.py
  • tests/test_import_postgresql_posts.py
  • tests/test_ingestion_transaction_contracts.py
  • tests/test_keycloak_audience_reconciler.py
  • tests/test_mcp_auth.py
  • tests/test_mcp_browser_admission_contract.py
  • tests/test_mcp_citation_boundary.py
  • tests/test_mcp_config_admission.py
  • tests/test_mcp_cors_preflight.py
  • tests/test_mcp_external_opt_in.py
  • tests/test_mcp_external_optin.py
  • tests/test_mcp_global_ask.py
  • tests/test_mcp_global_ask_media.py
  • tests/test_mcp_jwks_shape.py
  • tests/test_mcp_rate_limit.py
  • tests/test_mcp_request_admission.py
  • tests/test_mcp_server.py
  • tests/test_migration_identity.py
  • tests/test_migration_replay.py
  • tests/test_ontology.py
  • tests/test_ontology_interoperability.py
  • tests/test_organization_name_resolution_ingestion.py
  • tests/test_period_report.py
  • tests/test_person_mention_projection.py
  • tests/test_post_chat.py
  • tests/test_post_chat_citation_type.py
  • tests/test_post_chat_conduct_contract.py
  • tests/test_post_chat_ingestion.py
  • tests/test_post_chat_ingestion_bounds.py
  • tests/test_post_content_normalization.py
  • tests/test_post_content_persistence_edges.py
  • tests/test_post_content_worker.py
  • tests/test_post_summary.py
  • tests/test_project_history.py
  • tests/test_project_history_api_contract.py
  • tests/test_rankweave_client.py
  • tests/test_reconstruct.py
  • tests/test_related_node_affiliation_ambiguity.py
  • tests/test_relation_verification.py
  • tests/test_schema.py
  • tests/test_source_artifacts.py
  • tests/test_stale_summary_continuity.py
  • tests/test_static_sql_review_contracts.py
  • tests/test_strict_http_metadata.py
  • tests/test_tepp_client.py
  • tests/test_tepp_project_history_recovery.py
  • tests/test_topic_lineage_artifact.py
  • update_app.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

Copy link
Copy Markdown
Contributor Author

Queue 2026-08-19T03:01 KST. Exact head 59b1c454 still has no independent current-head APPROVE. Do not self-approve. Do not merge until an independent reviewer approves this exact SHA and required checks succeed on that same head. Checks are queued; queued or predecessor-head gates are non-passing.

github-advanced-security[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Queue 2026-08-19T03:12 KST. Writes work this cycle (push + PR).

Buyer increment Weekly VOC is stacked here as feat/board-weekly-voc-filter-v2120 @ 72c66a3 (v2.12.0 / ADR 0051). After seed, Board → Weekly VOC keeps Public post (2026-W01) and names Event Lineage. Not mixed into #74 or #92. #96 already closed.

This PR (#258) still needs independent current-head APPROVE on 59b1c454. I will not self-approve. Do not wait on Checks from this comment.

github-code-quality[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

@github-advanced-security github-advanced-security AI 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.

Semgrep OSS found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-19T13:02 KST: retrying independent review request and write path. Exact-head APPROVE still required; no self-approve.

Copy link
Copy Markdown
Contributor Author

Continuing the buyer increment on top of this branch: Weekly VOC as an ISO-8601 week list filter on Board, and opening a Weekly VOC post focuses Event Lineage (v2.13.0). Independent exact-head APPROVE still required before squash-merge. Do not self-approve. Issues #79 and #87 stay open.

Copy link
Copy Markdown
Contributor Author

Buyer increment stacked as #260 (ce4663c, v2.13.0) on this exact head 2b1e096. Weekly VOC is an ISO-8601 week list filter; opening that filtered post focuses Event Lineage. Independent exact-head APPROVE still required on this PR and on #260. Do not self-approve. Update-branch remains 422 dirty versus main after #74; not force-merged.

github-code-quality[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

github-code-quality[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-19T16:16 KST write-retry: main is now 690f352 after #74 squash-merged. This PR is DIRTY against that head. Independent exact-head APPROVE still required. Do not self-approve. Issues #79 and #87 stay open.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-19T16:31 KST. Writes still work (push + PR #263). Buyer GNB Event Lineage focus is now stacked through Ask Agent (v2.16.0 / ADR 0074) on #262. This PR remains DIRTY against main 690f3528 after #74. Independent exact-head APPROVE still required. Do not self-approve. Issues #79 and #87 stay open.

github-code-quality[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-20T07:03 KST: GitHub writes recovered (MCP REST/comment/push dry-run succeed). Exact head e6f51f1 still lacks independent non-author APPROVE. Do not self-approve. Do not squash-merge. Issues #79 and #87 stay open. #96 already closed as weaker duplicate of merged #91. #74 merged. Stack remains #258#260#261#262#263#264 → draft #265. Independent exact-head review required before merge.

Copy link
Copy Markdown
Contributor Author

@opencode-agent Current protected main has advanced to 690f352 and now contains merged #74. PR #258 is currently non-mergeable on stale base 8c020aa. Repair this existing PR branch only: refetch live main, identify #74 commits/content already upstream, then rebase or otherwise reconstruct #258 so the PR contains only #258's Buyer evidence board / source-grounded ontology / Global Ask / runtime hardening delta not already present on main. Do not duplicate or revert merged #74 behavior, migrations, ADRs, or version history. Preserve every resolved review fix on the current #258 head, especially embedding-client Protocol/static-analysis cleanup. Resolve conflicts semantically, not by choosing ours/theirs wholesale. Re-run exact-current-head Python/frontend/Storybook/security/coverage/PROV-O checks applicable to the resulting diff. Do not touch #260-#265, do not merge, and do not force-push unless required by a true rebase/reconstruction; if history rewrite is necessary, verify the resulting tree against both old #258 head and live main before pushing.

…ineage-v2140' into HEAD

# Conflicts:
#	AGENTS.md
#	ARCHITECTURE.md
#	CHANGELOG.md
#	CLAUDE.md
#	docs/adr/0094-internal-relation-evidence.md
#	docs/adr/0095-internal-relation-evidence.md
#	docs/adr/0101-internal-relation-evidence.md
#	frontend/package.json
#	frontend/src/App.tsx
#	frontend/src/i18n.test.ts
#	frontend/src/i18n.ts
#	pyproject.toml
#	uv.lock
…-lineage-v2130' into HEAD

# Conflicts:
#	ARCHITECTURE.md
#	CHANGELOG.d/external-lineage-contract.md
#	CHANGELOG.md
#	docs/doctoring/EXTERNAL_LINEAGE_CONTRACT_TRACEABILITY.md
#	frontend/src/App.test.tsx
#	frontend/src/App.tsx
#	lineageweave/__init__.py
#	lineageweave/chunking.py
#	tests/test_chunking.py
#	tests/test_external_lineage_analysis.py
#	tests/test_external_lineage_contract.py
#	tests/test_reconstruct.py
#	tests/test_relation_verification.py
Comment thread lineageweave/project_history.py Fixed
Comment thread backend/app/main.py Fixed
@github-actions
github-actions Bot disabled auto-merge August 23, 2026 11:23
seonghobae and others added 9 commits August 23, 2026 05:19
* feat: show project history lineage counts

* docs: record project history delivery evidence

* fix: label bounded project history counts
* test(red): require exact-origin MCP browser preflight

* test(red): bound MCP request bytes before parsing

* fix(mcp): bound request bytes before SDK parsing

* feat(mcp): configure a bounded request admission limit

* fix(mcp): admit exact-origin bounded browser requests

* fix(mcp): compare raw admission headers safely

* test(mcp): validate request-byte configuration

* test(mcp): cover every request admission branch

* test(mcp): require origin-aware browser responses

* fix(mcp): vary transport rejections by Origin

* docs: record MCP browser admission architecture

* docs: expose MCP browser admission settings

* ops: pass the MCP request-byte limit to the resource server

* docs: specify exact MCP browser and byte admission

* docs: trace MCP browser admission to transport standards

* docs: record MCP browser admission hardening

* test(mcp): bind deployment and documentation admission contracts

* test(mcp): expose OAuth metadata to browser clients

* fix(mcp): expose the OAuth challenge to browser clients

* test(mcp): reject unsafe configured browser origins

* fix(mcp): validate exact browser origin configuration

* docs: record browser-readable OAuth discovery

* docs: include browser OAuth discovery in admission ADR

* docs: expose browser OAuth discovery and exact origin startup rules

* test(mcp): bind browser OAuth discovery documentation

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* docs(adr): define TEPP topic history boundary

* feat(analysis-run): add topic-lineage kind mirroring TEPP's fail-closed path

Implements the runtime scaffolding for ADR 0132: a new
analysis_run_topic_lineage kind (migration 0131) and result envelope
table (migration 0132) that request TEPP's TRSL-TM topic identity and
CHRONOS/TDT event-intelligence status through the same tepp_client
boundary as the existing TEPP measurement kind (ADR 0022), reusing
TEPP's generic AnalysisRunRequest wire shape with a different
model_contract_version/output_profile instead of inventing a new type.

- backend/app/analysis_run_start.py: topic_lineage_run_request,
  _deliver_topic_lineage_measurement, _persist_topic_lineage_result,
  start_kind_rejection and the outbox dispatch branch now handle the
  new kind, failing closed (tepp_not_available /
  tepp_result_not_persisted) exactly like TEPP.
- backend/app/analysis_run_ingestion.py: POST /api/analysis-runs still
  422s this kind (Create cannot invent a Pending topic-lineage row,
  same as TEPP).
- scripts/seed_demo_data.py: make seed now also writes a Demo Corp
  topic-lineage run; verified end-to-end against the live dev Postgres
  (Pending -> Running -> Failed/tepp_not_available).
- frontend/src/api.ts, App.tsx: AnalysisRunKindCode gains the new
  variant; every exhaustive switch (TypeScript `never` checks) and the
  start/retry UI copy is updated per kind.
- Tests: mirrors the existing TEPP coverage in
  test_analysis_run_start.py, test_analysis_run_create.py, and
  test_migration_replay.py.

Full backend suite: 852 passed, 17 skipped. Frontend: 200 passed,
lint clean, build clean. Migrations verified idempotent on re-apply
against the local Compose Postgres.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mk2aU7vk6Pn4pTnzcKT3Ws

* feat(project-history): consume TEPP topic lineage

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: critical

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants