chore: reclassify build-lifecycle capabilities back to plugins, keep only symbols - #147
Merged
Merged
Conversation
…only symbols Only crash-symbol collection belongs in the Orchestrator. Debug symbols have to be captured at build time or they are gone for good, which genuinely is orchestrator's output-collection domain - it stays as the `symbols` output type and symbol-collector.ts, from #144. The other four capabilities from that same PR are moved back to being plugins, matching the other 10 experimental drafts (#145): visual-baseline.ts -> plugins/screen-capture (`capture` command) service-directory.ts -> plugins/dev-tunnel (`tunnel` command) dedicated-server-provisioner.ts -> plugins/dedicated-server-provisioning (`provision-server` command) anti-cheat-middleware.ts is dropped; plugins/anti-cheat is restored to its original options-only shape (its actual command, if there ever is one, has to come from EasyAntiCheat/BattlEye SDK integration, which is NDA-gated and was never real to begin with - the Middleware-based wiring only made sense while this lived inside orchestrator). The ported logic itself is unchanged (same generators, same tests) - only its home moves. Each of the three command-based plugins gets the same onLoad warning and `throws "not implemented yet"` command dispatch as the other drafts; anti-cheat keeps its existing onLoad warning, reworded to match the standard "[game-ci] WARNING: ... EXPERIMENTAL ..." phrasing used everywhere else. All four are marked `"private": true` like the rest, and their READMEs get the standard EXPERIMENTAL banner plus a "What's real" section pointing at the tested logic underneath. output-type-registry.ts and its test drop back to 9 built-in types (was 10 with visual-baseline); orchestrator's index.ts drops the four exports. Fixed while moving: screen-capture's tsconfig resolves a stricter BinaryLike type for crypto.Hash#update than orchestrator's does, even with identical @types/node - digestDirectory now passes a Uint8Array view instead of the raw Buffer, which satisfies both. Verified: `bun install --frozen-lockfile` passes; each new plugin's suite passes under both vitest and bun (34 tests, unchanged from before the move); onLoad/createCommand behavior driven directly (4 onLoad warnings, 3 commands throw on use); orchestrator's output-service suite (69 tests) still passes with the count fixed to 9 built-ins.
|
Warning Review limit reachedNext included review available in 14 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (27)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
frostebite
added a commit
to game-ci/documentation
that referenced
this pull request
Aug 24, 2026
…ti-cheat back into the plugin catalog game-ci/cli#147 reclassified four of the five capabilities #144 had put into the Orchestrator - only crash-symbol collection actually belongs there (symbols have to be captured at build time or they're gone for good, which is genuinely output-collection). screen-capture, dedicated-server-provisioning, dev-tunnel and anti-cheat are plugins again, matching the other 9 drafts. Moves those four back into the main catalog table (status notes point out which parts are real vs which command is still unregistered), and shrinks the old five-row "Not plugins" section to a single paragraph about symbols, since it's the only one left.
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.
Only crash-symbol collection is meant to be an Orchestrator capability; the other four from #144 move back to being plugins.
Why symbols stays, the rest doesn't
Debug symbols genuinely have to be captured at build time or they're gone for good — once the build machine is torn down, every future crash report from that build is unsymbolicatable. That's output-collection, orchestrator's existing domain. It stays as the
symbolsoutput type +symbol-collector.ts.The other four are moved back to
plugins/, matching the other 10 experimental drafts from #145:visual-baseline.tsplugins/screen-capture(capturecommand)service-directory.tsplugins/dev-tunnel(tunnelcommand)dedicated-server-provisioner.tsplugins/dedicated-server-provisioning(provision-servercommand)anti-cheat-middleware.tsplugins/anti-cheatrestored to its original options-only shapeanti-cheatdoesn't get a ported command: itsMiddleware-based wiring only made sense while it lived inside orchestrator, and its real integration (EasyAntiCheat/BattlEye SDK, NDA-gated) was never implemented to begin with — that part of the original draft is unchanged.What moved vs. what's new
The generator/comparison/registry logic itself is unchanged — same functions, same tests, git detects all three as renames. Only the home moves. Each of the three command-based plugins gets the same
onLoadwarning +throws "not implemented yet"dispatch as the other drafts;anti-cheatkeeps its existing warning, reworded to match everyone else's[game-ci] WARNING: ... EXPERIMENTAL ...phrasing. All four are"private": true, with the standard EXPERIMENTAL README banner plus a "What's real" section pointing at the tested logic underneath.output-type-registry.ts(and its test) drops back to 9 built-in types; orchestrator'sindex.tsdrops the four exports.One real bug found while moving
screen-capture's isolatedtsconfig.jsonresolves a stricterBinaryLiketype forcrypto.Hash#updatethan orchestrator's own tsconfig did — same@types/nodeversion, different resolution.digestDirectorynow passes aUint8Arrayview instead of the rawBuffer, which satisfies both.Verification
bun install --frozen-lockfilepasses.onLoad/createCommandbehavior driven directly against the plugin objects: 4onLoadwarnings, 3 commands throw when invoked, 0 for anything unrelated.output-servicesuite (69 tests) still passes with the built-in count fixed to 9.🤖 Generated with Claude Code