Skip to content

The observation basis is pinned to content but not to path #29

Description

@flyingrobots

Observed

PR #27's anti-constant guard varies the bytes on a fixed path:

complete_success_case stale-basis-actual 81 'changed after request' stale.txt 65536
complete_success_case stale-basis-other  82 'a wholly different content' stale.txt 65536
test "$stale_other_basis" != "$stale_actual_basis"

bounded_workspace_observation_basis_v1 takes (path, bytes) pairs. Nothing in the observation witness varies the path while holding the bytes constant. A regression that dropped the path from the derivation — hashing only content — would leave the entire suite green.

Why it matters

The witness claims the basis describes what was read. "What was read" is a (path, bytes) pair, not a byte string. Half the input is unpinned.

The patch witness is not obviously better here, so this may be a shared gap rather than an observation-specific one; that is worth checking before fixing only one side.

Scope note

This was identified while writing #27 and deliberately not added there. The PR's claim was already scoped to "varies with the observed bytes on a fixed path", so there was no gap between claim and evidence to repair — only a strengthening available. Filing it as the strengthening it is.

Acceptance

  • A successful observation of identical bytes at a different path derives a different basis.
  • The same check exists for the patch witness, or an explicit note records why it does not apply there.

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

    bad-codeObserved defect, smell, or invariant violationroadmap-a1Roadmap A.1: bounded Hello external effects

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions