Skip to content

feat: validate project history through TEPP temporal contract (v2.20.0) - #281

Closed
seonghobae wants to merge 70 commits into
feat/global-ask-public-claim-verification-v2200from
feat/tepp-project-history-buyer-surface-v2180
Closed

feat: validate project history through TEPP temporal contract (v2.20.0)#281
seonghobae wants to merge 70 commits into
feat/global-ask-public-claim-verification-v2200from
feat/tepp-project-history-buyer-surface-v2180

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Refs #279

Purpose after project-history convergence

This PR is the optional LineageWeave ↔ TEPP temporal validation/enrichment adapter for the normalized project-history authority in #283. It is not a second project-event classifier, persistence model, authorization gate, or Buyer timeline authority.

The canonical project identity, event facts, event relations, responsibility intervals, evidence references, visibility result, truncation state, and handover gaps come from #283. This adapter may send only that already-authorized, bounded contract to TEPP and may return coded temporal validation/association metadata without replacing the source facts.

Required contract

Authority boundary

  • PostgreSQL and feat: add normalized evidence-bound project history authority (v2.18.0) #283 remain authoritative for facts and authorization.
  • TEPP validates temporal consistency and may return temporal_association_only or another controlled non-causal code.
  • TEPP cannot create a missing event, actor, responsibility interval, project identity, evidence link, confidence, theta, or causal conclusion.
  • Event Lineage remains related-history evidence, not causation.
  • Contextual Orchestrator remains the prose-answer engine and does not become the numerical or temporal authority.

Stack

#258 → #260 → #261 → #262 → #263 → #264 → #283 → this PR

The branch must be rebuilt or restacked on the exact final #283 head. Any existing independent timeline, project aggregation, event classifier, or responsibility-gap implementation in this branch must be removed in favor of the shared #283 contract.

RED→GREEN and Draft exit

  • tests first prove strict request construction from a feat: add normalized evidence-bound project history authority (v2.18.0) #283 payload and reject unauthorized/unpublished fields;
  • response parsing proves deterministic ordering, schema/version checking, temporal-only semantics, and fail-closed unavailability;
  • integration tests prove hidden evidence cannot affect the TEPP request or returned Buyer metadata;
  • complete Python/PostgreSQL/frontend checks, security, SAST, ontology/provenance, coverage, supply-chain, and documentation gates pass on the exact current head;
  • repair-only workflows and payloads are absent;
  • all valid review threads are resolved and a qualifying independent exact-head approval exists.

Do not self-approve, force-merge, or treat queued/pending/absent checks as success.

seonghobae and others added 30 commits August 19, 2026 15:26
@seonghobae
seonghobae force-pushed the feat/event-lineage-node-keeps-gnb-focus-v2170 branch from 4d6494d to e85b0d2 Compare August 20, 2026 02:21
@seonghobae
seonghobae force-pushed the feat/event-lineage-node-keeps-gnb-focus-v2170 branch from e85b0d2 to 7bd992d Compare August 20, 2026 02:29
Cascade-merges the current #264 tip into this branch, which was still
on much older ADR/prop naming (this branch forked before the
0070-0075 -> 0092-0097 ADR renumbering and before the
focusAskAfterRelated -> landOnAsk/focusAskOnLand rename landed
upstream). Conflicts were the routine kind: doc prose taking origin's
already-correct ADR numbers, and re-applying the established
landOnAsk/focusAskOnLand naming over this branch's stale
focusAskAfterRelated. isoWeek.ts/isoWeek.test.ts add/add conflict
resolved by taking origin's version (validates the Gregorian calendar
date before parsing).

Also fixes a real bug found while resolving: this branch's own new
docs/adr/0072-0075-*.md files were byte-identical duplicates of the
already-renumbered 0094-0097 ADRs (content differed only in
cross-reference numbers) -- deleted the four stale duplicates.

