P0: complete the zero-config multi-host boundary wedge#271
Merged
Conversation
pengfei-threemoonslab
marked this pull request as ready for review
July 13, 2026 05:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the zero-config, multi-host boundary wedge for Codex, Claude Code, and Cursor.
--agentis now actor metadata only: it cannot select a weaker host evaluator or change violations/control for identical input.The former implementation had two divergent paths:
shipgate check --agent claude-code|cursorstill used the Codex-only evaluator, whileaudit --hostmaintained a separate, partial inventory engine. That allowed non-Codex permission expansion and protected host changes to returncomplete.What changed
AgentBoundaryAssessmentand adapter registry shared by check, MCP, verify, preflight/trigger classification, first-look, host audit, and drift.audit --host --scope local-staticopt-in.shipgate.agent_boundary_result/v1; keeps Codex boundary v2 as a deprecated projection of the same assessment.0.2, including incomparability and exact re-export routing for incomplete or legacy baselines.agent-boundaryunion while retaining legacy family readers for0.16.x.surface_classmetadata and registry-derived protected paths, eliminating the hard-coded capability-trigger list.0.16.0b4, runtime contract15, downstream local contract4, and regenerated schemas, instructions, skills, adoption kits, examples, and discovery artifacts. Report remains0.32.Safety properties
complete.Review hardening
valuefields before grant identity construction and serialization. Regression coverage proves the raw values cannot enter inventory, saved baseline, or drift JSON.comparison_status != comparable/has_drift != falseas human-routed host drift in preflight and organization governance, including legacy v0.1 baselines..mcp.json, and GitHub workflows. Nested copies preventcomplete; specialized host-grant semantics remain root-anchored so Shipgate does not claim a nested fixture is runtime-effective authority.git_diff_textwrapper and consolidates duplicate policy serialization. Deprecated legacy control models remain intentionally available as frozen-reader compatibility surfaces.The broader boundary is intentionally fail-closed: instruction, policy, skill, and ordinary workflow edits without specialized safe semantics route to human review. This is a deliberate noise increase from the Codex-only evaluator and is documented in
docs/host-boundary-support.md.Validation
3318 passed, 5 skipped; coverage88.59%(minimum 85%).ruffpassed acrosssrc,tests,scripts,benchmark, andharness.twine checkpassed for0.16.0b4.Required review
Shipgate self-review correctly returns
human_review_requiredfor the boundary check andinsufficient_evidence/can_merge_without_human=falsefor verify because this PR changes release trust roots, policies, CI, schemas, and agent instructions. This draft requires explicit maintainer review; the agent is not self-approving those changes.