Skip to content

refactor: extract snapshot/ folder — Phase 5#953

Merged
thymikee merged 1 commit into
mainfrom
phase5-snapshot-folder
Jun 30, 2026
Merged

refactor: extract snapshot/ folder — Phase 5#953
thymikee merged 1 commit into
mainfrom
phase5-snapshot-folder

Conversation

@thymikee

Copy link
Copy Markdown
Member

What

Moves the AX-snapshot processing domain out of utils/ into a dedicated src/snapshot/ intent folder, per plans/perfect-shape.md §5.5 (utils/ hosts the AX-snapshot domain among 3 buried subsystems).

Files moved (9): snapshot-diff, snapshot-label-signals, snapshot-lines, snapshot-occlusion, snapshot-processing, snapshot-quality, snapshot-tree, snapshot-visibility, and mobile-snapshot-semantics.

Boundary

  • Included mobile-snapshot-semantics.ts — it processes SnapshotNode and depends on snapshot-tree, so it's squarely snapshot-domain.
  • Excluded android-helper-snapshot-presentation.ts — despite the name, it's the entry point of the android-helper-presentation/ subdir cluster (geometry/predicates/structural-noise/tree); it stays with that cluster.

How

  • All 9 moved as git renames; importers repointed via the resolve-based codemod (staying-utils deps → ../utils/, intra-snapshot → ./, kernel unchanged).
  • No public-export / rslib impact (none were package entries).
  • Updated fallow-baselines/health.json keys (incl. :high impact variants). Tests stay in their domain __tests__/ dirs with repointed imports.

Safety

typecheck ✅ · oxlint ✅ · format ✅ · build ✅ · fallow audit ✅ (no issues in 57 changed files) · targeted unit tests ✅ (26 passing). Behaviorless path codemod, 56 files. Independent of the merged #950/#951.

Move the AX-snapshot processing domain out of utils/ into a dedicated
src/snapshot/ intent folder, per plans/perfect-shape.md §5.5 (utils hosts
the AX-snapshot domain among 3 subsystems).

Files moved (9): snapshot-{diff,label-signals,lines,occlusion,processing,
quality,tree,visibility} + mobile-snapshot-semantics (processes SnapshotNode,
depends on snapshot-tree). android-helper-snapshot-presentation stays in
utils/ with its android-helper-presentation/ cluster.

- git renames; imports repointed via the resolve-based codemod
  (staying-utils -> ../utils/, intra-snapshot -> ./, kernel unchanged)
- no public-export/rslib impact; update fallow-baselines/health.json keys
- tests stay in their domain __tests__/ dirs, imports repointed

Behaviorless path codemod. typecheck/lint/format/build/tests green.
@github-actions

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.4 MB 1.4 MB 0 B
JS gzip 455.9 kB 455.9 kB 0 B
npm tarball 561.6 kB 561.6 kB 0 B
npm unpacked 2.0 MB 2.0 MB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 26.1 ms 26.5 ms +0.4 ms
CLI --help 46.7 ms 47.2 ms +0.5 ms

Top changed chunks: no changes in the largest emitted chunks.

@thymikee

Copy link
Copy Markdown
Member Author

Reviewed against plans/perfect-shape.md §5.5 and the ADR0003 boundary constraints. This is the expected AX-snapshot intent-folder extraction: the nine snapshot-domain files move under src/snapshot/, import changes are path-only, and the Android helper presentation cluster stays in utils/android-helper-presentation plus utils/android-helper-snapshot-presentation.ts as intended.\n\nChecks are green, and I don’t see a behavior or layering blocker. Marking ready-for-human.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Jun 30, 2026
@thymikee thymikee merged commit f124897 into main Jun 30, 2026
21 of 22 checks passed
@thymikee thymikee deleted the phase5-snapshot-folder branch June 30, 2026 11:31
@github-actions

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-30 11:31 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant