refactor(runner): ship the flow's import graph for the run - #1513
Merged
Atchyut Preetham Pulavarthi (theonly1me) merged 1 commit intoAug 21, 2026
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Atchyut Preetham Pulavarthi (theonly1me)
marked this pull request as ready for review
August 21, 2026 10:08
Chase J (chajac)
approved these changes
Aug 21, 2026
Atchyut Preetham Pulavarthi (theonly1me)
merged commit Aug 21, 2026
ad44380
into
main
7 checks passed
Atchyut Preetham Pulavarthi (theonly1me)
deleted the
refactor/nova-1574-collect-only-the-import-graph
branch
August 21, 2026 11:04
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.
Overview of Changes
qawolf runner runread every shippable file under the working directory. On a project of a few thousand files where a flow reaches five, that is a payload refused at the 30 MiB cap before the run ever starts, so the command was unusable anywhere but a directory holding the flow and nothing else. A run from the QA Wolf app does not do this: it walks the flow's import graph. This makes the CLI walk it too, using the resolver from the previous change.package.jsonandtsconfig.jsonwhatever the flow imports, since the runner reads dependencies from one and the aliases resolve through the othertypescriptto a runtime dependency and load it lazily, so only a command that walks a graph pays for itrunner runstarts at the flow file plus any--lines-fileandrunner exec --filestarts at its own filerunFlow.files.test.ts, with no change to what they assertreferences/runner.mdwhat now travels and which import forms are followednode_modules, dot directories and symbolic links out of the directoryTesting
bun run typecheck bun run lint --max-warnings 0 bun run format:check bun run knip bun run testbun testgives1794 pass 0 fail. The other five give exit 0.Against a synthetic 303-file workspace whose flow reaches five files, with a deliberately invalid API key so the run stops at the launch call, which is after collection:
node dist/cli.js runner run src/flows/probe.flow.tscollects and reaches the launch, so the bundled compiler loads.dist/cli.jsgrows from 7.1 MB to 16.1 MB and now containscreateSourceFile.dist/qawolf runner run src/flows/probe.flow.tsdoes the same from the standalone binary, which is the artifact a bundled parser could have broken.pathswithoutbaseUrlwhen a project'stsconfig.jsonomits it. It comes from Bun's own tsconfig handling, not from this code, and the npm bundle does not print it.bun.lockand snapshots: 321.