@@ -61,6 +61,12 @@ references do not count. Dynamic/ambiguous imports are not presented as exact us
6161Zero means no references were enumerated, not proof of no consumers. Overrides, inactive
6262variants and runtime conditions can prevent a referenced component from changing visually.
6363
64+ Changed sources are analyzed before unchanged consumers. Once a source has flagged evidence,
65+ repeated downstream expansion can be omitted while its resolved usage inventory is retained.
66+ The report records the number of unchanged files omitted; categories describe retained evidence.
67+ Changed files, configured documentation inputs and infrastructure are still inspected. CSS/token
68+ sources retain a changed consumer example before further repeated expansion is omitted.
69+
6470Schema 3 readers must handle either literal values or a summary object containing
6571` $truncated ` , ` preview ` , ` sha256 ` , ` hashAlgorithm ` , ` originalBytes ` , ` previewBytes ` and ` omittedBytes ` .
6672` hashAlgorithm: sha256-merkle-v1 ` hashes the complete semantic tree, including order and types,
@@ -102,6 +108,7 @@ scripts/design-diff/
102108 refactors.ts Supported literal/refactor normalization
103109 mutations.ts Referenced collection/property writes
104110 finite.ts Static finite keys for computed environment reads
111+ environment.ts Literal createEnv schema field comparison
105112 resolve.ts Bounded expression and import resolution
106113 inputs.ts Configured file-loaded documentation inputs
107114 infrastructure.ts Rendering lockfile dependency closure
@@ -167,12 +174,16 @@ because its name happens to be `cn` or `clsx`.
167174Dependency propagation resolves named/default imports, aliases and static namespace members
168175through named/star re-exports and import-then-export indexes to the defining module. A
169176Button edit does not implicate a file merely because it imports an unrelated Icon from the
170- same index. Changed top-level bindings and local dependents narrow the first propagation
171- step and usage counts within a multi-export file. Both revisions are considered, including
177+ same index. Changed top-level bindings and local dependents narrow the propagation
178+ steps and usage counts within a multi-export file. Unresolved imports keep immediate module
179+ edges instead of bypassing intermediate binding checks with every transitive dependency.
180+ Literal ` createEnv ` schemas can narrow the first hop to changed keys, including keys from
181+ static feature-definition loops. Changed helper implementations, options, computed schemas
182+ and escaping collections retain conservative propagation. Both revisions are considered, including
172183redirected re-exports. The module graph identifies candidates only. Actual findings require
173184changed values, guards, referenced implementations or an explicitly unresolved imported input.
174185Unrelated imports and dead re-exports cannot flag an unchanged expression. Object properties,
175- destructured parameter defaults, and helper return paths are traced separately. Small immutable
186+ destructured parameter defaults, and selected helper return properties/guards are traced separately. Small immutable
176187local literals are normalized before expression budgets, preserving supported constant hoists.
177188The exact ` Object.entries(...).reduce ` record-map idiom is normalized to ` Object.fromEntries `
178189only with an empty accumulator, unchanged key and no accumulator reads in the mapped value. Unknown
@@ -286,7 +297,7 @@ bun run check:design-diff-types
286297bun run check:api-validation
287298```
288299
289- Root script -test discovery includes every suite in ` tests/ ` . The fixtures exercise visual
300+ Script -test discovery through ` scripts/vitest.config.ts ` includes every suite in ` tests/ ` . The fixtures exercise visual
290301categories, noops, movement, shared imports/themes, source order, documents/native rendering,
291302Git divergence/renames/deletions/binaries/unusual names/missing history, bounded evaluation,
292303deterministic output, CLI failure status and non-execution of proposed code/plugins.
@@ -357,7 +368,10 @@ Fetch manifest commit objects beforehand; missing history fails explicitly. The
357368the frozen comparison commits and GitHub file sets. Cache identity includes engine SHA, trusted
358369config, lockfile, runtime and comparison commits, with report-content verification before reuse.
359370It awaits native Bun process exit status and records per-comparison elapsed time and peak RSS
360- separately from deterministic reports. Failed runs retain bounded stderr diagnostics in a
371+ separately from deterministic reports. The default comparison deadline is 900 seconds.
372+ For research, ` --timeout-seconds ` accepts 1–3600 seconds and enters the cache identity;
373+ it does not change the production workflow timeout. Report comparisons exceeding 900 seconds
374+ separately because they cannot fit that workflow budget. Failed runs retain bounded stderr diagnostics in a
361375separate file, without printing source findings to logs.
362376` /usr/bin/time ` is required (macOS or Linux); source findings are not printed. Review original
363377and holdout rates separately, and inspect every disagreement against the source label.
0 commit comments