Release#1043
Conversation
Bumps [next-intl](https://github.com/amannn/next-intl) from 4.4.0 to 4.5.8. - [Release notes](https://github.com/amannn/next-intl/releases) - [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md) - [Commits](amannn/next-intl@v4.4.0...v4.5.8) --- updated-dependencies: - dependency-name: next-intl dependency-version: 4.5.8 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…/next-intl-4.5.8 build(deps): bump next-intl from 4.4.0 to 4.5.8
Bumps [next](https://github.com/vercel/next.js) from 16.0.10 to 16.1.7. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v16.0.10...v16.1.7) --- updated-dependencies: - dependency-name: next dependency-version: 16.1.7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [azure/setup-kubectl](https://github.com/azure/setup-kubectl) from 4 to 5. - [Release notes](https://github.com/azure/setup-kubectl/releases) - [Changelog](https://github.com/Azure/setup-kubectl/blob/main/CHANGELOG.md) - [Commits](Azure/setup-kubectl@v4...v5) --- updated-dependencies: - dependency-name: azure/setup-kubectl dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…/next-16.1.7 build(deps): bump next from 16.0.10 to 16.1.7
Bumps [next](https://github.com/vercel/next.js) from 16.1.7 to 16.2.3. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v16.1.7...v16.2.3) --- updated-dependencies: - dependency-name: next dependency-version: 16.2.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…/next-16.2.3 build(deps): bump next from 16.1.7 to 16.2.3
Bumps [next-intl](https://github.com/amannn/next-intl) from 4.5.8 to 4.9.1. - [Release notes](https://github.com/amannn/next-intl/releases) - [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md) - [Commits](amannn/next-intl@v4.5.8...v4.9.1) --- updated-dependencies: - dependency-name: next-intl dependency-version: 4.9.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…/next-intl-4.9.1 build(deps): bump next-intl from 4.5.8 to 4.9.1
…ns/azure/setup-kubectl-5 build(deps): bump azure/setup-kubectl from 4 to 5
- Remove unused dependencies: @ducanh2912/next-pwa (service worker was fully commented out), prom-client, jest-worker, nookies, million, eslint-config-sznm (not imported in eslint config) - Replace nookies setCookie with a native document.cookie one-liner - Remove million compiler wrapper from next.config.ts; Next 16 + React 19 provide equivalent optimisation built-in - Update all remaining packages to their latest compatible versions (next, react/react-dom stable, sass, sharp, playwright, testing-library, jest 30, typescript-eslint, eslint 9.x latest, quagga2, etc.) - Add scoped pnpm overrides to patch transitive dep versions that upstream packages have not yet bumped (flatted, minimatch, picomatch, brace-expansion, js-yaml, babel helpers, form-data, qs, diff) - Add coverage/** to eslint ignores - Remove staging branch trigger and staging/e2e jobs from build workflow; the target deployment no longer exists
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 5. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](pnpm/action-setup@v4...v5) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.10.0 to 6.0.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](docker/metadata-action@c299e40...030e881) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.18.0 to 7.0.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](docker/build-push-action@2634353...d08e5c3) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.6.0 to 4.0.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](docker/login-action@5e57cd1...b45d80f) --- updated-dependencies: - dependency-name: docker/login-action dependency-version: 4.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
…ns/pnpm/action-setup-5 build(deps): bump pnpm/action-setup from 4 to 5
…ns/docker/metadata-action-6.0.0 build(deps): bump docker/metadata-action from 5.10.0 to 6.0.0
…ns/docker/build-push-action-7.0.0 build(deps): bump docker/build-push-action from 6.18.0 to 7.0.0
…ns/docker/login-action-4.0.0 build(deps): bump docker/login-action from 3.6.0 to 4.0.0
- Bump TypeScript 5.7.3 → 6.0.3 - Replace deprecated target 'ES5' with 'ES2017' (Next.js handles browser transpilation; ES5 output is not needed) - Remove deprecated standalone 'baseUrl'; paths alias @/* resolves correctly from tsconfig location without it
|
|
Reviewer's GuideUpdate release pipeline and tooling: move to newer Node/pnpm/Next/TypeScript/Jest/Playwright/ESLint stack, simplify CI to a single production build/deploy workflow, switch locale cookie handling to use document.cookie, adjust TS/ESLint configs, remove Million integration, and apply consistent tab-based formatting. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've found 3 issues, and left some high level feedback:
- In
.github/workflows/pr.yml, the fallbackif_regular_build_failsjob still installs pnpm9.12.1while the main job andpackageManagernow use10.19.0; consider aligning these versions to avoid confusing or inconsistent CI behavior. - In
More'shandleLanguageChange, now that you're managing cookies manually withdocument.cookie, consider adding appropriate attributes (e.g.SameSiteandSecurewhere applicable) to better match modern browser defaults and the behavior previously handled bynookies.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- In `.github/workflows/pr.yml`, the fallback `if_regular_build_fails` job still installs pnpm `9.12.1` while the main job and `packageManager` now use `10.19.0`; consider aligning these versions to avoid confusing or inconsistent CI behavior.
- In `More`'s `handleLanguageChange`, now that you're managing cookies manually with `document.cookie`, consider adding appropriate attributes (e.g. `SameSite` and `Secure` where applicable) to better match modern browser defaults and the behavior previously handled by `nookies`.
## Individual Comments
### Comment 1
<location path="src/app/[locale]/more/page.tsx" line_range="25-28" />
<code_context>
- path: "/",
- });
- }
+ function handleLanguageChange(locale: string) {
+ const maxAge = 30 * 24 * 60 * 60; // 30 days
+ document.cookie = `NEXT_LOCALE=${locale};max-age=${maxAge};path=/`;
+ }
</code_context>
<issue_to_address>
**🚨 suggestion (security):** Consider setting SameSite and Secure attributes on the locale cookie for better security and consistency.
The previous `nookies` usage likely set safer cookie defaults. Now that we set the cookie manually, consider explicitly adding `SameSite=Lax` (or `Strict` if appropriate) and `Secure` (when over HTTPS), for example:
```ts
const isSecure = window.location.protocol === "https:";
const attributes = [
`max-age=${maxAge}`,
"path=/",
"samesite=lax",
...(isSecure ? ["secure"] : []),
].join(";");
document.cookie = `NEXT_LOCALE=${locale};${attributes}`;
```
This keeps behavior predictable across browsers instead of relying on default attributes.
```suggestion
function handleLanguageChange(locale: string) {
const maxAge = 30 * 24 * 60 * 60; // 30 days
const isSecure = typeof window !== "undefined" && window.location.protocol === "https:";
const attributes = [
`max-age=${maxAge}`,
"path=/",
"samesite=lax",
...(isSecure ? ["secure"] : []),
].join(";");
document.cookie = `NEXT_LOCALE=${locale};${attributes}`;
}
```
</issue_to_address>
### Comment 2
<location path=".github/workflows/pr.yml" line_range="8-9" />
<code_context>
steps:
- uses: actions/checkout@v6
- - uses: pnpm/action-setup@v4
+ - uses: pnpm/action-setup@v6
with:
- version: 9.12.1
+ version: 10.19.0
</code_context>
<issue_to_address>
**issue (bug_risk):** The second job still pins pnpm 9.x even though the project now uses pnpm 10.19.0.
This version mismatch can cause different install/lockfile behavior between jobs. Please update this step to use the same pnpm version as the primary job, for example:
```yaml
- uses: pnpm/action-setup@v6
with:
version: 10.19.0
```
</issue_to_address>
### Comment 3
<location path="package.json" line_range="36-45" />
<code_context>
+ "react-dom": "19.2.0",
+ "sass": "^1.99.0",
+ "sharp": "^0.34.5",
+ "typescript": "6.0.3"
+ },
+ "devDependencies": {
+ "@playwright/test": "^1.59.1",
+ "@testing-library/jest-dom": "^6.9.1",
+ "@testing-library/react": "^16.3.2",
+ "@testing-library/user-event": "^14.6.1",
+ "@types/jest": "^30.0.0",
+ "@types/react": "19.2.14",
+ "eslint": "9.39.4",
+ "eslint-config-next": "16.2.4",
+ "eslint-import-resolver-typescript": "^4.4.4",
+ "eslint-plugin-import": "^2.32.0",
+ "eslint-plugin-react-compiler": "19.1.0-rc.2",
+ "jest": "^30.3.0",
+ "jest-environment-jsdom": "^30.3.0",
+ "ts-node": "^10.9.2",
+ "typescript-eslint": "^8.58.2"
+ },
</code_context>
<issue_to_address>
**issue (bug_risk):** ts-node 10.9.2 may not be compatible with TypeScript 6.0.3, which could break TS-powered tooling.
Given `ts-node` 10.x targets TS 4/5, using it with TS 6 may cause runtime issues in any `ts-node`-based tooling (e.g., Jest transforms, CLIs). Please either:
- Align `ts-node` with a version that officially supports TS 6 (when available), or
- Replace `ts-node` with a better-supported alternative for your use case (e.g., native ESM, `tsx`, `ts-jest`).
Also, rerun existing `ts-node`-driven flows against TS 6 to confirm they still work as expected.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| function handleLanguageChange(locale: string) { | ||
| const maxAge = 30 * 24 * 60 * 60; // 30 days | ||
| document.cookie = `NEXT_LOCALE=${locale};max-age=${maxAge};path=/`; | ||
| } |
There was a problem hiding this comment.
🚨 suggestion (security): Consider setting SameSite and Secure attributes on the locale cookie for better security and consistency.
The previous nookies usage likely set safer cookie defaults. Now that we set the cookie manually, consider explicitly adding SameSite=Lax (or Strict if appropriate) and Secure (when over HTTPS), for example:
const isSecure = window.location.protocol === "https:";
const attributes = [
`max-age=${maxAge}`,
"path=/",
"samesite=lax",
...(isSecure ? ["secure"] : []),
].join(";");
document.cookie = `NEXT_LOCALE=${locale};${attributes}`;This keeps behavior predictable across browsers instead of relying on default attributes.
| function handleLanguageChange(locale: string) { | |
| const maxAge = 30 * 24 * 60 * 60; // 30 days | |
| document.cookie = `NEXT_LOCALE=${locale};max-age=${maxAge};path=/`; | |
| } | |
| function handleLanguageChange(locale: string) { | |
| const maxAge = 30 * 24 * 60 * 60; // 30 days | |
| const isSecure = typeof window !== "undefined" && window.location.protocol === "https:"; | |
| const attributes = [ | |
| `max-age=${maxAge}`, | |
| "path=/", | |
| "samesite=lax", | |
| ...(isSecure ? ["secure"] : []), | |
| ].join(";"); | |
| document.cookie = `NEXT_LOCALE=${locale};${attributes}`; | |
| } |
| - uses: pnpm/action-setup@v6 | ||
| with: |
There was a problem hiding this comment.
issue (bug_risk): The second job still pins pnpm 9.x even though the project now uses pnpm 10.19.0.
This version mismatch can cause different install/lockfile behavior between jobs. Please update this step to use the same pnpm version as the primary job, for example:
- uses: pnpm/action-setup@v6
with:
version: 10.19.0| "typescript": "6.0.3" | ||
| }, | ||
| "devDependencies": { | ||
| "@playwright/test": "^1.59.1", | ||
| "@testing-library/jest-dom": "^6.9.1", | ||
| "@testing-library/react": "^16.3.2", | ||
| "@testing-library/user-event": "^14.6.1", | ||
| "@types/jest": "^30.0.0", | ||
| "@types/react": "19.2.14", | ||
| "eslint": "9.39.4", |
There was a problem hiding this comment.
issue (bug_risk): ts-node 10.9.2 may not be compatible with TypeScript 6.0.3, which could break TS-powered tooling.
Given ts-node 10.x targets TS 4/5, using it with TS 6 may cause runtime issues in any ts-node-based tooling (e.g., Jest transforms, CLIs). Please either:
- Align
ts-nodewith a version that officially supports TS 6 (when available), or - Replace
ts-nodewith a better-supported alternative for your use case (e.g., native ESM,tsx,ts-jest).
Also, rerun existing ts-node-driven flows against TS 6 to confirm they still work as expected.
Summary by Sourcery
Update frontend configuration, tooling, and workflows while simplifying language handling and modal behavior.
Bug Fixes:
Enhancements:
Build:
CI:
Deployment:
Tests:
Chores: