QM-32: create the software factory loop when the factory config is applied - #1035
Open
pcapriolo-yc wants to merge 2 commits into
Open
QM-32: create the software factory loop when the factory config is applied#1035pcapriolo-yc wants to merge 2 commits into
pcapriolo-yc wants to merge 2 commits into
Conversation
The factory's review happens on the pull request, not on the loop output. A hold would park every converged run until an admin clicked Ship on the Loops page. Both declared actions now gate on auto.
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.
Closes QM-32.
Changes
Why this matters: The software factory could be configured but never actually existed. Nothing in the system could create a loop carrying the
factorysurface, and that surface is the only gate on every factory code path, so an operator could fill in the "Software factory" admin card, click Apply, and get nothing but stored settings. Turning the factory on now brings the factory into existence.What changes:
factory-configon an org scope (the "Software factory" admin card) now also creates a "Software factory" loop owned by the applying admin at that org scope, which appears on the loops page and can be opened, fired, paused, and put on autopilot like any other loop.{ "reset": true }) removes the configuration only and leaves the loop standing; a rejected apply (invalid body, non-org scope, unauthorized actor) behaves exactly as before and creates no loop.open_prandclose_already_fixed, both gated onauto, so a converged run ships without a human click: the review happens on the pull request, not on the loop output.Acceptance stories:
canAdministerLoophas no org branch, so only the first applying admin passes. That widening is a separate change.Test Plan
NODE_ENV=test ALLOW_UNSIGNED_TEST_IDENTITY=1 node --experimental-test-module-mocks --test test/loop-factory-loop.test.tsNODE_ENV=test ALLOW_UNSIGNED_TEST_IDENTITY=1 node --experimental-test-module-mocks --test test/admin-resources.test.tsNODE_ENV=test ALLOW_UNSIGNED_TEST_IDENTITY=1 node --experimental-test-module-mocks --test test/loop-factory-wiring.test.tsnpm run lintProof it works
All seven acceptance stories pass, verified in a browser against a live instance and backed by green targeted test runs.
page@0c3cf56c3172d9b36dc6e06b01ea5b24.webm — /tmp/claude-recordings
page@76ceaf47be3a6f35de0415b201a784d1.webm — /tmp/claude-recordings
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.