Two pre-existing failures were investigated and left alone (confirmed
via git stash against this branch's own pristine tip, not introduced
by this merge): a "test(red)" frontend HTTP contract test for
TeppProjectHistory and a "test(red)" PostgreSQL authorization test
referencing a not-yet-migrated source_company_name column. Both are
this branch's own in-progress TDD red state, not something to
implement here.

142 frontend tests pass (excluding the known-red TeppProjectHistory
suite), 564 python tests pass excluding the two known-red project-
history tests, tsc -b passes for everything except the pending
TeppProjectHistory component.
@seonghobae
seonghobae force-pushed the feat/event-lineage-node-keeps-gnb-focus-v2170 branch from 7bd992d to e829ac9 Compare August 20, 2026 02:37
@seonghobae
seonghobae force-pushed the feat/event-lineage-node-keeps-gnb-focus-v2170 branch from e829ac9 to 4a5e18c Compare August 20, 2026 02:45
@seonghobae
seonghobae force-pushed the feat/event-lineage-node-keeps-gnb-focus-v2170 branch from 4a5e18c to eb06d6d Compare August 20, 2026 02:50
seonghobae and others added 7 commits August 20, 2026 14:45
Also finishes the mid-TDD project-history buyer surface: wires
ProjectHistoryDisclosure (green for its red test), removes the
orphaned TeppProjectHistory component that referenced api.ts exports
that never existed, mounts project_history_api's router into the
FastAPI app (it was fully built but never included), fixes ambiguous
ProjectHistoryTimeline test queries, renumbers the duplicate 0046
migration to 0053, and fills gaps in two hand-maintained migration
allowlists (backend/tests/test_api.py, docker/postgres-init/migrate.sh,
tests/test_project_history_postgres.py).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Cosmetic conflict only: both branches independently added the same
_IMAGE_REGION_EMBEDDING_MIGRATION constant to backend/tests/test_api.py
after the earlier restack; kept the single-line form used elsewhere
in the file.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
…thub.com/ContextualWisdomLab/LineageWeave into HEAD

# Conflicts:
#	AGENTS.md
#	ARCHITECTURE.md
#	CHANGELOG.md
#	CLAUDE.md
#	frontend/package.json
#	frontend/src/App.test.tsx
#	frontend/src/App.tsx
#	pyproject.toml
#	uv.lock
@seonghobae
seonghobae changed the base branch from feat/event-lineage-node-keeps-gnb-focus-v2170 to feat/gnb-event-lineage-focus-keyman-v2190 August 20, 2026 06:24
seonghobae added a commit that referenced this pull request Aug 20, 2026
uv.lock regenerated via `uv lock` rather than hand-merged (a
generated file, not meaningful to diff line-by-line). Fixes the same
stale "embedded image at character offset" alt-text assertion in
App.test.tsx already corrected in PostBody.tsx upstream -- same fix
already applied on #258/#281, hadn't reached this branch yet.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@seonghobae
seonghobae changed the base branch from feat/gnb-event-lineage-focus-keyman-v2190 to feat/global-ask-public-claim-verification-v2200 August 20, 2026 06:58

Copy link
Copy Markdown
Contributor Author

Superseded by the separated project-history stack. This branch is no longer the bounded #264 → project history slice described in its body: its recorded base is #276's Global Ask public-verification branch and the diff carries SearXNG claim verification, GNB Keyman focus, durable ingestion, organization-resolution, and other unrelated parent changes alongside project history. PR #285 now owns the LineageWeave-native exact-project history/read model and shared Buyer timeline; PR #282 owns the separate TEPP read/Global Ask/post Ask augmentation. Keeping #281 would duplicate both responsibilities and merge an incorrect composite base. Closing without merge; no one-shot workflow or predecessor evidence transfers.

@seonghobae seonghobae closed this Aug 20, 2026
@seonghobae seonghobae changed the title feat: show evidence-bound project history timeline (v2.18.0) feat: validate project history through TEPP temporal contract (v2.20.0) Aug 20, 2026
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