feat: release version#3292
Conversation
## What's the purpose of this pull request? Build our default image loader. ## How it works? - When the FastStore image component is used, the `faststoreLoader` is used. - When the Next image component is used directly, the `customImageLoader` is used. - Both have the same behavior when handling images from VTEX (from the file manager/cms and product images) -- they add to the URL the info regarding size, quality and aspect, since those VTEX services already handles optimizations. - The difference between those loaders is regarding external images -- the one used for Next images uses the Next optimizations, and the FastStore one doesn't. It won't be necessary to use a feature flag like `enableVtexAssetsLoader`. ## How to test it? <!--- Describe the steps with bullet points. Is there any external link that can be used to better test it or an example? ---> ### Starters Deploy Preview PR: vtex-sites/faststoreqa.store#881 ## References - [Jira task](https://vtex-dev.atlassian.net/browse/SFS-2878) - [Slack thread](https://vtex.slack.com/archives/C03L3CRCDC4/p1761334946034969)
## What's the purpose of this pull request? Atts.
## What's the purpose of this pull request? This PR fixes a visual bug in the TextareaField component where long text would appear underneath the floating label during scroll, making it difficult to read. The issue was identified during the review of [PR #2705](#2705 (review)). Additionally, comprehensive Storybook documentation was added to showcase all TextareaField variations and use cases. https://github.com/user-attachments/assets/a86cd4df-e286-40f4-82b0-271a8bc66a26 ## How it works? **Bug Fix:** - Added `--fs-textarea-field-label-background-color` CSS variable to `packages/ui/src/components/molecules/TextareaField/styles.scss` - Set default value to neutral-0 (white) to prevent text from showing through the label - When the textarea content is long and the user scrolls, the label now has an opaque background, preventing text overlap ## How to test it? **Test the scroll bug fix:** From the project root: ```bash pnpm --filter "@faststore/storybook" dev ``` Or navigate to the storybook package: ```bash cd packages/storybook pnpm dev ``` Then: 1. Open http://localhost:6006 in your browser 2. Navigate to **"TextareaField"** → **"LargeText"** story 3. Scroll inside the textarea content 4. Verify that the text no longer appears underneath the label ## References - **Related Issue:** [PR #2705 - TextareaField label overlap issue identified](#2705 (review)) - **Task:** [SFS-2385 ](https://vtex-dev.atlassian.net/browse/SFS-2385)
## What's the purpose of this pull request? Revert changes from - #2988 since the approach to filter shopper changes to use text field instead of selected filter in the drawer. ## details remove purchaseAgentId filter and related components from `MyAccountListOrders`. This update removes the purchaseAgentId filter and its associated components from the MyAccountListOrders section. The changes include: - Deleting the MyAccountFilterFacetPlacedBy component and its styles. - Adjusting the MyAccountListOrders and MyAccountSelectedTags components to eliminate references to purchaseAgentId. - Cleaning up related styles and imports to streamline the codebase. These modifications aim to simplify the order filtering process and improve overall maintainability.
## What's the purpose of this pull request? From a current Next.js's known issue ([discussion#44013](vercel/next.js#44013)), these changes aim to add an experimental custom hook to handle scroll restoration when navigating back from PDPs to PLPs. https://github.com/user-attachments/assets/9a452081-4c65-4a83-8c16-9775f97d226d Along with this experimental hook, some adjustments needed to be made to correct the behavior of related components, such as `Sentinel`. While the Next.js experimental `scrollRestoration` flag is not working as it should, we are proposing this FastStore's experimental scroll restoration alternative. ## How it works? While navigating through PLPs and loading more pages, when users navigate to a PDP and navigate back the scroll should be restored to the last position before the navigation. ### Starters Deploy Preview vtex-sites/faststoreqa.store#878 ## References #2054
## What's the purpose of this pull request? Merge the changes from main
## What's the purpose of this pull request? By using the direction property users will be able to use RTL or LTR layouts.
## What's the purpose of this pull request? With these changes, if merchants remove the footer logo the entire footer component will not be hid anymore, it will throw a console error but the component should be displayed with no logo.
#3077) ## What's the purpose of this pull request? This PR fixes the `border-radius` of the Slider thumb in Firefox. The current CSS rule for Mozilla uses an inexistent variable, making the browser render a square instead of a circle: <img width="1028" height="181" alt="image" src="https://github.com/user-attachments/assets/50c08d79-a6a9-4d31-b2e7-5ef9e287080f" /> ## How it works? The `--fs-slider-thumb-radius` variable is replaced by `--fs-slider-thumb-border-radius`, the one that is defined in the default thumb variables. ## How to test it? - Use the `Local Install Instructions` from the [CodeSandbox CI](https://ci.codesandbox.io/status/vtex/faststore/pr/3077) to add this version in the `package.json` of a store. - Import the `Slider` atom (and styles) in a component following the docs: https://developers.vtex.com/docs/guides/faststore/atoms-slider - Run the store in development mode and browse it in Mozilla Firefox. ### Starters Deploy Preview I'm unable to generate a preview link but here's a screenshot from localhost: <img width="1287" height="617" alt="image" src="https://github.com/user-attachments/assets/f0a5a5e9-d657-41db-9415-303b5d17fefd" /> ## Checklist **PR Title and Commit Messages** - [x] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. _(No permissions. It's a bug though.)_ **Dependencies** - [N/A] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [x] PR description - [N/A] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request)
) ## What's the purpose of this pull request? Adds a new "Pending Approval" filter to the MyAccount orders page, allowing users to quickly filter orders that require their approval. ## How it works? - New toggle filter: Added "Pending Approval" as the first filter option in the orders filter slider - Toggle switch: Users can turn on/off the filter to show only pending approval orders - URL integration: Filter state is reflected in the URL (?pendingApproval=true) - Selected tag: When active, shows "Pending my approval" tag below the search bar ## How to test it? - Go to /account/orders - Open filter slider and verify "Pending Approval" is the first option - Toggle the switch and click "Apply" - Check URL - should include ?pendingApproval=true - Verify tag appears - "Pending my approval" tag should show below search bar - Test removal - click "×" on tag or "Clear All" to remove filter - Test direct URL - navigate to /account/orders?pendingApproval=true and verify filter is active ## Starter deploy preview vtex-sites/b2bfaststoredev.store#358 ## References [SFS-2618](https://vtex-dev.atlassian.net/browse/SFS-2618) | List | Filter | | - | - | |  |  | [SFS-2618]: https://vtex-dev.atlassian.net/browse/SFS-2618?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [SFS-2618]: https://vtex-dev.atlassian.net/browse/SFS-2618?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Artur Santiago <artur.santiago@cubos.io>
) ## What's the purpose of this pull request? Fix a bug that occurs when regionalized and `isSessionReady` is sent in the' validateSession' and' validateCart' mutations. ## How does it work? It removes the `isSessionReady` from the session sent to the `setRegion` method. <img width="1909" height="916" alt="Screenshot 2025-11-11 at 16 22 55" src="https://github.com/user-attachments/assets/468cc987-a2ee-432f-b306-399bfd32e891" />
## What's the purpose of this pull request? This PR aims to fix the build in the dev branch.
## What's the purpose of this pull request? With these changes, a loading skeleton will be displayed when product price is still being validated, preventing product price flickering on PDP. ## How to test it? ### Starters Deploy Preview
## What's the purpose of this pull request? Allow svg files in public folder, avoid it getting deleted/overwritten when generating .faststore ## How it works? Add it to the allow list. ## How to test it? Create a svg file or modify an existing svg file, it should be copied correctly to the `/.faststore/public` when running the build command. You can use this PR to test: vtex-sites/faststoreqa.store#887, I've added a new svg file and changed an existing one, before it was being deleted/overwritten. <img width="287" height="420" alt="Screenshot 2025-11-20 at 09 57 19" src="https://github.com/user-attachments/assets/7b01d806-bdf9-4c3b-a385-32ea11ab2518" /> Nothing else should change. ### Starters Deploy Preview - https://storeframework-cm652ufll028lmgv665a6xv0g-h0max2o2h.b.vtex.app/ ## References - [Jira task](https://vtex-dev.atlassian.net/browse/SO-559)
## What's the purpose of this pull request? This PR considers the session when deducing the changes to the orderForm done externally. ## What it aims to solve The current FastStore shows a competing nature when dealing with the same cart on two different devices (E.g. 2 browsers, Chrome and Firefox). ### How to reproduce the problem - Open your store in Chrome and Firefox - Make note of the checkout.vtex.com cookie value of Chrome and view the content of the orderForm using a client like Postman - Paste the value of the cookie to the checkout cookie of Firefox - Now you should have the same orderForm in Chrome, Firefox and Postman - Add an item to the cart from Chrome - Without going to Firefox, verify that the item is present in the orderForm using Postman - Now go to Firefox, but you will not see the item (Expected: the item should be present in the cart, Actual: the browser cart in Firefox will override the items of the real orderForm object) - Open Postman, and you will notice that the item is not present in the orderForm - Now go back to Chrome, and it will add back the item to the orderForm - Open Postman, and you will notice that the item is present in the orderForm ## How it works? We include the session ID to the MD5 hash, so that when the store is used in a different browser with the same orderForm, the two hashes are different. The two browsers should respect the changes performed by each other. ## How to test it? - First verify that the existing behavior of the mutation `validateCart` is as expected. - Follow the steps under **How to reproduce the problem**, and verify that the expected behavior is observed. ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References <!--- Spread the knowledge: is there any content you used to create this PR that is worth sharing? ---> <!--- Extra tip: adding references to related issues or mentioning people important to this PR may be good for the documentation and reviewing process ---> ## Checklist <em>You may erase this after checking them all 😉</em> **PR Title and Commit Messages** - [ ] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. **Dependencies** - [ ] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [ ] PR description - [ ] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request)
## What's the purpose of this pull request? This PR aims to fix the source code to show `undefined` `searchTerm`. <img width="916" height="811" alt="Screenshot 2025-11-20 at 19 01 42" src="https://github.com/user-attachments/assets/b07e44a4-9e37-45e3-9712-6ab19b1af758" /> ## How it works? 1. The source code can't access the searchTerm from the build time; thus, this page uses the default <img width="1899" height="656" alt="Screenshot 2025-11-20 at 18 42 43" src="https://github.com/user-attachments/assets/697d1b4a-e5cb-4325-a5a1-3ba5d429b7b3" /> 2. The final code (runtime code after hydration, you can see the element tab in the devtools), can access the dynamic search term and uses it. <img width="1570" height="1049" alt="Screenshot 2025-11-20 at 18 42 05" src="https://github.com/user-attachments/assets/04e0a613-950f-4416-9200-dcc239326b41" /> ## How to test it? You can run `pnpm build && pnpm serve` and view the source code (right-click> Source Code). Additionally, you can view the final code using the Element tab in the DevTools.
## What's the purpose of this pull request? <!--- Considering the context, what is the problem we'll solve? Where in VTEX's big picture our issue fits in? Write a tweet about the context and the problem itself. ---> ## How it works? <!--- Tell us the role of the new feature, or component, in its context. Provide details about what you have implemented and screenshots if applicable. ---> ## How to test it? <!--- Describe the steps with bullet points. Is there any external link that can be used to better test it or an example? ---> ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References <!--- Spread the knowledge: is there any content you used to create this PR that is worth sharing? ---> <!--- Extra tip: adding references to related issues or mentioning people important to this PR may be good for the documentation and reviewing process ---> ## Checklist <em>You may erase this after checking them all 😉</em> **PR Title and Commit Messages** - [ ] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. **Dependencies** - [ ] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [ ] PR description - [ ] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Added CSV file upload and parsing for bulk product ordering * Introduced Quick Order Drawer component for managing multiple products * Added Dropzone and FileUploadCard components for file uploads * Added search ID tracking for improved search analytics * Integrated Shopping Assistant third-party feature * **Bug Fixes** * Fixed `after` attribute type handling in pagination <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Lucas Feijó <lucas.portela@vtex.com> Co-authored-by: Mateus Pontes <mateuspo10@gmail.com> Co-authored-by: Larícia Mota <laricia.mota@vtex.com.br> Co-authored-by: Matheus P. Silva <cout.matheusps@gmail.com> Co-authored-by: Leandro Rodrigues <leandro.swf@gmail.com> Co-authored-by: vtexgithubbot <vtexgithubbot@github.com> Co-authored-by: Luiz Falcão <39093175+llfalcao@users.noreply.github.com> Co-authored-by: Artur Santiago <artur.santiago@cubos.io> Co-authored-by: Sahan Jayawardana <sahan@clouda.io> Co-authored-by: Matheus Martins <mathews_2010@outlook.com> Co-authored-by: renatomaurovtex <167437775+renatomaurovtex@users.noreply.github.com> Co-authored-by: Leandro Rodrigues <leandro.rodrigues@vtex.com> Co-authored-by: Fanny Chien <fanny.chien@vtex.com> Co-authored-by: Arthur Andrade <arthurfelandrade@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Thiago Pereira <thiago.pereira@vtex.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Giuliana Rigaud <62848434+giurigaud@users.noreply.github.com> Co-authored-by: renato <renato.neto@cubos.io> Co-authored-by: Bruna Santos <brunassdev@gmail.com> Co-authored-by: BrunaCubos <104789782+BrunaCubos@users.noreply.github.com> Co-authored-by: Ícaro Oliveira <icarovinici@gmail.com> Co-authored-by: Bruna Santos <bruna.santos@cubos.io> Co-authored-by: Everton Ataide <everton.ataide@vtex.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
## What's the purpose of this pull request? - Introduced a new Shopping Assistant component schema in `schema.json`. - Updated references in `cms_content_type__globalsections.jsonc` to include the Shopping Assistant. - Created a new JSONC file for the Shopping Assistant component with its properties and description. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Shopping Assistant component is now available in the CMS for page editors to use and configure. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What's the purpose of this pull request? Updates dev with latest main (fixes) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **Bug Fixes** * Improved city and postal code display logic in region selector, enabling more flexible location information rendering. * **New Features** * Added postal code-based support for delivery promise features and regional content caching. * **Chores** * Updated internal schema definitions and cache management logic. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Lucas Feijó <lucas.portela@vtex.com> Co-authored-by: Mateus Pontes <mateuspo10@gmail.com> Co-authored-by: Eduardo Formiga <eduardo.formiga@gmail.com> Co-authored-by: Larícia Mota <laricia.mota@vtex.com.br> Co-authored-by: Matheus P. Silva <cout.matheusps@gmail.com> Co-authored-by: Leandro Rodrigues <leandro.swf@gmail.com> Co-authored-by: vtexgithubbot <vtexgithubbot@github.com> Co-authored-by: Luiz Falcão <39093175+llfalcao@users.noreply.github.com> Co-authored-by: Artur Santiago <artur.santiago@cubos.io> Co-authored-by: Sahan Jayawardana <sahan@clouda.io> Co-authored-by: Matheus Martins <mathews_2010@outlook.com> Co-authored-by: renatomaurovtex <167437775+renatomaurovtex@users.noreply.github.com> Co-authored-by: Leandro Rodrigues <leandro.rodrigues@vtex.com> Co-authored-by: Arthur Andrade <arthurfelandrade@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Thiago Pereira <thiago.pereira@vtex.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Giuliana Rigaud <62848434+giurigaud@users.noreply.github.com> Co-authored-by: renato <renato.neto@cubos.io> Co-authored-by: Bruna Santos <brunassdev@gmail.com> Co-authored-by: BrunaCubos <104789782+BrunaCubos@users.noreply.github.com> Co-authored-by: Ícaro Oliveira <icarovinici@gmail.com> Co-authored-by: Bruna Santos <bruna.santos@cubos.io> Co-authored-by: Everton Ataide <everton.ataide@vtex.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Otavio Moreira Meirelles <otavio.meirelles@vtex.com>
…3267) ## What's the purpose of this pull request? fix: Prevent IDB writes before store hydration completes ## How it works? - Introduced a hydration flag to ensure that IDB writes are blocked until the initial read from IndexedDB is complete. This prevents potential data overwrites from early store updates. - Modified the store initialization to read from IDB immediately without debounce, ensuring the store is hydrated before any other operations can occur. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed data persistence to prevent stored information from being overwritten during app initialization, ensuring data integrity and reliability on startup. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…3220) ## What's the purpose of this pull request? This PR aims to make possible the use of isGift from the orderForm item instead of price = 0 when dealing with gift.For that, you should use the flag `useIsGiftFromOrderForm` as true. - When true, use the orderForm's isGift field to detect gift items. - When false or unset, use the legacy behavior (item.price === 0). ## How it works? - Introduced an optional `isGift` field in the `StoreOffer` type to indicate if an offer is a gift. - Updated GraphQL schema and resolvers to handle the new `isGift` field. - Modified the cart validation mutation to include the `isGift` property for cart items. - Adjusted the `isGift` logic in the cart SDK to utilize the new field when applicable. (see the gift icon and the free tag in the minicart) | Flag false / default | flag true | |-|-| |<img width="1916" height="923" alt="Screenshot 2026-02-23 at 18 09 09" src="https://github.com/user-attachments/assets/64191213-5a83-490f-9263-ce86cf96d440" />|<img width="1916" height="920" alt="Screenshot 2026-02-23 at 18 19 48" src="https://github.com/user-attachments/assets/e3a544fe-09dd-4e54-87b1-3b15c9c17bd3" />| ## How to test it? ... ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References <!--- Spread the knowledge: is there any content you used to create this PR that is worth sharing? ---> <!--- Extra tip: adding references to related issues or mentioning people important to this PR may be good for the documentation and reviewing process ---> ## Checklist <em>You may erase this after checking them all 😉</em> **PR Title and Commit Messages** - [ ] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. **Dependencies** - [ ] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [ ] PR description - [ ] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Cart items now include gift detection and an isGift flag to mark promotional/complimentary items. * An experimental configuration option controls how gifts are detected (store-provided flag vs. price-based). * Checkout totals and item lists account for gifts, enabling proper splitting between gifts and regular items. * Cart state exposes a flag to support conditional item-splitting behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What's the purpose of this pull request? - Enhance session management with logout handling and validation tracking ## How it works? - Added SESSION_READY_KEY to manage session readiness state after logout. - Updated checkAndReloadIfReturnedFromLogout to set session readiness on reload. - Modified createValidationStore to include hasValidatedStore for tracking validation completion. - Adjusted useSession and useSessionReady hooks to utilize hasValidated for improved session state management, addressing React 18 batching issues. ## How to test it? using b2b store url. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved session state management to ensure proper tracking after user logout and return. * Enhanced session readiness detection for more reliable authentication handling. * **Refactor** * Optimized internal session validation logic for better performance and state consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What's the purpose of this pull request? Migrate FastStore package preview pipeline away from CodeSandbox CI, which is being discontinued. CodeSandbox CI will be shut down on April 15, 2026, which directly impacts our current PR preview flow. Without a replacement, we lose the ability to generate installable preview builds for testing changes in real stores. This PR introduces pkg.pr.new as a replacement, ensuring continuity of the preview pipeline with a more reliable and simpler approach. ## How it works? This PR adds a new CI workflow that generates installable package previews using pkg.pr.new for every PR. Instead of relying on CodeSandbox, we now: - Generate a preview package URL directly from the PR - Allow installation via yarn/npm using a URL - Support commit-based versions for more granular validation Task: https://vtex-dev.atlassian.net/jira/software/c/projects/SFS/boards/1051?selectedIssue=SFS-3102
…3263) - Simplified conditions for refreshing tokens by consolidating checks for expired tokens and the presence of refresh tokens. - Removed redundant checks to streamline the authentication flow. ## What's the purpose of this pull request? <!--- Considering the context, what is the problem we'll solve? Where in VTEX's big picture our issue fits in? Write a tweet about the context and the problem itself. ---> ## How it works? <!--- Tell us the role of the new feature, or component, in its context. Provide details about what you have implemented and screenshots if applicable. ---> ## How to test it? <!--- Describe the steps with bullet points. Is there any external link that can be used to better test it or an example? ---> ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References <!--- Spread the knowledge: is there any content you used to create this PR that is worth sharing? ---> <!--- Extra tip: adding references to related issues or mentioning people important to this PR may be good for the documentation and reviewing process ---> ## Checklist <em>You may erase this after checking them all 😉</em> **PR Title and Commit Messages** - [ ] PR title and commit messages follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification - Available prefixes: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `ci` and `test` **PR Description** - [ ] Added a label according to the PR goal - `breaking change`, `bug`, `contributing`, `performance`, `documentation`.. **Dependencies** - [ ] Committed the `pnpm-lock.yaml` file when there were changes to the packages **Documentation** - [ ] PR description - [ ] For documentation changes, ping `@Mariana-Caetano` to review and update (Or submit a doc request) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Centralized and simplified session validation and refresh decision logic for more consistent token handling. * **Bug Fixes / Behavior Change** * On refresh failure, users are immediately logged out and session data cleared to avoid stale session states; refresh attempts are no longer silently postponed. * **New Features** * Added a helper to determine when a validation request must force a token refresh. * **Tests** * New unit tests cover the refresh-decision helper across expected scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
#3285) …environments - Introduced a check to bypass token refresh logic when running in local environments (localhost or 127.0.0.1). - Updated GraphQL API handler and session validation functions to ensure consistent behavior across environments. - This change prevents unnecessary refresh attempts during local development, improving the developer experience. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Session validation now detects local development environments (localhost/127.0.0.1) and adapts behavior to simplify local authentication handling and improve developer workflow. * **Bug Fixes** * Refined token refresh logic to skip refresh enforcement when running locally, preventing unnecessary 401-driven refresh flows during development. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…-3144 (#3286) - Added a new script "release:v3" in package.json for versioning and publishing with a dist-tag of v3-latest. - Updated GitHub Actions workflow to include a new job for publishing on the 3.x branch. ## What's the purpose of this pull request? ### `release.yml` - **Linha 9** — `3.x` adicionado ao trigger de branches - **Linhas 75-77** — Step `Publish (3.x)` com condição `if: github.ref_name == '3.x'` apontando para `pnpm release:v3` ### `package.json` - **Linha 22** — Script `release:v3` com `lerna version --conventional-commits --yes && lerna publish from-git --dist-tag=v3-latest --yes` - Sem `--conventional-graduate` (correto, pois no `3.x` não haverá prereleases para graduar) - Sem `--conventional-prerelease` (correto, pois serão releases estáveis da v3) - Com `--dist-tag=v3-latest` (correto, para não sobrescrever a tag `latest` que será da v4) Os hotfixes da v3 publicados a partir do branch `3.x` serão instaláveis via `npm install @faststore/core@v3-latest` e não vão interferir com a tag `latest` da v4. Nota importante: não usem pnpm release (o mesmo da main) no branch 3.x, porque esse comando usa --conventional-graduate que é para graduar prereleases. No 3.x, hotfixes serão commits normais (fix:, feat:) e o lerna version --conventional-commits (sem graduate) é o adequado — ele vai gerar 3.99.1, 3.99.2, etc., baseado nos commits.
## What's the purpose of this pull request? Fix the base CMS schema to ensure that components will be created **without** the `$componentKey` and `$componentTitle` keys as properties. ## How to test it? The latest FS schema on Schema Registry (`vtex.faststore@3.99.0`) should not have `$componentKey` and `$componentTitle` keys as components' properties. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Changes** * Component configurations are now more flexible with relaxed validation requirements. Components no longer require specific identifiers to be defined, allowing for greater customization and optional field specifications. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## What’s the purpose of this pull request? This PR fixes the Preview tag styling when previews are shown in stores that use custom themes. An example from a preview page in the `heringhomolog` account: ### Before <img width="146" height="55" alt="Screenshot 2025-09-29 at 14 15 47" src="https://github.com/user-attachments/assets/d4aec357-72d7-40d9-9dd5-f4a92c67b4e1" /> <img width="1543" height="599" alt="Screenshot 2025-09-29 at 14 16 04" src="https://github.com/user-attachments/assets/2e737e68-00f2-413e-9c84-bb85d23e1171" /> ### After <img width="146" height="55" alt="Screenshot 2025-09-29 at 14 15 12" src="https://github.com/user-attachments/assets/efd0620d-9f46-4355-be5b-6cb38e8d016f" /> <img width="1543" height="599" alt="Screenshot 2025-09-29 at 17 43 18" src="https://github.com/user-attachments/assets/4dd720a9-063d-476d-8571-2c3980e77229" /> ## How it works It replaces styles inherited from the `Badge`, `Tag`, and `Icon` components with scoped custom styles, preventing overrides by store-specific theme customizations. ## How to test 1. Clone the `heringhomolog` [store repository](https://github.com/Cia-Hering/heringhomolog.store/). 2. Set the data source to Content Platform (CP). 3. Run the store locally. 4. In the `heringhomolog` Content Platform, set the preview URL to your local build. 5. Preview a page. The Preview tag should initially appear with broken styling. 6. Apply this PR locally by either: - Linking the `faststore/core` package from this PR into the store, or - Overriding the Preview tag stylesheet with the version from this PR. 7. Refresh the preview. The Preview tag should display with the corrected styling. Note: The preview tag is shown only on pages previewed from the Content Platform. This change doesn't apply to the preview flow for hCMS pages. ### Starters Deploy Preview <!--- Add a link to a deploy preview from `starter.store` with this branch being used. ---> <!--- Tip: You can get an installable version of this branch from the CodeSandbox generated when this PR is created. ---> ## References <!--- Spread the knowledge: is there any content you used to create this PR that is worth sharing? ---> <!--- Extra tip: adding references to related issues or mentioning people important to this PR may be good for the documentation and reviewing process --->
## What's the purpose of this pull request? This pull request introduces instrumentation and logging enhancements to the `core` package, primarily enabling experimental instrumentation hooks in Next.js and conditionally loading logging libraries in production node environments. ## References https://vercel.com/docs/environment-variables/system-environment-variables#VERCEL https://nextjs.org/docs/app/guides/instrumentation https://nextjs.org/docs/app/api-reference/file-conventions/instrumentation --------- Co-authored-by: eduardoformiga <eduardo.formiga@gmail.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (9)
📒 Files selected for processing (39)
WalkthroughThis is a multi-package development release (v3.99.0-dev) that introduces an ChangesGift Field Enhancement
Session Management Refactoring
CMS ShoppingAssistant Component
Store Hydration & UX Improvements
Development Release Updates
Sequence DiagramsequenceDiagram
participant Client as Client
participant Store as Session Store
participant GraphQL as GraphQL API
participant RefreshAPI as Refresh Endpoint
participant LogoutAPI as Logout API
participant IDB as IndexedDB
rect rgba(0, 150, 136, 0.5)
Note over Client,LogoutAPI: New Session Validation Flow
end
Client->>GraphQL: validateSession(jwt, refreshAfter)
alt Reload Pending
GraphQL-->>Client: Early return (avoid 401)
else Normal Validation
alt Refresh Expired
GraphQL->>RefreshAPI: POST refresh token
RefreshAPI-->>GraphQL: New session
GraphQL->>Store: Update session
else Refresh Not Expired
Store->>Store: Session valid
end
GraphQL-->>Client: Validated session
end
rect rgba(76, 175, 80, 0.5)
Note over Client,LogoutAPI: Logout with Session Clear
end
Client->>LogoutAPI: POST /api/fs/logout
LogoutAPI->>Store: Clear person, b2b, refreshAfter
Store->>IDB: Persist cleared state
LogoutAPI-->>Client: Complete
Client->>Client: Set SESSION_READY_KEY, force refresh
rect rgba(156, 39, 176, 0.5)
Note over Client,IDB: Store Hydration on Init
end
Client->>IDB: Load persisted state
IDB-->>Store: Return payload
Store->>Store: Set hydrated=true
Store->>Client: Ready for subscriptions
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 60 minutes.Comment |
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
What's the purpose of this pull request?
This PR aims to generate a new version from dev to main.
Summary by CodeRabbit
New Features
Improvements