Buyer problem
The Buyer-surface stack now preserves analysis-run knowledge_cutoff, per-post live_after_cutoff, and cutoff body evidence when a buyer opens a recorded run. Global Ask still assembles only the current live source_post state and exposes no first-class as-of scope.
A buyer asking “What did we know by 2026-01-15?” can therefore receive a current answer without a machine-verifiable statement that the cited body and semantic facts existed by that cutoff. Adding a date only to the prompt would be misleading; the retrieval boundary itself must be cutoff-aware.
Product contract
Add an optional, explicit Global Ask scope:
{
"question": "What did we know about Phoenix by the cutoff?",
"knowledge_cutoff": "2026-01-15T12:00:00Z"
}
Retrieval
- Select only source records whose evidence was available at or before the cutoff.
- Resolve each selected post to the latest eligible
source_post_revision/snapshot at or before the cutoff.
- Resolve persisted project, role/responsibility/affiliation, Keyman, graph, and content-artifact evidence against their own recorded/effective time contracts; do not join current facts into a historical answer.
- If a source existed but no historical body was retained, return an explicit
historical_body_unavailable limitation rather than substituting the live body silently.
- Keep all current visibility, tenant, ABAC, source-count, graph-fact, body-length, and MCP rate-limit bounds.
Response provenance
Each citation must expose enough structured metadata to distinguish:
- source identity;
- source revision/snapshot identity;
- evidence available time;
- requested knowledge cutoff;
- whether the live source has changed after the cutoff;
- any unavailable historical channel.
The synthesized answer must state whether it is fully cutoff-grounded, partially cutoff-grounded, or live-only. It must never call a live-only answer an as-of answer.
Browser and MCP parity
- Browser Global Ask and authenticated MCP use the same cutoff-aware source assembler.
- The MCP input schema and output schema version the new field explicitly.
- Omitting
knowledge_cutoff preserves the current live-query contract.
RED→GREEN acceptance tests
- A post revised after cutoff contributes its retained cutoff body, not its live body.
- A post created after cutoff is excluded even when its current text matches strongly.
- Current semantic facts created after cutoff do not leak into a historical answer.
- Missing historical body returns an explicit limitation and never falls back silently.
- Two cutoffs against the same source produce deterministic, revision-specific citations.
- Unauthorized historical revisions remain unauthorized.
- Browser and MCP produce the same source IDs, revision IDs, cutoff, and limitation flags.
- Live queries without a cutoff remain backward compatible.
- Tests distinguish event/effective time from system/available time and prevent future-information leakage.
Scope boundary
Do not combine this with the semantic candidate retrieval patch (#268), MCP admission/CORS hardening (#269), conversation persistence, TEPP estimation, or arbitrary temporal inference. This slice is source selection, revision resolution, provenance, and honest limitation reporting only.
Buyer completion signal
A buyer can ask a dated question and audit exactly which retained evidence existed by that date, while the product explicitly refuses to fabricate a historical view from current data.
Buyer problem
The Buyer-surface stack now preserves analysis-run
knowledge_cutoff, per-postlive_after_cutoff, and cutoff body evidence when a buyer opens a recorded run. Global Ask still assembles only the current livesource_poststate and exposes no first-class as-of scope.A buyer asking “What did we know by 2026-01-15?” can therefore receive a current answer without a machine-verifiable statement that the cited body and semantic facts existed by that cutoff. Adding a date only to the prompt would be misleading; the retrieval boundary itself must be cutoff-aware.
Product contract
Add an optional, explicit Global Ask scope:
{ "question": "What did we know about Phoenix by the cutoff?", "knowledge_cutoff": "2026-01-15T12:00:00Z" }Retrieval
source_post_revision/snapshot at or before the cutoff.historical_body_unavailablelimitation rather than substituting the live body silently.Response provenance
Each citation must expose enough structured metadata to distinguish:
The synthesized answer must state whether it is fully cutoff-grounded, partially cutoff-grounded, or live-only. It must never call a live-only answer an as-of answer.
Browser and MCP parity
knowledge_cutoffpreserves the current live-query contract.RED→GREEN acceptance tests
Scope boundary
Do not combine this with the semantic candidate retrieval patch (#268), MCP admission/CORS hardening (#269), conversation persistence, TEPP estimation, or arbitrary temporal inference. This slice is source selection, revision resolution, provenance, and honest limitation reporting only.
Buyer completion signal
A buyer can ask a dated question and audit exactly which retained evidence existed by that date, while the product explicitly refuses to fabricate a historical view from current data.