feat(core): #599 Phase 1(a) — env_provision argv/resolution layer (paid market delivery) - #638
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
This is a paid market delivery. It implements Phase 1(a) of #599 and was produced by a seller seat against a real-money job, not written by the requesting team.
The quality call belongs to the merge gate. What follows is an execution grade — evidence that the paid work was performed — and it deliberately gates nothing. The award was the payment decision and settlement completed before this PR existed.
What it delivers
New
crates/maxplayer-core/src/env_provision.rs, registered ungated inlib.rs:EnvBackendresolution from a parsed checks declaration, theEnvRunnerargv-prefix transform for the nix and container backends, both postures, the launcher-outermostcomposerule, and theEnvProvisionErrorfailure classes. Pure argv and resolution only — no process spawning, no seller integration, no schema, no doctor, no Dockerfile.2 files, 282 insertions, 0 deletions.
Cargo.tomlandCargo.lockare untouched: no new dependencies.The module is deliberately ungated and does not reference
seller_exec::SandboxPolicy, which iswallet-gated. That is whycomposetakes the launcher wrapper as an injected function rather than the concrete type: an ungated module's tests run in all threemaxplayer-coreCI test jobs, awallet-gated one runs in exactly one of them.Head vs the graded object
Head
777cc321945f65611ea7cd89207870b2cc09cb1bis the graded delivery87b270010ea798d70c681b8fdc4c87d5095e31b0minus exactly one path:MAXPLAYER_EXECUTION_SENTINELat the tree root.git diff-tree -r --name-status 87b27001 777cc321is one row,D MAXPLAYER_EXECUTION_SENTINEL; every other path is byte-identical, cross-footed by recursive path counts 218 → 217. The graded object is retained atrefs/graded/599-phase1a-delivery, so the graded figures — 3 files, 286 insertions — stay checkable.That file is delivery-transport metadata, not contribution content: the seller writes and stages it so pay authorization can read execution proof out of the delivered tree, and
docs/protocol-v1.md§20 reserves the path. Subtracting it before merge is the #632/#633/#635 precedent, and #636 tracks making the rule self-enforcing.Independent verification
cargo test -p maxplayer-core --locked env_provision→ 6 passed, 0 failed, real compile observed.cdfa276, one commit, descendant confirmed withmerge-base --is-ancestor.EnvPosturevariants explicit, all three error variants covered.@sha256:not-revalidated— deliberately not a valid digest. That fixture choice is what provesresolve_backenddoes not re-validate the digest form, which the contract forbids becauseparse_declarationalready owns that rule.Grade artifact, including what is NOT graded:
share/mobee/599-phase1a-GRADE.md.One test is tautological, and the cause is ours
provisioned_env_prefix_comes_from_runner_for_the_same_posturebuildsProvisionedEnvfromposture_prefix.clone()and then asserts the field equalsposture_prefix. That compares a value to a clone of itself: it cannot fail for any implementation.This traces to a defect in our acceptance specification, not to the delivery. The item asked for a property of whatever produces a
ProvisionedEnv, in a job whose scope excludes the only producer —provision()is Phase 1(b) and is correctly absent here. The seat satisfied the item's literal words the only way its scope allowed. The item has been inherited by Phase 1(b)'s pre-registered table, where the producer exists and the property is red-provable.Assembly deliberately did not touch it — the only transform applied to this branch is the sentinel strip. Whether the test rides as-is, gets rewritten, or waits for 1(b) is the merge gate's call.
One thing worth fixing upstream
The delivered commit subject is
maxplayer delivery: **Base:** \cdfa276…`.— the task text's first line, verbatim, markdown and all.delivery_messagetakes the first non-empty line of the task, and a single-commit PR takes its squash subject from the commit. **Please set the squash subject from this PR's title**, ormain` gets markdown boilerplate. #637 tracks the generation-site fix; the task-file format that fed it is ours to fix on the next job.Merge
pr-feedback holds merge authority — please do not self-merge. And do not merge on the strength of the execution grade alone: it certifies that the machine did the paid job, which is a different question from whether this should ship.
🤖 Generated with Claude Code