feat(raijin): generate icon modules - #886
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fabe596708
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11518dc3d2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: da2cd0a42f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 71e0fe78c3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 886e1c940c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 27c4d8e213
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e5aef28951
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c9aa261f59
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0c38e67b66
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
23b0b12
into
pre-v3/architecture-foundation
Task
How to verify
Main scenario
icons/*.svginputs, a valid project-ownedtemplate.tsthat emits SVGR-provided imports,replacements.ts, existing generated icon files, and unrelated source filesAction: run
yarn ui icons generate --nativefrom the icon workspaceExpected result: the command deterministically generates TypeScript icon modules and an ESM index, follows direct SVG file symlinks, removes stale generated modules, preserves unrelated files, and formats and lints the resulting source
Additional scenario
Context: a disposable PnP/ESM consumer installs the exact packaged
@atls/raijinartifact and begins with a generated module whose casing differs from the next outputAction: generate icons, lint the final output, and import
src/index.tsusing@atls/raijin/runtime-exec-argvExpected result: the exact TypeScript configuration modules load without the removed Webpack compiler, the generated filename adopts the requested casing, and the generated index resolves
.jsxspecifiers to generated.tsxmodules through the managed runtimeContext: a managed generated-output path is a symlink to an external file
Action: generate icons for that output name
Expected result: replacement fails before mutating generated output or the external symlink target
Context: the generated
srcboundary is a symlink or another non-directory entryAction: generate icons
Expected result: replacement fails before reading or mutating generated output or any external target
Context: the
iconsboundary is linked, or a matching direct*.svgentry is neither a regular file nor a file symlink to a regular fileAction: generate icons
Expected result: source discovery rejects the boundary or entry before transformation and output replacement
Proofs
9.39.5; the obsolete repository-only ESLint patch was removed583ec4f39b6d5b638758805d9c7d87382ab0884f3df812fc50099fb1de85d2cc; 70/70publishConfig.exportstargets present; no test or fixture artifacts packed1.3.27-atls, a valid project-ownedtemplate.ts,replacements.ts, a symlinked SVG source, a case-only generated-module rename, stale cleanup, unrelated-file preservation, final lint at 0 warnings and 0 errors, and generated-index import through@atls/raijin/runtime-exec-argvyarn raijin:checkpassed with 38 commands, 45 plugins, localization sync, 7 deterministic smoke cases, and both supported PnP/ESM consumers.yarn/releases/yarn.mjsshare SHA-256938836964f564aaf0f830f4f55b374b924a8ba289cfaf7016868300ce6e5bbcd