Skip to content

Phase 0: establish final admission contracts #51

Description

@johnnygreco

Objective

Establish the final harness-admission names/contracts, remove superseded receipt and Pi-specific compatibility paths, pin the actual fork contract, and add real multi-turn provider fixtures before broader hooks are added.

Context

  • Tracker: GitHub goal delivery: close Pi attested-admission gaps #50
  • The current system admits user messages and tool results, then re-admits the newest entry at send time. This phase is naming/contract hygiene only; later phases add origins and whole-context binding.
  • Initial heads: Research c7b757d, Pi 61500e60, OpenShell 8332c459.

Scope

  • In scope, Research: rename hooks to user_message/tool_result; --require-agent-attestation; registry-based binding resolution; openshell.pi-message.v1 with required origin=user; PiMessageV1Adapter; remove ReceiptClaimsV1, one-use receipt APIs/state, extension-v1, and obsolete receipt reason names; correct middleware manifest proto source/hash/note; add multi-turn Chat Completions, Responses, and Qwen fixtures and strict-schema decisions; mark the managed-harness ledger plan superseded.
  • In scope, OpenShell: remove LEGACY_PI_BRIDGE_URL_ENV and provider-env insertion.
  • In scope, workspace: archive the uncommitted /home/ubuntu/workspaces/2/pi-egress-fork design to explore/prepare-context-hook in the Pi fork with a clear note, verify the remote branch, then remove only that archived checkout.
  • Non-goals: new append origins, attestation v2, base64 bridge bodies, caller identity, upstream rebases.
  • Backward compatibility: not required; do not add aliases/shims.
  • Dependencies: none.
  • Sequencing: first.

Implementation Notes

Acceptance Criteria

  • Final names appear consistently in code, tests, example, manifest, and current docs.
  • Superseded receipt APIs/state and legacy bridge environment variable are absent outside historical material.
  • Multi-turn fixtures cover assistant tool calls/tool replies, Qwen reasoning content, Responses reasoning/function calls, and compaction-summary replay.
  • Strictly rejected fields have an explicit fixture/test decision.
  • The alternate prototype is recoverably archived before its checkout is removed.

Required Validation

  • Research: cd projects/egress-gate && make check && make check-py311
  • OpenShell: mise run pre-commit, focused cargo test -p openshell-sandbox, then mise run test/mise run ci before review.
  • Acceptance grep for pi-input.v1|extension-v1|require_pi_attestation|OPENSHELL_PI_CONVERSATION_URL across current code.

PR Expectations

Keep changes grouped into phase-specific commits. Reviewer notes must call out fixture provenance and every deleted compatibility path. No generated protobuf diff is expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions