Skip to content

FP-5 feature-preservation release evidence

The FP-5 regression gate runs the exact test nodes in feature-preservation-contract.json, collects them before execution, rejects deselection, skip and XFAIL, and emits the checked-out revision plus the SHA-256 of the installed generated-scaffold artifact. It proves only the scoped outcomes named there: governed run/stream egress, Anthropic system cache serialization and history, durable continuation, metacognition failure handling, custom acknowledgement and read-only-tool policy branches, custom credential-pattern scrubbing, explicit precondition refusal, and a full generated app's API, worker refusal and deployment extension.

The generated app is installed from a fresh sdist and has no checkout path on PYTHONPATH. Its offline journey runs API chat and drained stream, a direct generated-host stream and HMS write/flush/recall, the generated Celery worker's explicit DEEP refusal in a fresh process, then a separate-process SQLite pause/resume extension with a real token-to-scope resolver. The worker scenario proves that the Agent-only scaffold does not run DEEP without a native v1 owner; it supplies no DEEP phase or persistence parity evidence. The standard scaffold still refuses ASK_USER_ENABLED because a durable port and authenticated resolver are deployment facts; the tested extension uses the public build_agent(extra_capabilities=..., continuation_factory=...) seam rather than pretending that setting is wired.

python scripts/feature_preservation_gate.py --mode regression may be green. It is not release closure. --mode migration-closure remains deliberately nonzero while the inventory reports unresolved, unverified, admitted-but-inactive, or missing-outcome rows. The command's evidence JSON names every such row with its existing owner. There are no approved behavior-change exceptions in this contract, because no product decision evidence was supplied.

The governance mappings do not promote a disposition. metacognition_selective_gate, metacognition_trivial_ack_patterns, read_only_tools, and credential_patterns execute their native public policy outcomes. domain.core_preferences executes the explicit governance(preconditions=...) refusal seam only; it does not establish an automatic CorePreference adapter or a preserved legacy behavior. That inventory row remains admitted-but-inactive until a user or product decision approves the behavior to support and an executed transition proves it.

The compatibility window remains the documented 9.12 release line; 10.4 is a retirement-contract bound, not a shipped release. This ticket creates no deployment authorization.