Skip to content

Support host-resolved phased plugin inputs - #2416

Merged
chubes4 merged 2 commits into
mainfrom
feat/2414-phased-plugin-inputs
Aug 29, 2026
Merged

Support host-resolved phased plugin inputs#2416
chubes4 merged 2 commits into
mainfrom
feat/2414-phased-plugin-inputs

Conversation

@chubes4

@chubes4 chubes4 commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add an explicit pluginInput recipe contract that consumes one declared typed JSON artifact
  • project JSON Pointer fields into bounded generic plugin descriptors
  • resolve immutable archives or latest stable WordPress.org packages on the host
  • mount, activate, and verify projected plugins in the same live runtime before later workflow steps continue
  • preserve stage-specific phase evidence, interruption handling, and cleanup
  • add recipe-run --output with bounded JSON file output and a long-run activity heartbeat
  • make the source-checkout launcher choose build:release only when the checkout provides it

Fixes #2414.

Consumer: Automattic/static-site-importer#1427.

Verification

  • npm run build
  • npx tsx tests/recipe-phased-plugin-input.test.ts
  • npx tsx tests/recipe-runtime-setup-staged-materialization.test.ts
  • npx tsx tests/recipe-run-summary-output.test.ts
  • npx tsx tests/recipe-run-artifacts-mount-guard.test.ts
  • npx tsx scripts/source-checkout-entrypoint-smoke.ts
  • focused SSI runner and one-runtime contract tests: 5 passed
  • completed SSI 1260-cascade-proof: one runtime, one succeeded fixture, zero findings, pixel-identical browser output, and 8/8 valid editor blocks
  • repeated one-runtime batch execution ranged from 161.6s to 459.0s under host contention, versus 589.6s for the prior discovery plus import runtimes

Contract Notes

  • ambient stdout and key-name matching cannot supply package inputs
  • package resolution remains host-side; the WordPress guest does not download providers
  • empty projected manifests continue without package activation
  • malformed artifacts and resolution, mount, activation, or readiness failures retain their phased stage

AI Assistance

OpenAI GPT-5.6 Sol through OpenCode traced the recipe lifecycle, implemented the typed phased-input and output-file contracts, added focused tests, ran the cross-repository browser proof, and prepared this pull request. Chris Huber directed the architecture and reviewed the evidence.

@chubes4
chubes4 merged commit 6b69fc6 into main Aug 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support host-resolved phased plugin inputs in one recipe runtime

1 participant