Repository navigation
fix(plugins): workflows port, CI cache prune, one auth header (D-0821, D-0973, D-0198) - #529
Merged
Merged
Conversation
added 3 commits
October 28, 2026 17:25
… (D-0821) plugin.json port and service.port said 3733 while the Dockerfile, compose fragment and config use 3712. d0821-test.sh pins the agreement and runs in the conformance job.
…973) build-from-tarball.sh now runs docker builder prune -f on exit when CI=true, so a shard of ~28 sequential Go image builds cannot fill the runner disk. A developer machine (CI unset) is never pruned. d0973-test.sh proves it with a stub docker. validate.yml runs both d0821 and d0973 checks.
…compatibility read of the old names (D-0198) audit-log, storage, post and linkedin accept X-Internal-Token and still read X-Plugin-Secret, X-Internal-Secret and X-Internal-Key. audit-log and storage compare in constant time and emit the canonical name in errors. The storage Go client sends the canonical header plus the legacy one for one release. Callers in bundles and plugins-pro are outside this repo.
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.
Rows
D-0821 (workflows manifest port).
free/workflows/plugin.jsonportandservice.portare now 3712, the port the Dockerfile EXPOSE, compose fragment, nginx conf and config default use. 3712 collides with no other plugin or reserved row (ports.sh). No other plugin depends on workflows, so noPLUGIN_WORKFLOWS_INTERNAL_URLline exists and no oracle-deltas entry is needed. Newtests/conformance/d0821-test.shfails on main (both fields 3733) and passes now.registry.jsonstill lists 3733 for workflows: it is a signed, generated release artifact, so it is left for the next registry regeneration.D-0973 (BuildKit cache).
build-from-tarball.shnow runsdocker builder prune -fin its exit trap whenCI=true, also after a failed build. It never prunes on a developer machine. Newtests/conformance/d0973-test.shuses a stubdockerand fails on main (no prune), passes now; CI unset and CI=false never prune.D-0961 (oracle cannot compare byok): not changed. The condition is gone on main: #255 converted byok to manifest v2 with status
experimental. The oracle takes originals fromorigin/main, where no v1 original is left (all 131 free manifests are v2), so nothing can trigger the unreadable-manifest warning. I ran the released v1.4.12 CLI against byok as it is on main: it installs andplugin list --installed --detailedprints a normal row with no warning. A new delta kind or a warning normaliser would have no input to act on, so none was added.D-0198 (auth header names). Decision: the canonical header is
X-Internal-Token. It is the one name used in both free plugins (post, linkedin, jobs, ai-cli) and bundles, so bundles needs no change for the canonical name;X-Plugin-Secretis only in audit-log and storage here. audit-log and storage now readX-Internal-Token, then fall back toX-Plugin-Secret,X-Internal-Secret,X-Internal-Key; post and linkedin gain the same fallback. A wrong canonical header is never rescued by a right legacy one. audit-log and storage compare in constant time. The storage Go client sends both the canonical and the legacy header for one release, so it still works against an older storage plugin. Storage README updated. Tests added in all four plugins.Not done here: the callers and servers in the bundles and plugins-pro repos still send or expect their old names. Those keep working through the compatibility read, and their migration to
X-Internal-Tokenmust be done in those repos. The legacy fallbacks should be removed once that is done. The paypal, backup and donorbox READMEs nameX-Plugin-Secret, but their code reads no such header; left alone.Commands run
GOFLAGS=-mod=vendor go vet ./... && go test ./...in free/audit-log, free/storage, free/post, free/linkedin: all pass.bash scripts/conformance/check.sh --plugins workflows,audit-log,storage,post,linkedin --rules <all but build>: pass.bash tests/conformance/d0821-test.sh,d0973-test.sh,oracle-deltas-test.sh: pass (d0821 and d0973 fail on main).python3 scripts/ci/check-file-size.py: pass.buildrule andv14-oracle.sh --pluginscould not run locally:deterministic-tar.shneeds GNU tar, which this machine lacks (CI has it).🤖 Generated with Claude Code