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.

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