feat: add normalized evidence-bound project history authority (v2.18.0) - #283
feat: add normalized evidence-bound project history authority (v2.18.0)#283seonghobae wants to merge 88 commits into
Conversation
Weekly VOC keeps Voice of Customer posts for the latest ISO-8601 week. Opening that filtered post focuses Event Lineage. Home-list opens do not.
Calendar names authorized commitments as current. Opening one focuses Event Lineage. Home-list opens do not.
Customer master names authorized customer entities as current and to open a related post to read Event Lineage. That open focuses the popup Event Lineage heading and names Keyman and evaluation next. Home-list opens do not. No TEPP theta or customer is invented.
Ask Agent names authorized cited posts as current after an answer and to open one to read Event Lineage. That open focuses the popup Event Lineage heading and names Keyman and evaluation next. Home-list opens do not. No TEPP theta or cited post is invented.
Opening a linked Event Lineage node from a GNB-focused popup keeps Event Lineage focused and names Keyman and evaluation next. A home-list DAG walk does not. No TEPP theta or cited post is invented.
Opening a linked Event Lineage node from a GNB-focused popup keeps Event Lineage focused and names Keyman and evaluation next. A home-list DAG walk does not. No TEPP theta or cited post is invented.
e85b0d2 to
7bd992d
Compare
Weekly VOC keeps Voice of Customer posts for the latest ISO-8601 week. Opening that filtered post focuses Event Lineage. Home-list opens do not.
Calendar names authorized commitments as current. Opening one focuses Event Lineage. Home-list opens do not.
Opening a post from Weekly VOC or Calendar (ADR 0093/0094) focuses the Event Lineage heading and merely names Keyman/evaluation as the next read. But KeymanPanel's landFirstRelated effect unconditionally auto-drilled into the first related node and, once that async chain resolved, yanked focus to the Ask panel -- even though no one asked for the Ask hand-off in that flow. That silent focus jump is exactly the behavior the report-member flow (ADR 0078) does want, so the fix threads a focusAskOnLand flag through PostDetailPopup -> KeymanPanel and only lets the drill claim focus for the report-member open. Confirmed pre-existing on this branch's own pristine tip (reproduced before merging anything else in), not introduced by any local change.
Customer master names authorized customer entities as current and to open a related post to read Event Lineage. That open focuses the popup Event Lineage heading and names Keyman and evaluation next. Home-list opens do not. No TEPP theta or customer is invented.
Ask Agent names authorized cited posts as current after an answer and to open one to read Event Lineage. That open focuses the popup Event Lineage heading and names Keyman and evaluation next. Home-list opens do not. No TEPP theta or cited post is invented.
Opening a linked Event Lineage node from a GNB-focused popup keeps Event Lineage focused and names Keyman and evaluation next. A home-list DAG walk does not. No TEPP theta or cited post is invented.
7bd992d to
e829ac9
Compare
4a5e18c to
eb06d6d
Compare
Responsive design evidenceThe editable Figma specification now covers the implementation states required by this PR:
These nodes are design evidence only. They do not replace the Storybook/browser implementation comparison or exact-head frontend verification gate. |
|
Superseded by draft #285, which now owns the ordinary test-first implementation for the shared #278/#279/#280 Buyer capability. This branch never published a verified product source commit: its one-shot repair stopped at an anchor drift and retained bootstrap payload/workflow files on an obsolete #264 parent. No check, review, or implementation evidence from this head transfers to #285. Closing without merge; the normalized authority, ABAC, temporal/provenance, Figma, Storybook, and evidence-gap requirements remain active on #285 and external-source writer/reconciliation remains #284. |
|
Exact-head repair checkpoint: current HEAD is |
Fixes #280
Buyer outcome
Adds the normalized, evidence-gated project lifecycle authority and reusable timeline required to inspect one project from order/award through specification change, delivery, VOC, and rebid. Missing events, relations, assignments, dates, and gaps remain absent rather than being inferred for visual completeness.
Editable Figma contract
File
SBpgot7uTvMxEaxUwvoc0S:308:2;309:2;309:50;310:2.The reusable component may be embedded in the established post detail and consumed by a dedicated Project history destination, but those surfaces must share this same authority and must not maintain independent lifecycle truth.
Normalized authority
PostgreSQL remains the source of truth. The slice defines:
project_history_project— canonical project identity and display name;project_history_event— event facts and their evidence post;project_event_relation— explicit event relation and its evidence;project_responsibility_assignment— observed person/role validity interval and evidence.Every published event, relation, and assignment is evidence-backed. The API re-applies
post_read, public-or-affiliated-corporate ABAC, and the shared source-post eligibility predicate. If an endpoint event becomes invisible, its relations disappear. Handover gaps are calculated only from the visible assignment union.Temporal and semantic boundary
follows,related_to, andrevisesremain explicit stored relations and are not labelled causal.Buyer component
ProjectHistoryTimelineprovides:Test-first publication gate
The branch must preserve RED→GREEN evidence and verify:
Stack and convergence boundary
This remains a Draft child of
#258 → #260 → #261 → #262 → #263 → #264. It must be restacked after every parent movement and cannot reuse predecessor checks or approvals.Project-history PRs #281, #282, and #285 must not create parallel authorities. TEPP may validate or enrich explicit temporal evidence after its own prerequisite stack lands; a dedicated GNB destination may consume this API/component. Neither may bypass this normalized evidence and authorization boundary.
Authoritative external-source ingestion and idempotent reconciliation remain the separate follow-up #284. Event Lineage channel-score persistence #274, MCP Global Ask, TEPP measurement, and fast-mlsirm estimation remain out of scope.
Do not self-approve, force-merge, or treat queued/pending/absent checks as success.