Repository navigation
Closed
Labels
factory:pr-openPR is open and passed the gatePR is open and passed the gate
Description
Outcome
The T3 web app shows the factory's runs next to its threads.
Acceptance criteria
apps/web/src/routes/factory.tsxlists runs with repo, issue, state, current step, age and pull request link, and has pause/resume claims.apps/web/src/routes/factory.$runId.tsxshows a run's ledger events, its last gate output, a link to its thread, and a stop button.- One nav link reaches the page. Its file and
apps/web/src/routeTree.gen.tsare listed infactory/SEAMS. - Components live under
apps/web/src/factory/with component tests for the empty, loading, error and populated states. /factorylists the open attention items from Needs attention: keep a list of what needs a person and notify on the Mac #58 at the top, and its nav link shows their count as a badge (hidden at zero).
Depends on
- Factory HTTP API for status, runs and control #27
- Needs attention: keep a list of what needs a person and notify on the Mac #58
Notes
This issue is for the fork's own factory, after the handover in #21. Leave it at factory:proposed until the fork's factory watches this repo.
Reference
- 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. Itsdocs/lifecycle.md,docs/reference/ledger.mdanddocs/issues.mddescribe the behaviour; its tests pin it. - Design:
factory/docs/design.mdin this repo. - Upstream's
AGENTS.mdapplies. 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 infactory/SEAMSand 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.
Metadata
Metadata
Assignees
Labels
factory:pr-openPR is open and passed the gatePR is open and passed the gate
Activity
rawphp commentedon Oct 17, 2026
Factory status: pr-open
test(factory): pin the run route outside the runs list
fix(factory): un-nest the run route from the runs list
test(factory): pin the page staying up on a failed poll
5 remaining items
test(factory): pin the gate message to the last attempt
fix(factory): show only the message about the last gate attempt
test(factory): pin the run id parse for a repo ending in an underscore
fix(factory): parse run ids the way the server does
fix(factory): type the stop result's stopped as the run id
test(factory): pin that only github.com pull request URLs become links
fix(factory): link a pull request only when it is a github.com URL
test(factory): pin that an older poll cannot overwrite a newer answer
fix(factory): drop a poll answer older than one already applied
fix(factory): type-clean imports in the routes test
test(factory): pin busy controls and a late failing poll
docs(factory): list mainAppLocation as the ninth seam