Skip to content

Preserve execution cost when a completed render produces unchanged output #175

Description

@irl-dan

Observed need

During a manually interpreted observatory run, meaningful investigation and review sometimes concluded that the previously published account should remain unchanged. A no-change outcome still involved actual agent work. This prompted a review of how OpenProse receipts distinguish work avoided from work completed without a material output change.

This issue reports a specification inconsistency at fc2810e, not a reproduced bug in a deployed harness. Our application kept explicit no-change outcomes rather than using the mounted-runtime receipt protocol.

Conflicting instructions

A changed input can legitimately trigger an expensive render whose material output remains identical. Following the filesystem instruction literally would erase that render's recorded cost and conflate it with a cache hit.

Minimal scenario

  1. Existing output has fingerprint O1; previous input tuple is I1.
  2. An input moves to I2, so a render is launched.
  3. The host records nonzero model usage during that render.
  4. The candidate's material fingerprint is still O1.
  5. No downstream wake is appropriate, but reporting zero render usage is incorrect.

Requested clarification

Distinguish a pre-execution memo skip from an executed-but-unchanged result. Preserve observed usage and execution provenance after work has run; represent unavailable usage as unknown rather than zero. Retain the unchanged published version and avoid downstream propagation. Record the satisfied I2 tuple so the next identical wake can genuinely skip.

Choose whether this uses an existing status with an explicit reason/executed distinction or another representation; no new status or syntax is prescribed here. Keep publication/change detection independent of whether work happened.

Boundary and retestable acceptance

Align VM, filesystem and reconciler semantics; harness implementations remain outside this repository. Add a fixture with a fake renderer/canonicalizer and a nonzero usage report:

  • unchanged input: renderer not called;
  • changed input, same output: renderer called, usage retained, published version unchanged, no downstream wake;
  • next wake with the same new input: renderer not called again;
  • changed output: ordinary commit and propagation;
  • unknown usage: not fabricated as zero.

A deterministic fixture would test accounting and propagation, not the quality of agent judgment. No hosted billing or pricing semantics are requested.

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

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions