You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The factory checks, readies and comments on pull requests with the same gh calls softfac makes.
Acceptance criteria
tracker/github.ts gains: view a pull request (repo, head repo and ref, base, draft, state, merged, head sha), mark it ready and back to draft, comment, read a branch tip sha, compare two shas, and list check runs for a sha. Each call uses the same argv as softfac.
softfac's src/github.rs cases for these calls are ported and pass.
softfac, the Rust factory this ports, pinned at rawphp/softfac@bf273a1. Read it from a separate clone: git clone --filter=blob:none https://github.com/rawphp/softfac /tmp/softfac-ref && git -C /tmp/softfac-ref checkout bf273a1d93651992b4fc95b4dd6c111f8f3322cf. Its docs/lifecycle.md, docs/reference/ledger.md and docs/issues.md describe the behaviour; its tests pin it.
Design: factory/docs/design.md in this repo.
Upstream's AGENTS.md applies. Run only the tests and typechecks for the paths you touch (vp test run <path>, vp run --filter t3 typecheck), never the repo-wide checks.
Edit no upstream file that is not listed in factory/SEAMS. A new seam needs a line in factory/SEAMS and a reason in the PR body.
Port behaviour, not code: port the named test cases first (TypeScript, vitest / @effect/vitest), then make them pass. Exact comment and ledger wording is ported as is.
Activity
rawphp commentedon Oct 15, 2026
Factory status: pr-open
feat(factory): pull request reads and writes through gh
test(factory): markPrDraft reads the PR state after any failure
fix(factory): markPrDraft reads the PR state after any failure
test(factory): a check's conclusion and link come from the deciding run