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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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