Repository navigation
Conversation
Prepare standalone and merged styles with their original filenames so local Sass requests and complete literal URLs retain their origin. Resolve resources in imported partials through Sass source maps while preserving one CSS module, shared-to-app order and existing style layers. Track existing and missing Sass candidates for bare and explicit relative requests so watch builds recover when modules are created or restored. Keep preparation internal and reuse an existing URL loader when supplied by another plugin. Cover multi-app assets, font mixins, native loader loading and watch recovery with unit and build tests. Document supported URL patterns and source-map limitations. BREAKING CHANGE: Relative resources in Sass partials now resolve from the partial instead of the entry stylesheet, including builds with mergeStyles disabled. Update paths that relied on the entry directory. Local Sass module requests now retain the declaring file's directory. Repeated variable assignments and configured module loads are preserved, and late @use/@forward directives are rejected. Correct configurations that previously depended on deduplication or directive reordering.
Replace html-rspack-tags-plugin with @rspackjs/plugin-html-tags and own HTML contracts in the shared types layer. Keep entrypoint options static and validate them once through ViewParser; let the tags plugin validate resolved config.html values. Cover metadata, static options and configuration forms at their owning layers, with real parser fixtures and focused build/type integrations. Validation: 229 suites / 2361 tests passed, followed by 45 parser tests and source/package type checks for 49 fixtures after fixture cleanup. Package build, typecheck, inventory, Prettier and diff checks passed. BREAKING CHANGE: Require Node.js >=22.12.0. Meta tags must be objects with attributes; string values and arrays containing strings are rejected. The files option in entrypoints now raises an error instead of being ignored. config.html values of null, an empty string or zero now fail instead of being skipped.
Keep asynchronous containers and offscreen/sandbox init and main unchanged.
Warn when an untyped Vanilla render returns a Promise or thenable.
BREAKING CHANGE: ViewRenderHandler no longer accepts Promise results and
ViewRenderReactComponent now requires a synchronous component instead of FC.
Move asynchronous loading to a separate function or a React effect and return
the initial UI synchronously. Type reusable components with
ViewRenderReactComponent<Props>, keep their inferred return type, or wrap an
existing synchronous React.FC with props => <Report {...props} />.
Recalculate automatic name, manifest version, and filename defaults from final configuration inputs while preserving explicit values and the single callback invocation. Let Safari default to MV2 when --mv2 is absent. Separate environment and plugin-list resolution, move workspace paths and plugin handlers into dedicated modules, remove unused string helpers, and document CLI ownership in an English README. Add real-c12 and CLI build regression coverage, preserve explicit manifest targets in integration fixtures, and update default app expectations. BREAKING CHANGE: The default app changes from "myapp" to "addon", affecting the default manifest name, output directory, APP environment variable, and multi-workspace application path. Set app: "myapp" or pass --app myapp to retain the previous layout, or rename the application directory to addon.
Invalidate the merged raw cache on raw() and merge generated commands into a fresh object to preserve the cached raw values. Cover MV2 and MV3 updates after reads, clearing internal commands, and a real CLI build using a manifest callback.
Export named manifest and browser-specific types from adnbn. Keep compilation dependency types internal and use ManifestBase<Manifest> in the factory and Rspack plugin without changing manifest generation or watch behavior. Rename the private Chrome manifest base alias to distinguish it from the builder. Verify public exports and builder boundaries against source and package declarations. BREAKING CHANGE: ManifestBuilder no longer exposes setDependencies(), including configuration callbacks and plugin handlers. Compilation dependency injection is reserved for framework internals.
…points Discover options, newtab, history and bookmarks only as <type>.<ext>, <name>.<type>.<ext>, <type>/index.<ext> and <name>.<type>/index.<ext> in each scanned app or shared source directory. Declare this policy through allowGroupedDirectories(), independently of allowMultiple(). Preserve grouping and nested fallback discovery for other entrypoints. Files in former locations remain available as ordinary imports. Keep build filters, workspace precedence and explicit plugin entrypoints unchanged. Cover the policy in the base finder, Options, override and Popup tests, and add a build integration for adjacent modules, templates, styles and resources. Update the integration test inventory documentation. BREAKING CHANGE: Automatic workspace discovery for options, newtab, history and bookmarks no longer scans grouping directories such as newtabs/ and histories/, or searches for additional candidates inside <type>/. Direct <type>/index.<ext> entrypoints remain supported. Ignored nested layouts are <type>/<type>.<ext>, <type>/<name>.<type>.<ext>, <type>/<type>/index.<ext> and <type>/<name>.<type>/index.<ext>. The same four candidate forms under newtabs/ for newtab and histories/ for history are also ignored. Move options/options.tsx to options/index.tsx, options/account.options.tsx to account.options.tsx, and newtabs/main.newtab.tsx to main.newtab.tsx. Named directory variants such as main.newtab/index.tsx remain supported. All paths are relative to the scanned source directory. Explicitly supplied plugin entrypoints are unaffected.
Check direct instance lookup in BaseTransport while preserving object identity, context checks, optional manager lookup, and remote proxy behavior. Add runtime regressions and concrete source/package type assertions for direct getters and registration providers. Document the local Relay exception. BREAKING CHANGE: Direct getters now throw synchronously when an instance is missing instead of returning undefined. Callers that checked for undefined must handle the exception.
Use forward slashes for module alias keys and generated TypeScript paths while keeping filesystem targets native. Cover nested paths and relative prefixes, and include stderr in CLI build failures.
Add the tooltip option for literal text and locale keys. Preserve View title behavior and the initial action title fallback. Resolve localized tooltips through browser i18n when changing popups, preserving the current tooltip when the option is omitted and allowing explicit empty values. Update generated runtime metadata, public types, examples, and focused parser, runtime, build, and browser coverage. Clarify ManifestPopup.title as manifest default_title data without referring to Popup configuration. BREAKING CHANGE: Popup title now controls only the document and View props. Move toolbar tooltip values to tooltip and read getPopups() metadata from tooltip instead of title. ManifestPopup.title remains unchanged.
Update Browser to 0.12.0, Storage to 0.8.3 and Inject Script to 0.5.1 so they share one Browser dependency. Align Chrome types on 0.3.5.
Use label for the native sidebar UI and resolve locale keys through browser i18n when switching. Apply configured icons where supported, preserve omitted values and propagate native errors. Keep ManifestSidebar.title as manifest data and emit only default_path for Chrome side_panel. Update types, documentation and parser, runtime, build and browser checks. BREAKING CHANGE: Sidebar title now controls only the HTML document and render props. Use label for the browser sidebar title and tooltip. getSidebars() entries expose label instead of title. changeSidebar() also applies the selected sidebar icon when the browser supports it.
Update vulnerable dependencies, remove the unused Rspack CLI, and pin release-it's undici to a patched version. Declare memfs explicitly for the existing bundler tests. Give the isolated styles watch fixture its own package.json so polling does not scan shared temporary directories. Keep all timeouts unchanged. Validation: npm run check passes on Node 22 and 24 (2490 tests each). The dependency audit is reduced from 45 findings to 8, with no critical findings. Deferred Zod, basic-ftp, and tsup esbuild changes are excluded.
Move utility-types to dependencies because the public declarations import it. Keep the existing version so clean consumer projects receive complete types without installing an undeclared development dependency. Validated strict consumer typechecks from the packed package on Node 22 and 24, including container callback inference with skipLibCheck disabled.
Normalize root-relative filesystem paths before generating entrypoint imports and preserve JavaScript file extensions for ESM resolution. Resolve React packages from the project root and scheduler from react-dom, including ancestor and nested installations, while keeping React optional. Cover relative and absolute CLI/API roots, consecutive projects, watch updates, and JavaScript index entrypoints without increasing timeouts. Validated 2508 non-browser tests, builds and fixture typechecks on Node 22 and 24. Clean tarball installations pass 26 build scenarios per version, strict declaration checks, and separate React rendering checks in Chrome.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.