@patronage/factory-ci 1.0.0-alpha.31 → 1.0.0-alpha.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -153,11 +153,11 @@ const deployWebsite = job("deploy-website", {
153
153
  });
154
154
  ```
155
155
 
156
- The step calls `psf production:impact` with the merge push's exact `before` and `after` commits. It is `continue-on-error`, and every generated target condition keeps work demanded unless the command succeeded, reported a usable decision, and explicitly withdrew that target. The artifact with an empty target list generates no deploy jobs because job creation remains with the consumer. This package does not own target declarations, deploy topology, credentials, commands, or convergence/no-op proof.
156
+ The generated decision step runs `psf production:impact --candidate "$FACTORY_CANDIDATE_SHA"` (the `candidate` option, default `github.sha`, plus `--stage` when the consumer passes one). The command resolves each target's demand from that target's last trusted successful deployment receipt to the candidate, never from the push's `before` and `after` commits. The step is `continue-on-error`, and every generated target condition keeps work demanded unless the command succeeded, reported a usable decision, and explicitly withdrew that target. Each deploy job declares `impact.permissions` and appends `impact.receiptSteps(target)` after its deploy and health steps: a success receipt (`--publish-receipt success --target <name> --candidate "$FACTORY_CANDIDATE_SHA"`), a bind step named for the new deployment id, and a failure receipt. Only a bound success receipt becomes the next baseline. The artifact with an empty target list generates no deploy jobs because job creation remains with the consumer. This package does not own target declarations, deploy topology, credentials, commands, health policy, or convergence/no-op proof.
157
157
 
158
- The decision checkout must make both push identities reachable. Use `factoryWorkflow({ setup: { checkout: { fetchDepth: 0, ref: "${{ github.sha }}" } } })`; a shallow checkout is safe but deliberately refuses withdrawal because the `before` commit is unreadable.
158
+ The decision checkout must make the baseline commit reachable. Use `factoryWorkflow({ setup: { checkout: { fetchDepth: 0, ref: "${{ github.sha }}" } } })`; a shallow checkout is safe but deliberately refuses withdrawal because the baseline commit is unreadable.
159
159
 
160
- When deployment begins from a successful `workflow_run` instead of the push event itself, carry that push identity through the typed artifact seam rather than reconstructing `before` from `HEAD^`:
160
+ When deployment begins from a successful `workflow_run` instead of the push event itself, carry that push identity through the typed artifact seam so the decision job checks out the triggering head and passes it as the candidate:
161
161
 
162
162
  ```ts
163
163
  import {
@@ -197,8 +197,7 @@ const identity = factoryPushIdentityConsumer({
197
197
  downloadArtifact: workflowArtifact.actions.downloadArtifact,
198
198
  });
199
199
  const impact = factoryProductionImpactWorkflow({
200
- after: identity.outputs.after,
201
- before: identity.outputs.before,
200
+ candidate: identity.outputs.after,
202
201
  targets: profile.impact.targets.map(({ name }) => name),
203
202
  });
204
203
  const decision = {
@@ -1,3 +1,3 @@
1
1
  {
2
- "fingerprint": "05c495818f5d156b477f4c097026046a00c3d5a61e9b2d51ae3724c7b03e9618"
2
+ "fingerprint": "ff8d152eaadee6c0b886de4d73f1a1335ef2acbf8d2df3500ce57aea02d8cb0d"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patronage/factory-ci",
3
- "version": "1.0.0-alpha.31",
3
+ "version": "1.0.0-alpha.32",
4
4
  "description": "Deep CI and deploy building blocks for Patronage factory projects: workflow source artifacts, hosted diff classification, Alchemy entry execution, and disposable-stage semantics",
5
5
  "keywords": [
6
6
  "alchemy",