phax 0.31.0
Changes since 0.30.0: v0.30.0...v0.31.0.
Highlights
- Protected paths: files no phase of a run may change — A phase never lands a change to a file that decides whether its own work passes; what it cannot fix stays failing and reaches the operator.
Upgrading
- Records readers:
security.jsonis version 3. Every phase'ssecurity.jsoncarries a requiredprotectedPaths, betweenskillEditGrantsandproviderSkippedForSecurity:nullwhenphax.jsondeclares none, otherwise{ globs, enforcement }withenforcementone ofenforced,partialorcommit-check-only. phax reads version 1 and 2 files as version 3. - Records readers:
gate-attribution.jsonis stamped 0.31.0. It carries a requiredprotectedPaths:null, or{ result, changes }(apasswith no change, or afailwith at least one{ path, kind, entry }). 0.26.0 documents and older still read, asnull. An older@lbdremy/phax-schemascannot read 0.31.0 attributions.
What's new
Protected paths: files no phase of a run may change
A phase never lands a change to a file that decides whether its own work passes; what it cannot fix stays failing and reaches the operator.
-
A project lists, in phax.json, the files whose change is the operator's decision, and no phase of a run may land a change to them.
phax.json protectedPathsNow:
Before
-
Running
phax validatelists the protected paths and refuses a malformed list, one set outside phax.json, or a glob inside a submodule.phax validateNow:
Before
-
During a run the operator sees a gate attempt fail on each protected file the phase changed, and an exhausted phase names the files left for them to decide, the agent's last fix transcript and the two ways on.
phax runNow:
Before
-
A phase's security record shows the protected paths and how much of the list its provider refused natively, or
nullwhen the project declares none.<run>/<phase-id>/security.jsonNow:
Before
-
A phase's gate attribution shows the protected-path check's result and each protected change, or
nullwhen the project declares none.<run>/<phase-id>/gate-attribution.jsonNow:
Before
-
The help of
phax runandphax validatesays how protected paths behave.phax.usage.kdlNow:
Before
-
The security guide gains a Protected paths section saying what each provider refuses natively and what the commit check catches.
docs/security.mdNow:
Before