Repository navigation
chore(factory): name rewrite/main as the integration base - #977
Merged
Merged
Conversation
The factory resolves a job's base in this order: an explicit --base, then `integrationBase` in .factory/config.json, then the remote default branch. This repository has no config, so the fallback applied and the default is `main` — the TypeScript tree that must not receive Rust work before cutover. It nearly bit job 012: the local `rewrite/main` was still at `bca0f6f`, so the worktree was cut from a tree missing the fourteen event strategies that landed in #976. The job's manager caught it and fast-forwarded first, and recorded why in `orchestrator.md` rather than relying on that catch repeating. Naming the base here makes it the repository's own statement, so every job in this repo agrees without a charter lookup or a per-job note.
|
[Low impact] This change appears safe to merge.
|
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.
Why
The factory resolves a job's base in this order: an explicit
--base, thenintegrationBasein.factory/config.json, then the remote default branch. This repository had no config file, so the fallback applied — and the default ismain, which is the TypeScript tree that must not receive Rust work before cutover.It nearly bit job
012-req-close-ordertoday:rewrite/mainwas still atbca0f6f, the pre-feat(relay): implement the fourteen event strategies behind the capture's census #976 commit;relay.rswithout the fourteen event strategies;2b2287ffirst, and recorded why inorchestrator.md.That was a catch, not a mechanism. A catch has to happen every time; a config file has to happen once.
What
{ "integrationBase": "rewrite/main" }Three lines, no code. The factory skill documents this file as "the repository's own statement, committed, so every job in that repo agrees".
Verification
The file resolves as JSON and sits at the path the skill's base resolution reads (
<repo>/.factory/config.json). It is not covered by.git/info/exclude, which excludes.factory/jobs/and.factory/backlog.mdonly, so it tracks normally while the job folders stay local.One note for whoever reviews this: it belongs on
mainbecause base resolution reads it from the primary checkout, which sits onmainthroughout the rewrite. If the checkout is switched torewrite/mainat cutover this file is already redundant by then.Closes nothing. It removes a trap.