Skip to content

fix: exempt sdk/ public barrels from R3 platforms-seam — unblock red main#987

Merged
thymikee merged 1 commit into
mainfrom
fix-sdk-layering
Jul 1, 2026
Merged

fix: exempt sdk/ public barrels from R3 platforms-seam — unblock red main#987
thymikee merged 1 commit into
mainfrom
fix-sdk-layering

Conversation

@thymikee

@thymikee thymikee commented Jul 1, 2026

Copy link
Copy Markdown
Member

Urgent — main is RED (Layering Guard failing)

Cause: a Phase-5 merge-order self-inconsistency. #984 added the R3 platforms-seam layering rule; #986 moved the public SDK entry barrels into src/sdk/. Neither PR saw the other (the sdk agent ran before the lint existed on main), so once both merged, scripts/layering/check.ts flags the sdk barrels' static platforms/ re-exports and the Layering Guard job fails on every PR.

Fix: exempt src/sdk/ from R3, alongside core/interactors/ and the daemon server. This is correct, not a waiver:

  • sdk/ are the package's public re-export barrels (§5.5 "sdk = re-export barrels only") — they legitimately expose platform symbols (android/manifest, install-source, android/logcat, …) as part of the public API.
  • They are off the CLI cold path (not imported by bin.ts/cli), so exempting them does not regress cold-start — the concern R3 protects.

Verified: node scripts/layering/check.ts → OK (635 files satisfy R1/R2/R3); oxfmt+oxlint clean. Docs-adjacent (one script file, ~9 lines).

Merge this to restore green main.

#984 added the R3 platforms-seam layering rule and #986 moved the public SDK
entry barrels into src/sdk/; the two merged mutually inconsistent, so the
Layering Guard is failing on main. sdk/ are public re-export barrels that
legitimately expose platform symbols and are off the CLI cold path (not imported
by bin.ts), so they are a correct R3 exemption alongside core/interactors and the
daemon server — not a cold-start regression.
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.4 MB 1.4 MB 0 B
JS gzip 451.9 kB 451.9 kB 0 B
npm tarball 549.9 kB 549.9 kB 0 B
npm unpacked 1.9 MB 1.9 MB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 28.7 ms 28.9 ms +0.2 ms
CLI --help 50.9 ms 50.6 ms -0.3 ms

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

@thymikee

thymikee commented Jul 1, 2026

Copy link
Copy Markdown
Member Author

Reviewed #987 against the merged #984/#986 state and plans/perfect-shape.md §5.5. I don't see actionable blockers: R3 was correctly red because src/sdk/** public barrels now re-export platform API symbols, and this PR exempts only that SDK public-barrel layer while leaving the core interactor / daemon server platform seams intact. I also checked that production non-sdk code is not importing src/sdk/**, so this does not put those platform exports on the CLI cold path. All checks are green, including Layering Guard, Typecheck, Unit Tests, Integration Tests, Fallow Code Quality, Lint & Format, Bundle Size, Smoke Tests, and CodeQL. Ready for maintainer merge to restore green main.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Jul 1, 2026
@thymikee thymikee merged commit 2e0879a into main Jul 1, 2026
21 checks passed
@thymikee thymikee deleted the fix-sdk-layering branch July 1, 2026 08:21
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-07-01 08:21 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