Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the 📝 WalkthroughWalkthroughConsolidates all changelog documentation into a single root CHANGELOG.md file. Deletes individual CHANGELOG.md files from multiple apps, packages, and examples directories. Adds deprecation notices to select package changelogs, marking them as superseded. Updates .gitignore to ignore a build output directory. Documents the consolidation strategy in a knowledge file. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
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. Comment |
Greptile SummaryThis PR introduces a new changelog app that reads and renders the root Critical Issue:
Other Issues:
Recommendations:
Confidence Score: 2/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant Browser
participant Page as page.tsx
participant Parser as parse-changelogs.ts
participant FS as File System
participant API as api/changelog/route.ts
User->>Browser: Visit changelog site
Browser->>Page: Request page
Page->>Parser: getChangelogEntries()
Parser->>FS: Read CHANGELOG.md
FS-->>Parser: Markdown content
Parser->>Parser: Parse sections & versions
Parser-->>Page: ChangelogEntry[]
Page->>Page: Render with ReactMarkdown
Page-->>Browser: HTML response
Browser-->>User: Display changelog
Note over API: ⚠️ API route won't work with<br/>static export configuration
User->>Browser: GET /api/changelog
Browser->>API: Request
API->>Parser: parseRootChangelog()
Parser->>FS: Read CHANGELOG.md
FS-->>Parser: Markdown content
Parser-->>API: entries[]
API-->>Browser: JSON response
Browser-->>User: Changelog data
|
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (4)
apps/changelog/src/app/not-found.tsx (1)
3-25: Consider using CSS classes for consistency.The component uses inline styles (lines 7-17), but the app includes a comprehensive
globals.csswith existing classes like.empty-state,.container, etc. For consistency and maintainability, consider using these predefined classes instead of inline styles.🔎 Refactor to use existing CSS classes
export default function NotFound() { return ( <main> <div className="container"> - <div className="empty-state" style={{ paddingTop: '120px' }}> - <h1 style={{ fontSize: '2rem', marginBottom: '16px' }}>Page Not Found</h1> - <p style={{ marginBottom: '24px' }}> + <div className="empty-state"> + <h1>Page Not Found</h1> + <p> The page you're looking for doesn't exist. </p> - <Link - href="https://github.com/" - style={{ - color: 'var(--accent-minor)', - textDecoration: 'underline' - }} - > + <Link href="https://github.com/"> ← Back to Changelog </Link> </div> </div> </main> ); }You may need to adjust
.empty-statein globals.css to match the desired spacing.apps/changelog/src/app/api/changelog/route.ts (1)
20-37: Consider removingasynckeyword if no async operations are performed.The
GETfunction is marked asasyncbut doesn't contain anyawaitstatements. While this isn't incorrect (async functions can be used without await), it adds unnecessary overhead.🔎 Suggested refactor
-export async function GET() { +export function GET() { const changelogPath = getChangelogPath(); const entries = parseRootChangelog(getMonorepoRoot()); return NextResponse.json( { source: "/CHANGELOG.md", updatedAt: getUpdatedAt(changelogPath), totalEntries: entries.length, entries, }, { headers: { "Cache-Control": "public, s-maxage=300, stale-while-revalidate=300", }, }, ); }apps/changelog/src/app/page.tsx (1)
85-168: Consider converting to Client Component and fetching from the API route.Per the coding guidelines: "NEVER use Next.js dynamic functions if you can avoid them; prefer using client components and hooks like usePathname instead of await params to keep pages static."
While this Server Component doesn't use dynamic functions (which is good), the direct file system access could be replaced by fetching from the
/api/changelogroute you've already created. This would:
- Separate concerns (parsing logic from presentation)
- Enable client-side data fetching and updates
- Leverage the API's caching headers
- Align better with the coding guidelines' preference for client components
🔎 Suggested refactor to Client Component
+"use client"; + +import { useEffect, useState } from "react"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import type { ChangelogEntry } from "@/lib/parse-changelogs"; -import { parseRootChangelog } from "@/lib/parse-changelogs"; -import { getMonorepoRoot } from "@/lib/monorepo-root"; -function getChangelogEntries(): ChangelogEntry[] { - try { - return parseRootChangelog(getMonorepoRoot()); - } catch (error) { - console.error("Failed to parse CHANGELOG.md", error); - return []; - } -} export default function ChangelogPage() { - const entries = getChangelogEntries(); + const [entries, setEntries] = useState<ChangelogEntry[]>([]); + const [isLoading, setIsLoading] = useState(true); + + useEffect(() => { + fetch("/api/changelog") + .then((res) => res.json()) + .then((data) => { + setEntries(data.entries); + setIsLoading(false); + }) + .catch((error) => { + console.error("Failed to fetch changelog", error); + setIsLoading(false); + }); + }, []); + + if (isLoading) { + return <main><div className="container">Loading...</div></main>; + } + const unreleased = entries.filter(entry => entry.isUnreleased); // ... rest of the componentapps/changelog/src/lib/parse-changelogs.ts (1)
54-54: Consider using a more robust semver regex pattern.The current semver pattern
/^\d+\.\d+\.\d+$/is basic and may not catch all valid semver formats. While it works for simplex.y.zversions, it doesn't account for pre-release tags or build metadata (e.g.,1.0.0-alpha.1or1.0.0+build.123).If your changelog will only ever contain simple three-part versions, the current pattern is fine. Otherwise, consider a more comprehensive pattern.
🔎 Optional: More comprehensive semver regex
const heading = versionMatch[1].trim(); const { version, releasedAt, isUnreleased } = parseVersionHeading(heading); - const isSemver = /^\d+\.\d+\.\d+$/.test(version); + const isSemver = /^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/.test(version); if (!isUnreleased && !isSemver) { continue; }Or simply use a well-tested semver library:
import * as semver from 'semver'; const isSemver = semver.valid(version) !== null;
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (3)
apps/changelog/public/changelog_site.pngis excluded by!**/*.pngapps/changelog/public/favicon.svgis excluded by!**/*.svgpnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (36)
.gitignore(1 hunks)CHANGELOG.md(1 hunks)apps/backend/CHANGELOG.md(1 hunks)apps/changelog/README.md(1 hunks)apps/changelog/next.config.mjs(1 hunks)apps/changelog/package.json(1 hunks)apps/changelog/src/app/api/changelog/route.ts(1 hunks)apps/changelog/src/app/globals.css(1 hunks)apps/changelog/src/app/layout.tsx(1 hunks)apps/changelog/src/app/not-found.tsx(1 hunks)apps/changelog/src/app/page.tsx(1 hunks)apps/changelog/src/lib/monorepo-root.ts(1 hunks)apps/changelog/src/lib/parse-changelogs.ts(1 hunks)apps/changelog/tsconfig.json(1 hunks)apps/changelog/vercel.json(1 hunks)apps/dashboard/CHANGELOG.md(1 hunks)apps/dev-launchpad/CHANGELOG.md(1 hunks)apps/dev-launchpad/public/index.html(1 hunks)apps/e2e/CHANGELOG.md(1 hunks)apps/mock-oauth-server/CHANGELOG.md(1 hunks)docs/CHANGELOG.md(1 hunks)examples/cjs-test/CHANGELOG.md(1 hunks)examples/convex/CHANGELOG.md(1 hunks)examples/demo/CHANGELOG.md(1 hunks)examples/docs-examples/CHANGELOG.md(1 hunks)examples/e-commerce/CHANGELOG.md(1 hunks)examples/js-example/CHANGELOG.md(1 hunks)examples/lovable-react-18-example/CHANGELOG.md(1 hunks)examples/middleware/CHANGELOG.md(1 hunks)examples/react-example/CHANGELOG.md(1 hunks)examples/supabase/CHANGELOG.md(1 hunks)packages/init-stack/CHANGELOG.md(1 hunks)packages/stack-sc/CHANGELOG.md(1 hunks)packages/stack-shared/CHANGELOG.md(1 hunks)packages/stack-ui/CHANGELOG.md(1 hunks)packages/template/CHANGELOG.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{ts,tsx}: Always add new E2E tests when changing the API or SDK interface
For blocking alerts and errors, never use toast; use alerts instead as they are less easily missed by the user
NEVER try-catch-all, NEVER void a promise, and NEVER .catch(console.error); use loading indicators and async callbacks instead, or use runAsynchronously/runAsynchronouslyWithAlert for error handling
Use ES6 maps instead of records wherever you can
Files:
apps/changelog/src/app/page.tsxapps/changelog/src/app/layout.tsxapps/changelog/src/lib/monorepo-root.tsapps/changelog/src/app/api/changelog/route.tsapps/changelog/src/lib/parse-changelogs.tsapps/changelog/src/app/not-found.tsx
**/*.{ts,tsx,css}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{ts,tsx,css}: Keep hover/click transitions snappy and fast; avoid fade-in delays on hover. Apply transitions after action completion instead, like smooth fade-out when hover ends
Use hover-exit transitions instead of hover-enter transitions; for example, use 'transition-colors hover:transition-none' instead of fade-in on hover
Files:
apps/changelog/src/app/page.tsxapps/changelog/src/app/layout.tsxapps/changelog/src/lib/monorepo-root.tsapps/changelog/src/app/api/changelog/route.tsapps/changelog/src/lib/parse-changelogs.tsapps/changelog/src/app/globals.cssapps/changelog/src/app/not-found.tsx
apps/**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
NEVER use Next.js dynamic functions if you can avoid them; prefer using client components and hooks like usePathname instead of await params to keep pages static
Files:
apps/changelog/src/app/page.tsxapps/changelog/src/app/layout.tsxapps/changelog/src/lib/monorepo-root.tsapps/changelog/src/app/api/changelog/route.tsapps/changelog/src/lib/parse-changelogs.tsapps/changelog/src/app/not-found.tsx
{.env*,**/*.{ts,tsx,js}}
📄 CodeRabbit inference engine (AGENTS.md)
Prefix environment variables with STACK_ (or NEXT_PUBLIC_STACK_ if public) so changes are picked up by Turborepo and improves readability
Files:
apps/changelog/src/app/page.tsxapps/changelog/src/app/layout.tsxapps/changelog/src/lib/monorepo-root.tsapps/changelog/src/app/api/changelog/route.tsapps/changelog/src/lib/parse-changelogs.tsapps/changelog/src/app/not-found.tsx
apps/**/*.tsx
📄 CodeRabbit inference engine (AGENTS.md)
Check existing apps for inspiration when implementing new apps or pages; update apps-frontend.tsx and apps-config.ts to add new apps
Files:
apps/changelog/src/app/page.tsxapps/changelog/src/app/layout.tsxapps/changelog/src/app/not-found.tsx
apps/dashboard/**/*
📄 CodeRabbit inference engine (AGENTS.md)
When making changes in the dashboard, provide the user with a deep link to the dashboard page changed, usually in the form of http://localhost:<NEXT_PUBLIC_STACK_PORT_PREFIX>01/projects/-selector-/... or using a.localhost, b.localhost, c.localhost for port prefixes 91, 92, 93
Files:
apps/dashboard/CHANGELOG.md
🧠 Learnings (10)
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to apps/**/*.tsx : Check existing apps for inspiration when implementing new apps or pages; update apps-frontend.tsx and apps-config.ts to add new apps
Applied to files:
.gitignoreapps/changelog/tsconfig.jsonapps/changelog/src/app/not-found.tsxapps/dev-launchpad/public/index.html
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to apps/e2e/**/*.{ts,tsx} : Always add new E2E tests when changing API or SDK interface; err on the side of creating too many tests due to the critical nature of the industry
Applied to files:
apps/e2e/CHANGELOG.mdapps/changelog/tsconfig.json
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to **/*.{ts,tsx} : Always add new E2E tests when changing the API or SDK interface
Applied to files:
apps/e2e/CHANGELOG.mdapps/changelog/tsconfig.json
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to apps/dashboard/**/* : When making changes in the dashboard, provide the user with a deep link to the dashboard page changed, usually in the form of http://localhost:<NEXT_PUBLIC_STACK_PORT_PREFIX>01/projects/-selector-/... or using a.localhost, b.localhost, c.localhost for port prefixes 91, 92, 93
Applied to files:
apps/dashboard/CHANGELOG.mdapps/changelog/src/app/not-found.tsxapps/changelog/README.md
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to packages/{stack,js}/**/* : NEVER UPDATE packages/stack OR packages/js. Instead, update packages/template, as the others are simply copies of that package
Applied to files:
packages/stack-ui/CHANGELOG.md
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to packages/stack-shared/src/config/schema.ts : Whenever making backwards-incompatible changes to the config schema, update the migration functions in packages/stack-shared/src/config/schema.ts
Applied to files:
packages/stack-ui/CHANGELOG.mdpackages/stack-sc/CHANGELOG.mdpackages/stack-shared/CHANGELOG.md
📚 Learning: 2025-10-11T04:13:19.308Z
Learnt from: N2D4
Repo: stack-auth/stack-auth PR: 943
File: examples/convex/app/action/page.tsx:23-28
Timestamp: 2025-10-11T04:13:19.308Z
Learning: In the stack-auth codebase, use `runAsynchronouslyWithAlert` from `stackframe/stack-shared/dist/utils/promises` for async button click handlers and form submissions instead of manual try/catch blocks. This utility automatically handles errors and shows alerts to users.
Applied to files:
packages/stack-ui/CHANGELOG.mdexamples/js-example/CHANGELOG.md
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to **/*.{ts,tsx} : Use ES6 maps instead of records wherever you can
Applied to files:
apps/changelog/tsconfig.json
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Run pnpm install to install dependencies, pnpm test run for testing with Vitest, pnpm lint for linting (use --fix flag to auto-fix), pnpm typecheck for type checking
Applied to files:
apps/changelog/vercel.json
📚 Learning: 2025-12-04T18:03:49.984Z
Learnt from: CR
Repo: stack-auth/stack-auth PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-04T18:03:49.984Z
Learning: Applies to apps/**/*.{ts,tsx} : NEVER use Next.js dynamic functions if you can avoid them; prefer using client components and hooks like usePathname instead of await params to keep pages static
Applied to files:
apps/changelog/src/app/not-found.tsx
🧬 Code graph analysis (3)
apps/changelog/src/app/page.tsx (2)
apps/changelog/src/lib/parse-changelogs.ts (2)
ChangelogEntry(6-16)parseRootChangelog(36-97)apps/changelog/src/lib/monorepo-root.ts (1)
getMonorepoRoot(3-5)
apps/changelog/src/lib/monorepo-root.ts (1)
apps/dev-launchpad/scripts/write-env-config.js (1)
path(4-4)
apps/changelog/src/app/api/changelog/route.ts (2)
apps/changelog/src/lib/monorepo-root.ts (1)
getMonorepoRoot(3-5)apps/changelog/src/lib/parse-changelogs.ts (1)
parseRootChangelog(36-97)
🪛 GitHub Actions: Lint & build
apps/changelog/next.config.mjs
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/app/page.tsx
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/app/layout.tsx
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/lib/monorepo-root.ts
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/package.json
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/app/api/changelog/route.ts
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/lib/parse-changelogs.ts
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/tsconfig.json
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/app/globals.css
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/vercel.json
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/src/app/not-found.tsx
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
apps/changelog/README.md
[error] 1-1: Changelog build failed. Command '/home/runner/setup-pnpm/node_modules/.bin/pnpm run build' exited with code 1.
🪛 GitHub Actions: Runs E2E API Tests
apps/changelog/next.config.mjs
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/app/page.tsx
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/app/layout.tsx
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/lib/monorepo-root.ts
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/package.json
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/app/api/changelog/route.ts
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/lib/parse-changelogs.ts
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/tsconfig.json
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/app/globals.css
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/vercel.json
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/src/app/not-found.tsx
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
apps/changelog/README.md
[error] 1-1: Changelog build failed. Command 'pnpm run build' exited with code 1.
🪛 LanguageTool
CHANGELOG.md
[style] ~73-~73: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...ency updates --- > Note: Versions prior to 2.8.50 can be found in the individual p...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: check_prisma_migrations (22.x)
- GitHub Check: all-good
- GitHub Check: Vercel Agent Review
- GitHub Check: restart-dev-and-test-with-custom-base-port
- GitHub Check: setup-tests-with-custom-base-port
- GitHub Check: setup-tests
- GitHub Check: docker
- GitHub Check: restart-dev-and-test
🔇 Additional comments (28)
examples/middleware/CHANGELOG.md (1)
1-2: Clear and consistent deprecation notice.The warning is well-formatted and directs users to the centralized root changelog. This maintains backward compatibility while guiding toward the new structure.
.gitignore (1)
45-45: Correct build output directory excluded.The
apps/changelog/outentry properly ignores the static export output from the new Next.js changelog app, preventing build artifacts from being committed.examples/js-example/CHANGELOG.md (1)
1-2: Consistent deprecation guidance.Aligns with the repository-wide deprecation pattern.
examples/cjs-test/CHANGELOG.md (1)
1-2: Consistent deprecation guidance.Aligns with the repository-wide deprecation pattern.
packages/stack-shared/CHANGELOG.md (1)
1-2: Consistent deprecation guidance.Aligns with the repository-wide deprecation pattern.
packages/template/CHANGELOG.md (1)
1-2: Consistent deprecation guidance.Aligns with the repository-wide deprecation pattern.
apps/mock-oauth-server/CHANGELOG.md (1)
1-2: Consistent deprecation guidance.Aligns with the repository-wide deprecation pattern.
examples/react-example/CHANGELOG.md (1)
1-2: Consistent deprecation guidance.Aligns with the repository-wide deprecation pattern.
apps/dev-launchpad/public/index.html (1)
327-336: Changelog app entry looks good.The addition properly registers the new changelog app in the dev launchpad with appropriate configuration:
- Port suffix "09" matches the changelog app's configured port (8109 with default prefix)
- Importance level 1 is appropriate for a utility/documentation app
- Clear description and icon
Configuration verified: The changelog app's package.json specifies the same port suffix "09" as assigned in the dev-launchpad entry.
examples/e-commerce/CHANGELOG.md (1)
1-2: Deprecation notice is clear and well-placed.The deprecation notice effectively redirects users to the root
/CHANGELOG.md. This change is consistently applied across all per-package CHANGELOG files, including the 7 files mentioned in this PR: examples/e-commerce, packages/stack-sc, examples/lovable-react-18-example, examples/supabase, packages/init-stack, packages/stack-ui, and examples/convex.Consider adding automation to prevent future updates to these deprecated changelogs:
#!/bin/bash # Verify that the root CHANGELOG.md exists as the single source of truth if [ ! -f "CHANGELOG.md" ]; then echo "ERROR: Root CHANGELOG.md not found" exit 1 fi # Check if the deprecation notice is present in all per-package CHANGELOGs echo "Verifying deprecation notices in per-package CHANGELOGs..." fd --type f --full-path "CHANGELOG.md" --exec grep -L "This CHANGELOG is deprecated" {} \; | grep -v "^\./CHANGELOG.md$"examples/demo/CHANGELOG.md (1)
1-2: LGTM! Clear deprecation notice.The deprecation notice effectively directs users to the new centralized changelog location. This aligns well with the PR's goal of establishing the root CHANGELOG.md as the single source of truth.
examples/docs-examples/CHANGELOG.md (1)
1-2: LGTM! Consistent deprecation notice.The deprecation notice matches the pattern used across other CHANGELOG files in this PR, maintaining consistency.
apps/changelog/vercel.json (1)
1-6: LGTM! Vercel configuration is appropriate for static export.The configuration correctly specifies the build command and output directory for a Next.js static export setup.
CHANGELOG.md (1)
1-22: LGTM! Well-structured changelog with clear guidelines.The root CHANGELOG.md effectively serves as the single source of truth with clear instructions for contributors on how to add entries. The format is consistent and follows semantic versioning practices.
apps/changelog/tsconfig.json (1)
1-40: LGTM! Standard Next.js TypeScript configuration.The TypeScript configuration follows Next.js best practices with appropriate compiler options for a modern Next.js application.
apps/e2e/CHANGELOG.md (1)
1-2: LGTM! Consistent deprecation notice.The deprecation notice appropriately directs users to the centralized root changelog, maintaining consistency with other deprecated CHANGELOG files in this PR.
apps/dev-launchpad/CHANGELOG.md (1)
1-2: LGTM! Clear deprecation notice.The deprecation warning is well-formatted and clearly directs users to the new centralized changelog location.
docs/CHANGELOG.md (1)
1-2: LGTM! Consistent deprecation notice.The deprecation notice matches the pattern used across other changelog files, maintaining consistency throughout the migration.
apps/backend/CHANGELOG.md (1)
1-2: LGTM! Deprecation notice added.Consistent with the repository-wide changelog migration strategy.
apps/dashboard/CHANGELOG.md (1)
1-2: LGTM! Deprecation notice matches pattern.All deprecated changelog files now consistently point users to the root
/CHANGELOG.md.apps/changelog/next.config.mjs (1)
1-10: LGTM! Correct configuration for static export.The Next.js configuration properly sets up static site generation with
output: 'export'and disables image optimization, which is required for static exports.apps/changelog/README.md (1)
1-47: LGTM! Comprehensive and well-structured documentation.The README clearly explains the changelog app's purpose, development workflow, authoring guidelines, and API access. The documentation will be valuable for both developers and contributors.
apps/changelog/src/app/globals.css (1)
1-378: LGTM! Well-architected global stylesheet.The CSS provides a comprehensive theming system with:
- Semantic color variables for light and dark modes
- Consistent typography and spacing
- Accessible color contrast
- Smooth animations and transitions
- Responsive design patterns
The stylesheet follows modern CSS best practices and will provide a solid foundation for the changelog UI.
apps/changelog/src/app/api/changelog/route.ts (1)
11-18: LGTM: Proper error handling for file stat operations.The
getUpdatedAtfunction correctly handles potential errors fromfs.statSyncand returnsnullon failure, which is a safe fallback pattern.apps/changelog/src/app/page.tsx (1)
7-14: LGTM: Error handling with safe fallback.The
getChangelogEntriesfunction properly catches parsing errors and returns an empty array as a safe fallback, preventing the page from crashing on malformed changelog files.apps/changelog/src/lib/parse-changelogs.ts (2)
36-97: LGTM: Well-structured changelog parser with appropriate error handling.The
parseRootChangelogfunction is well-implemented:
- Safely handles missing changelog files by returning an empty array
- Correctly splits sections by version headings
- Properly filters out invalid version formats
- Extracts metadata (tags, dates, change types) accurately
- Normalizes markdown while preserving structure
The synchronous file system operations are appropriate for build-time parsing in a Node.js context.
18-34: LGTM: Clean tag extraction logic.The
parseTaggedBulletfunction correctly extracts multiple leading tags from bullet points while preserving the remaining text. The while loop with proper bounds checking prevents infinite loops.apps/changelog/src/app/layout.tsx (1)
1-36: The build failure is environment-specific, not a code issue.The pipeline fails with exit code 1, but the error is
ENOENT: no such file or directory, uv_resident_set_memory— a system-level Node.js/libuv syscall error. This occurs in the CI sandbox environment and is unrelated to the code changes inlayout.tsx. The code itself is syntactically correct, TypeScript types are valid, imports resolve properly, and the Next.js configuration is correctly set for static export. The suggested common causes (TypeScript errors, missing dependencies, path resolution issues, invalid configuration) do not apply here. This requires investigation of the CI build environment rather than changes to the application code.
Older cmux preview screenshots (latest comment is below)Preview Screenshots⏳ Preview screenshots are being captured... Workspace and dev browser links will appear here once the preview environment is ready. Generated by cmux preview system |
Older cmux preview screenshots (latest comment is below)Preview Screenshots⏳ Preview screenshots are being captured... Workspace and dev browser links will appear here once the preview environment is ready. Generated by cmux preview system |
Older cmux preview screenshots (latest comment is below)Preview Screenshots⏳ Preview screenshots are being captured... Workspace and dev browser links will appear here once the preview environment is ready. Generated by cmux preview system |
Older cmux preview screenshots (latest comment is below)Preview Screenshots⏳ Preview screenshots are being captured... Workspace and dev browser links will appear here once the preview environment is ready. Generated by cmux preview system |
Older cmux preview screenshots (latest comment is below)Preview Screenshots⏳ Preview screenshots are being captured... Workspace and dev browser links will appear here once the preview environment is ready. Generated by cmux preview system |
|
@N2D4 Reminder here. |
Preview Screenshots⏳ Preview screenshots are being captured... Workspace and dev browser links will appear here once the preview environment is ready. Generated by cmux preview system |
There was a problem hiding this comment.
Additional Suggestions:
- The
filesfield referencesCHANGELOG.md, but this file has been deleted. The file will not be included in the published npm package.
View Details
📝 Patch Details
diff --git a/packages/init-stack/package.json b/packages/init-stack/package.json
index 626007ee..b00d449d 100644
--- a/packages/init-stack/package.json
+++ b/packages/init-stack/package.json
@@ -33,7 +33,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"homepage": "https://stack-auth.com",
diff --git a/packages/js/package.json b/packages/js/package.json
index 179ba2bd..dc7b30f4 100644
--- a/packages/js/package.json
+++ b/packages/js/package.json
@@ -45,7 +45,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
@@ -84,4 +83,4 @@
"tsup": "^8.0.2",
"convex": "^1.27.0"
}
-}
\ No newline at end of file
+}
diff --git a/packages/react/package.json b/packages/react/package.json
index e9600a8b..d9b54da3 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
@@ -108,4 +107,4 @@
"tsup": "^8.0.2",
"convex": "^1.27.0"
}
-}
\ No newline at end of file
+}
diff --git a/packages/stack-sc/package.json b/packages/stack-sc/package.json
index c317224e..fdf414e4 100644
--- a/packages/stack-sc/package.json
+++ b/packages/stack-sc/package.json
@@ -26,7 +26,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"peerDependencies": {
diff --git a/packages/stack-shared/package.json b/packages/stack-shared/package.json
index d2bd8a6f..c6e49814 100644
--- a/packages/stack-shared/package.json
+++ b/packages/stack-shared/package.json
@@ -12,7 +12,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"exports": {
diff --git a/packages/stack-ui/package.json b/packages/stack-ui/package.json
index eafc2a21..cd25c9d6 100644
--- a/packages/stack-ui/package.json
+++ b/packages/stack-ui/package.json
@@ -14,7 +14,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"exports": {
diff --git a/packages/stack/package.json b/packages/stack/package.json
index 4eee0021..8699f8a1 100644
--- a/packages/stack/package.json
+++ b/packages/stack/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
@@ -116,4 +115,4 @@
"tsup": "^8.0.2",
"convex": "^1.27.0"
}
-}
\ No newline at end of file
+}
diff --git a/packages/template/package.json b/packages/template/package.json
index 7e124325..db2a548f 100644
--- a/packages/template/package.json
+++ b/packages/template/package.json
@@ -58,7 +58,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
@@ -121,4 +120,4 @@
"tsup": "^8.0.2",
"convex": "^1.27.0"
}
-}
\ No newline at end of file
+}
Analysis
package.json files field references missing CHANGELOG.md in 8 packages
What fails: The files field in package.json for 8 packages (@stackframe/init-stack, @stackframe/js, @stackframe/react, @stackframe/stack-sc, @stackframe/stack-shared, @stackframe/stack-ui, @stackframe/stack, @stackframe/template) lists CHANGELOG.md, but this file does not exist in any of these package directories.
How to reproduce:
# Check packages/init-stack as an example:
ls packages/init-stack/CHANGELOG.md # File does not exist
grep "CHANGELOG.md" packages/init-stack/package.json # Listed in files fieldResult: When npm publishes these packages, the non-existent CHANGELOG.md file is silently omitted from the published tarball (verified with npm pack testing). This creates a mismatch between what the package.json declares will be included and what is actually published.
Expected behavior: The files field should only reference files that actually exist in the package directory. Since individual CHANGELOG.md files were consolidated into a single root CHANGELOG.md per the commit history, these references should be removed.
Fix applied: Removed CHANGELOG.md from the files array in all 8 affected package.json files:
- packages/init-stack/package.json
- packages/js/package.json
- packages/react/package.json
- packages/stack-sc/package.json
- packages/stack-shared/package.json
- packages/stack-ui/package.json
- packages/stack/package.json
- packages/template/package.json
View Details
📝 Patch Details
diff --git a/packages/init-stack/package.json b/packages/init-stack/package.json
index 626007ee..b00d449d 100644
--- a/packages/init-stack/package.json
+++ b/packages/init-stack/package.json
@@ -33,7 +33,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"homepage": "https://stack-auth.com",
diff --git a/packages/js/package.json b/packages/js/package.json
index 179ba2bd..1d87d810 100644
--- a/packages/js/package.json
+++ b/packages/js/package.json
@@ -45,7 +45,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/react/package.json b/packages/react/package.json
index e9600a8b..c0ea00fd 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/stack-sc/package.json b/packages/stack-sc/package.json
index c317224e..fdf414e4 100644
--- a/packages/stack-sc/package.json
+++ b/packages/stack-sc/package.json
@@ -26,7 +26,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"peerDependencies": {
diff --git a/packages/stack-shared/package.json b/packages/stack-shared/package.json
index d2bd8a6f..c6e49814 100644
--- a/packages/stack-shared/package.json
+++ b/packages/stack-shared/package.json
@@ -12,7 +12,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"exports": {
diff --git a/packages/stack-ui/package.json b/packages/stack-ui/package.json
index eafc2a21..cd25c9d6 100644
--- a/packages/stack-ui/package.json
+++ b/packages/stack-ui/package.json
@@ -14,7 +14,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"exports": {
diff --git a/packages/stack/package.json b/packages/stack/package.json
index 4eee0021..a3aaa635 100644
--- a/packages/stack/package.json
+++ b/packages/stack/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package-template.json b/packages/template/package-template.json
index f6df6332..1055b618 100644
--- a/packages/template/package-template.json
+++ b/packages/template/package-template.json
@@ -81,7 +81,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package.json b/packages/template/package.json
index 7e124325..acde1c9f 100644
--- a/packages/template/package.json
+++ b/packages/template/package.json
@@ -58,7 +58,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
Analysis
Missing CHANGELOG.md in npm package distributions
What fails: The files field in all package.json files (packages/react, packages/js, packages/stack, packages/stack-shared, packages/stack-ui, packages/stack-sc, packages/init-stack) references CHANGELOG.md, but this file does not exist in any package directory. When npm publishes these packages, the missing file is silently skipped, resulting in incomplete package distributions.
How to reproduce:
cd packages/react
npm pack --dry-run
# Shows: "total files: 1" (only package.json)
# Expected: CHANGELOG.md would be included if it existedThe root repository has a consolidated CHANGELOG.md at ./CHANGELOG.md, but the package-specific CHANGELOG.md files were removed as documented in the root changelog: "All older changelogs are deprecated and have been removed. The source of true is this single changelog file."
Result: npm silently skips the missing CHANGELOG.md files per npm package.json documentation - while no error is raised, the files are simply not included in the package, leaving the files field referencing non-existent files.
Fix: Removed CHANGELOG.md from the files array in:
- packages/template/package-template.json (template source for generated packages)
- packages/react/package.json (regenerated)
- packages/js/package.json (regenerated)
- packages/stack/package.json (regenerated)
- packages/stack-shared/package.json
- packages/stack-ui/package.json
- packages/stack-sc/package.json
- packages/init-stack/package.json
View Details
📝 Patch Details
diff --git a/packages/stack-shared/package.json b/packages/stack-shared/package.json
index d2bd8a6f..c6e49814 100644
--- a/packages/stack-shared/package.json
+++ b/packages/stack-shared/package.json
@@ -12,7 +12,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"exports": {
Analysis
CHANGELOG.md referenced in files field but file does not exist
What fails: The files field in packages/stack-shared/package.json references CHANGELOG.md, but this file does not exist in the package directory. When the package is published via npm publish, the referenced file is silently omitted from the tarball since npm only searches for files relative to the package directory (not the repository root).
How to reproduce:
cd packages/stack-shared
npm pack --dry-run
# Examine output - shows only: LICENSE, package.json
# CHANGELOG.md is NOT included despite being in the files arrayResult: npm pack shows "total files: 2" (LICENSE and package.json only). CHANGELOG.md is not included in the package, even though it's explicitly listed in the files array.
Expected: According to npm publish documentation, if a file is listed in the files array, it should be included in the package. The files field should only reference files that exist in the package directory (or will exist after build). Since CHANGELOG.md does not exist in packages/stack-shared/, it should be removed from the files array.
Additional context: npm automatically includes CHANGELOG files but only if they exist in the package's directory. The monorepo root has a CHANGELOG.md, but npm doesn't search there when publishing a workspace package.
View Details
📝 Patch Details
diff --git a/packages/stack-ui/package.json b/packages/stack-ui/package.json
index eafc2a21..1ffc4f66 100644
--- a/packages/stack-ui/package.json
+++ b/packages/stack-ui/package.json
@@ -12,9 +12,6 @@
"lint": "eslint --ext .tsx,.ts ."
},
"files": [
- "README.md",
- "dist",
- "CHANGELOG.md",
"LICENSE"
],
"exports": {
Analysis
Invalid files array entries in packages/stack-ui/package.json
What fails: The files field in packages/stack-ui/package.json references four entries (README.md, dist, CHANGELOG.md, LICENSE), but three of them don't exist in the directory. While npm doesn't error, it silently skips missing files, leading to a misconfigured package.json that's out of sync with the repository structure.
How to reproduce:
# Verify files don't exist in packages/stack-ui
ls packages/stack-ui/CHANGELOG.md # NOT_EXISTS
ls packages/stack-ui/README.md # NOT_EXISTS
ls packages/stack-ui/dist # NOT_EXISTS
# Check what npm actually includes
cd packages/stack-ui && npm pack --dry-run
# Only 2 files included: LICENSE and package.json
# (README.md, dist, CHANGELOG.md are silently skipped)Result: The files array listed four entries but only LICENSE actually exists locally. Per npm's Files & Ignores documentation, npm does not warn when files references non-existent files—it simply omits them from the package. This is identified as issue #8791 in npm/cli.
Expected behavior: The files array should only reference files that actually exist in the packages/stack-ui directory. The consolidated CHANGELOG.md exists at the repository root (for the entire Stack Auth project), not in the individual package directory.
Fix: Removed non-existent entries (README.md, dist, CHANGELOG.md) from the files array, keeping only LICENSE which actually exists.
View Details
📝 Patch Details
diff --git a/packages/js/package.json b/packages/js/package.json
index 179ba2bd..1d87d810 100644
--- a/packages/js/package.json
+++ b/packages/js/package.json
@@ -45,7 +45,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/react/package.json b/packages/react/package.json
index e9600a8b..c0ea00fd 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/stack/package.json b/packages/stack/package.json
index 4eee0021..a3aaa635 100644
--- a/packages/stack/package.json
+++ b/packages/stack/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package-template.json b/packages/template/package-template.json
index f6df6332..1055b618 100644
--- a/packages/template/package-template.json
+++ b/packages/template/package-template.json
@@ -81,7 +81,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package.json b/packages/template/package.json
index 7e124325..acde1c9f 100644
--- a/packages/template/package.json
+++ b/packages/template/package.json
@@ -58,7 +58,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
Analysis
Missing CHANGELOG.md reference removed from package files field
What fails: The template file packages/template/package-template.json references a non-existent CHANGELOG.md in the files field (line 84). This file doesn't exist in individual package directories (e.g., packages/stack/CHANGELOG.md). The project consolidated all changelogs into a single CHANGELOG.md at the repository root, making individual package changelogs deprecated.
How to reproduce:
# Verify the file is missing in packages/stack
ls -la packages/stack/CHANGELOG.md
# Output: ls: cannot access 'packages/stack/CHANGELOG.md': No such file or directory
# Verify the template references it
grep "CHANGELOG.md" packages/template/package-template.json
# Output: "CHANGELOG.md",Result: The npm files field listed a non-existent file. While npm silently skips missing files (per npm issue #6582), having outdated references is confusing for maintainers and doesn't reflect the current consolidated changelog structure established in the root CHANGELOG.md.
Expected: The files field should only reference files that actually exist in the package directories. Removed CHANGELOG.md from the template (which auto-generates all package.json files), updated all affected packages: packages/stack, packages/js, packages/react, and packages/template.
Verification: After the fix, npm pack correctly lists only files that exist (README.md, LICENSE, and dist when built), with no references to missing CHANGELOG.md files.
View Details
📝 Patch Details
diff --git a/packages/template/package-template.json b/packages/template/package-template.json
index f6df6332..1055b618 100644
--- a/packages/template/package-template.json
+++ b/packages/template/package-template.json
@@ -81,7 +81,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package.json b/packages/template/package.json
index 7e124325..acde1c9f 100644
--- a/packages/template/package.json
+++ b/packages/template/package.json
@@ -58,7 +58,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
Analysis
Removed non-existent CHANGELOG.md reference from package.json files array
What fails: The files array in packages/template/package.json and packages/template/package-template.json lists CHANGELOG.md, but this file does not exist in the packages/template/ directory. When npm publishes the package, npm silently skips the missing file and excludes it from the tarball.
How to reproduce:
cd packages/template
npm pack --dry-runResult: Before fix - Tarball lists 3 files (LICENSE, README.md, package.json). CHANGELOG.md is not included in the tarball, despite being listed in the files array. The reporter expected the file to be included but npm silently skips it.
Expected: Files listed in the files array should either exist or be removed. The changelog has been consolidated into the repository root (./CHANGELOG.md), so the reference in the package template is outdated.
Verification: According to npm's Files & Ignores documentation, npm does not warn when files explicitly referenced in the files array don't exist. This is a known limitation tracked in npm issue #8791. The fix removes the stale reference to match the actual file structure.
View Details
📝 Patch Details
diff --git a/packages/js/package.json b/packages/js/package.json
index 179ba2bd..1d87d810 100644
--- a/packages/js/package.json
+++ b/packages/js/package.json
@@ -45,7 +45,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/react/package.json b/packages/react/package.json
index e9600a8b..c0ea00fd 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/stack/package.json b/packages/stack/package.json
index 4eee0021..a3aaa635 100644
--- a/packages/stack/package.json
+++ b/packages/stack/package.json
@@ -53,7 +53,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package-template.json b/packages/template/package-template.json
index f6df6332..1055b618 100644
--- a/packages/template/package-template.json
+++ b/packages/template/package-template.json
@@ -81,7 +81,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
diff --git a/packages/template/package.json b/packages/template/package.json
index 7e124325..acde1c9f 100644
--- a/packages/template/package.json
+++ b/packages/template/package.json
@@ -58,7 +58,6 @@
"files": [
"README.md",
"dist",
- "CHANGELOG.md",
"LICENSE"
],
"dependencies": {
Analysis
Incorrect reference to non-existent CHANGELOG.md in published npm packages
What fails: The files field in packages/template/package-template.json (and generated package.json files for other packages) references CHANGELOG.md, but this file does not exist in the individual package directories. The file is silently skipped during npm publishing.
How to reproduce:
cd packages/template
npm pack --dry-runResult: The tarball contents show 3 files (LICENSE, README.md, package.json) instead of 4. The CHANGELOG.md entry in the files array is silently ignored by npm because the file doesn't exist in the package directory.
Expected: According to npm package.json files documentation, the files field lists entries to be included when the package is installed as a dependency. Files listed but not present are simply skipped, which indicates a stale configuration. The monorepo uses a consolidated changelog at the root level (per the deprecation notice in CHANGELOG.md), so individual package changelogs are no longer needed.
Fix: Removed CHANGELOG.md from the files array in packages/template/package-template.json (line 84). The generation script automatically propagated this fix to all derived package.json files (packages/js, packages/react, packages/stack).
Summary by CodeRabbit
Documentation
Consolidated all release notes into a single root changelog as the authoritative source for all changesUpdated individual package changelogs with deprecation notices directing users to the root changelogChores
Updated build directory exclusions✏️ Tip: You can customize this high-level summary in your review settings.