Skip to content

Goalpost: v19 Runtime, Lane, and Observation public API #712

Description

@flyingrobots

Goal

Implement the accepted v19 public programming model:

Write intents. Observe lanes. Keep receipts.

The normative design is docs/topics/api/README.md.

Why This Goalpost Reopened

The original closure evidence correctly proved the first v19 Timeline/Reading facade at commit 059dbf478d1f42b810f3c43ee486e20af36eaf3b. That facade has since been superseded by the accepted Runtime/Lane/Observer/Observation vocabulary checkpoint.

The old evidence remains valid historical evidence. It is not evidence that the revised release contract is implemented.

Canonical Surface

Root runtime values:

Runtime

Core grammar:

An Observer runs against a Lane, producing an Observation
that emits Readings and leaves a Receipt.

Operation outcomes:

derived
plural
conflict
obstruction

Epistemic support remains a separate algebra.

Supported expert surfaces:

@git-stunts/git-warp/charts
@git-stunts/git-warp/diagnostics
@git-stunts/git-warp/advanced
@git-stunts/git-warp/testing

There is no public /graph, /browser, or /legacy surface.

Acceptance

  • Root runtime values contain exactly Runtime.
  • Runtime.open() owns production composition; close() releases local resources only.
  • Lane replaces Timeline; worldline and strand kinds are mutually exclusive runtime truths.
  • Wesley-generated *.intents and *.observers return validated domain objects.
  • Lane.observe(observer) synchronously constructs one dormant Observation.
  • Iterator demand, convenience consumption, and awaiting receipt share exactly one execution.
  • Receipt-only consumption drains with backpressure and does not materialize Reading streams.
  • Reading.value is canonical across TypeScript, CLI JSON, MCP, fixtures, and envelopes.
  • Operational outcomes and epistemic support cannot alias.
  • previewSettlement() returns inspectable presentation containing an immutable SettlementPlan.
  • settle() accepts only a validated plan and revalidates current frontiers.
  • Graph-shaped derived views ship only through /charts.
  • CLI and MCP surfaces use the same vocabulary and Receipt renderer.
  • Vocabulary conformance tests reject legacy nouns outside migration, substrate, and formal exceptions.
  • README, migration docs, generated reference, CLI help, MCP descriptions, and consumer fixtures agree with runtime behavior.

Non-Goals

This goalpost does not promise WARP DRIVE, WARP-TTD, offline bundles, common-basis braid validation, or a legacy graph compatibility package. Those surfaces remain unadvertised until separately implemented and evidenced.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:apiPrimary work area: api.priority:nextNext in line after active work.status:activeSomeone is actively working this issue.type:goalpostRoadmap umbrella milestone issue.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions