Skip to content

Make receipts observer-readable or replace them with observer-readable truth #554

Description

@flyingrobots

Migrated from Method backlog

GitHub Issues are now the live work tracker. Repository docs remain Method evidence.

Field Value
Source backlog docs/method/backlog/v19.0.0/API_observer-readable-receipts.md
Archived source docs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/v19.0.0/API_observer-readable-receipts.md
Original lane v19.0.0
Original id API_observer-readable-receipts
Original legend API
Original feature observer-admission-runtime
Original blocked_by PROTO_controller-capability-interfaces, PROTO_observer-plan-reading-envelopes

Original backlog card

Make receipts observer-readable or replace them with observer-readable truth

Current shape

  • observer(...) is the read aperture over graph state
  • receipts only come back from materialize({ receipts: true })
  • consumers that want read-time truth about indexed commits, admission
    outcomes, or tick-local causal context are pushed toward
    materialization-side APIs even when they are not trying to materialize
    state as the product operation

Why this is debt

  • it violates the observer-first doctrine by making some important read
    nouns available only through the materialization pipeline
  • it leaks reducer/materialization machinery into consumer query
    planning
  • it encourages external tools to mine receipts as metadata oracles
    instead of depending on stable observer-visible read facts

Desired end state

  • either expose receipts through a real observer/worldline read surface
    that can be queried without calling materialize({ receipts: true })
  • or expose the needed truths as observer-readable graph facts so
    consumers never need raw receipts for ordinary routing decisions
  • keep receipts/debug envelopes honest as operational explanation, not
    the only way to inspect certain substrate truths

Non-goals

  • do not promise every reducer-internal detail as a public graph fact
  • do not force every debugger payload into the main graph if a parallel
    observer/read-handle surface is cleaner

Related

  • docs/method/backlog/v19.0.0/PROTO_WESLEY_receipt-envelope-boundary.md
  • docs/method/backlog/up-next/PROTO_controller-capability-interfaces.md
  • docs/archive/backlog/v17.0.0-residual-backlog/GOD_materialize-controller.md
  • docs/archive/backlog/v17.0.0-residual-backlog/GOD_query-controller.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:runtimePrimary work area: runtime.blockedBlocked by explicit Method dependency metadata.feature:observer-admission-runtimeMethod feature observer-admission-runtime.lane:releaseMethod source lane release.lane:v19.0.0Method source lane v19.0.0.legend:apiMethod legend api.priority:laterDeferred or speculative work.status:blockedBlocked by an explicit dependency or external condition.type:enhancementMethod issue type enhancement.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions