Adopt explicit Pro read/write policy - #15
Merged
Merged
Conversation
Owner
Author
|
Merged and deployed verification:
|
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
Ports parent
ventianima-lab/codex-web-gpt-automationrelease 1.14.0 (explicit Pro read/write policy) into this fork at release 1.9.0. The user explicitly approved replacing the Pro attachment-only contract.devspace,pro-devspace,pro-attachment-only. A qualified Pro run defaults to the new write-capablepro-devspaceroute: DevSpace app mention, mission-scoped file writes and command execution inside the exact project root, no attachments and no context packet.pro-attachment-onlystays as the separate explicit immutable-evidence route with every existing invariant intact (1 MiB per file, packet hash binding,--browser-attachments always+--file, DevSpace endpoint rejection,not_applicableoutcome, legacy outcome contract,app_nameabsent). It is never an automatic fallback. This fork never hadpro-devspace-readonly, so none was created.plan -> proon manifestallow_pro: true(strict bool, default false) and refuse withPRO_EXPLICIT_OPT_IN_REQUIREDbefore any Pro submission. The plan mission carries a[PRO_SELECTION_POLICY]block, so the plan stage is told not to emitnext_stage=prowhen Pro is not authorized.gpt-5.6+ visible Extra High, never auto-promoted to Pro. Every launch contract now reportspro_selection_policy: explicit-only, and the Pro skill no longer allows implicit invocation.gpt-5.6-sol+select+heavy+ research off with the unchanged Power 5 of 5 pre-submit proof and settlement version sets. exact-session monotonic ownership, project locks, mission and attachment hash binding, hidden window, and throwaway profile copies are untouched.Safety anchoring
The write grant is anchored on the host's own enforcement root, not on model text:
@DevSpace Read and execute the mission file inside exact_project_root=<root>. <write authority> Mission file: <path>, built fromconfig.project_root(the same value that drivesis_within,HOST_STATE_OVERLAPS_PROJECT, the submit mutex andunresolved_project_sessions).npx.cmdargument, which would silently drop the authority sentence.exact_project_root=andexact_input_mission_path=and, when writable, forbids substituting a parent root, child directory, similarly named workspace, active workspace, or shell boundary workaround.pro-devspacenow runs the DevSpace readiness and exact-root qualification checks that the regular route runs; a missing project root fails before Oracle or a browser is created.build_launch_contractfails closed withPRO_DEVSPACE_PROJECT_ROOT_REQUIREDif no root is supplied.Review defects fixed in this branch
pro-devspacerun refused before send withAPP_MENTION_ROUTE_UNCONFIRMEDhad no settlement path and would have held an unreleasable project lock. Both app-route evidence builders now admit the exactpro-devspaceshape (transport +app_name=DevSpace+gpt-5.6-sol+heavy) under the unchanged version, marker, empty-output and no-URL gates._load_profiles_module's documented fail-safe was dead code becausespec_from_file_locationreturns a loader for a missing path. It now raisesORACLE_PROFILES_MODULE_MISSING/ORACLE_PROFILES_MODULE_UNLOADABLEinstead of a bareFileNotFoundErroroutside recorded state.pro_evidence_transportidentifier tooracle-pro-attachment-onlyand restored theresolve --mode propreview path with--project-root.Low-severity note accepted as designed:
--mode prowithout--attachmentselects the write route. The explicit user Pro request is the authorization, and comprehensive additionally requiresallow_pro: true, so no extra CLI selector was added.Verification
Divergences from parent 1.14.0 (recorded in docs/VS_UPSTREAM.md)
pro-devspaceinherits thedevspacetask_outcome_contractpolicy (caller-chosen: dispatch v1, comprehensive legacy) because every comprehensive stage in this fork is legacy-contract.--browser-timeoutbudget plus watchdogattention_requiredand monotonic ownership already deliver the same user-visible outcome.