Skip to content

I1305 — An observed contract has a fingerprint, a compatibility state and a fixture

Record what the browser observed as a versioned contract: a fingerprint of the shape, a compatibility state, and a sanitised fixture that CI replays — so that a private surface changing is a diagnosable event rather than a silent wrong answer.

BLOCKED wave 3 · p1 · deep-work profile · parallel safe

Part of external-workspaces — An external workspace is read the way this repository reads anything else, and its content never becomes public by accident.

Blocked. This issue cannot start until I1304 is done. The status is derived from that, not declared.

Objective

Record what the browser observed as a versioned contract: a fingerprint of the shape, a compatibility state, and a sanitised fixture that CI replays — so that a private surface changing is a diagnosable event rather than a silent wrong answer.

Why

A vendor's undocumented surface is not a contract and will change. The failure this must prevent is not the loud one; it is a parse that half succeeds and writes plausible nonsense into the store.

Current state

Nothing exists.

Desired state

Each observed operation carries a schema fingerprint and a state — compatible, degraded, incompatible. A shape that no longer matches marks the contract degraded, refuses to persist a partial parse, falls back to the browser transport, and captures a new sanitised observation for a person to review. No observation ever promotes itself to a production contract.

Scope

  • scripts/lib
  • test/cases
  • docs

Out of scope

  • Hardcoding any endpoint path taken from a prompt, a gist or documentation rather than from observed authorised traffic
  • Automatic promotion of a new observed shape

Dependencies

What waits on this

Acceptance criteria

  • Every observed operation has a fingerprint over its shape and a compatibility state
  • A mismatched shape fails closed; nothing partial is persisted
  • A degraded contract falls back to the browser transport where one exists, and reports unavailability where none does
  • Fixtures are sanitised at capture time and CI replays them with no network and no account
  • Promoting a new contract requires a person and a passing test, and the mechanism cannot do it alone

Validation

  • bash test/run.sh

Evidence required

  • fingerprinted
  • fails_closed
  • fallback_proven
  • fixtures_sanitised
  • promotion_manual

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

A fixture is a recording of private conversation. Sanitisation that runs after capture is sanitisation that has already failed; it runs before anything reaches disk.

Timeline

started
verified
completed

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I1305.yaml. Read it back with majordomus plan show I1305.