Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 80b46803d2a3c883aa6c2c39a7dc7387c9c79a0d
parent a41c7c627651e29c936ac61f5c5f3a8dc6664a5b
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Tue, 29 Sep 2026 22:12:55 -0400

umtool: outputFileTracingExcludes keeps the e2e fixture, .next-e2e and env files out of every route's trace; the ignoreIssue stays, with its measured reason

The second line after cacheFile, measured on its own: with the old clip-audio
route it takes that trace from 2,167 files to 463. The "whole project was
traced" warning stays silenced (path + title only): 66 of 68 routes trace
umtool's 361 files outside dot-directories through path and fs calls on env,
home-directory and parameter values (opting out all 319 path ops in 53 modules
cleans 49 routes; the rest are fs calls), and the warning names the same file
for that walk as for one that reaches a dot-directory. The comment says so; the
dot-directory case is excluded here and checked after the build by
scripts/next-build-trace.test.mjs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Diffstat:
Mumtool/next.config.ts | 32+++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)

diff --git a/umtool/next.config.ts b/umtool/next.config.ts @@ -18,19 +18,37 @@ const nextConfig: NextConfig = { // fail the whole module graph. Every page importing lib/projects then 500s // with "Can't resolve 'cbor-x'", which names a package nothing here uses. serverExternalPackages: ["lmdb"], + // No route's trace may list the e2e fixture (.e2e-song, where + // e2e/fixtures/make-fixture.mjs links the song data), the e2e server's own + // build directory (.next-e2e) or an env file: none is a run-time input. The + // clip-audio route's trace listed 1,704 such files (plans/release-15.md, slice + // UT). That was fixed at the call (lib/paths.mjs `cacheFile`); this is the + // second line, measured on its own: with the old route it takes the trace + // back to what the sibling routes list. scripts/next-build-trace.test.mjs + // reads the last build's traces back. + outputFileTracingExcludes: { + "/*": ["./.e2e-song/**/*", "./.next-e2e/**/*", "./.env*"], + }, turbopack: { // Same reasoning as editor/next.config.ts: Turbopack infers the workspace // root by walking up for the outermost lockfile, and a stray pnpm-lock.yaml // above the checkout silently relocates it. Nothing here lives above the // monorepo root, so pinning it costs nothing. root: path.join(__dirname, ".."), - // Suppress the harmless "whole project was traced unintentionally" NFT - // warning, exactly as editor/next.config.ts does. It fires because the - // server genuinely does runtime-dynamic fs reads it cannot statically bound - // -- lib/paths.ts resolves SONG_DATA from an env var and the routes read - // wav48/<video>.wav by name. We don't use `output: 'standalone'`, so the - // .nft.json traces are never consumed and the over-tracing is cosmetic. - // Scoped to this exact issue (path + title) so other warnings still surface. + // Silences the "whole project was traced unintentionally" warning, and only + // it (path + title), for one measured reason: 66 of the 68 routes trace + // umtool's own tree, its 361 files outside dot-directories, next.config.ts + // (the file the warning names) among them. A path or fs call on a value + // Turbopack cannot know (an env var, the home directory, a parameter) is a + // pattern over the project, and umtool has hundreds. Opting out every path + // op in the three path modules cleaned 31 routes; opting out all 319 in the + // 53 modules that have one cleaned 49, and the rest come through fs calls + // (lib/report/snapshots.mjs, among others). That walk skips dot-directories + // and does not enter symlinks, and the traces are not consumed while + // `output: "standalone"` stays off. The warning cannot tell that walk from + // one that does reach a dot-directory (both name next.config.ts), so that + // case is excluded above and checked after the build by + // scripts/next-build-trace.test.mjs instead. ignoreIssue: [ { path: "**/next.config.ts",