Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/sdk/next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@merit-systems/echo-next-sdk",
"version": "0.0.29",
"version": "0.0.30",
"description": "Next.js SDK for Echo",
"type": "module",
"main": "./dist/index.js",
Expand Down
2 changes: 1 addition & 1 deletion packages/sdk/react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@merit-systems/echo-react-sdk",
"version": "1.0.38",
"version": "1.0.39",
"description": "React SDK for Echo OAuth2 + PKCE authentication and token management",
"type": "module",
"main": "./dist/index.cjs",
Expand Down
2 changes: 1 addition & 1 deletion packages/sdk/ts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@merit-systems/echo-typescript-sdk",
"version": "1.0.22",
"version": "1.0.23",
"description": "TypeScript SDK for Echo platform",
"type": "module",
"main": "./dist/index.cjs",
Expand Down
2 changes: 1 addition & 1 deletion templates/assistant-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"version": "0.0.0",
"type": "module",
"dependencies": {
"@merit-systems/echo-next-sdk": "0.0.24",
"@merit-systems/echo-next-sdk": "latest",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using "latest" for SDK dependencies breaks reproducibility and is considered a package management anti-pattern. Templates should specify explicit versions to ensure consistent experiences across different installations and time periods.

View Details
📝 Patch Details
diff --git a/templates/assistant-ui/package.json b/templates/assistant-ui/package.json
index 73cbbcba..8ba4425d 100644
--- a/templates/assistant-ui/package.json
+++ b/templates/assistant-ui/package.json
@@ -3,12 +3,12 @@
   "version": "0.0.0",
   "type": "module",
   "dependencies": {
-    "@merit-systems/echo-next-sdk": "latest",
     "@ai-sdk/openai": "2.0.16",
     "@ai-sdk/react": "2.0.17",
     "@assistant-ui/react": "^0.11.3",
     "@assistant-ui/react-ai-sdk": "^1.1.0",
     "@assistant-ui/react-markdown": "^0.11.0",
+    "@merit-systems/echo-next-sdk": "0.0.29",
     "@radix-ui/react-slot": "^1.2.3",
     "@radix-ui/react-tooltip": "^1.2.8",
     "@tailwindcss/postcss": "^4.1.12",
@@ -16,7 +16,7 @@
     "class-variance-authority": "^0.7.1",
     "clsx": "^2.1.1",
     "lucide-react": "^0.539.0",
-    "next": "15.4.6",
+    "next": "^15.4.6",
     "postcss": "^8.5.6",
     "react": "19.1.1",
     "react-dom": "19.1.1",
diff --git a/templates/next-chat/package.json b/templates/next-chat/package.json
index 1f0aedbd..c4a69caa 100644
--- a/templates/next-chat/package.json
+++ b/templates/next-chat/package.json
@@ -11,8 +11,8 @@
   },
   "dependencies": {
     "@ai-sdk/react": "2.0.17",
-    "@merit-systems/echo-next-sdk": "latest",
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-next-sdk": "0.0.29",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "@radix-ui/react-avatar": "^1.1.10",
     "@radix-ui/react-collapsible": "^1.1.12",
     "@radix-ui/react-hover-card": "^1.1.15",
diff --git a/templates/next-image/package.json b/templates/next-image/package.json
index 144db126..7bc6c894 100644
--- a/templates/next-image/package.json
+++ b/templates/next-image/package.json
@@ -9,8 +9,8 @@
     "lint": "next lint"
   },
   "dependencies": {
-    "@merit-systems/echo-next-sdk": "latest",
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-next-sdk": "0.0.29",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "@radix-ui/react-avatar": "^1.1.10",
     "@radix-ui/react-dialog": "^1.1.15",
     "@radix-ui/react-dropdown-menu": "^2.1.16",
diff --git a/templates/next-video-template/package.json b/templates/next-video-template/package.json
index 2ce74db0..580f3f0c 100644
--- a/templates/next-video-template/package.json
+++ b/templates/next-video-template/package.json
@@ -9,8 +9,8 @@
   },
   "dependencies": {
     "@google/genai": "^1.20.0",
-    "@merit-systems/echo-next-sdk": "latest",
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-next-sdk": "0.0.29",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "@radix-ui/react-avatar": "^1.1.10",
     "@radix-ui/react-dialog": "^1.1.15",
     "@radix-ui/react-dropdown-menu": "^2.1.16",
diff --git a/templates/next/package.json b/templates/next/package.json
index 4ec755fd..00e94e63 100644
--- a/templates/next/package.json
+++ b/templates/next/package.json
@@ -10,7 +10,7 @@
     "postinstall": "npm dedupe || true"
   },
   "dependencies": {
-    "@merit-systems/echo-next-sdk": "latest",
+    "@merit-systems/echo-next-sdk": "0.0.29",
     "ai": "5.0.19",
     "@ai-sdk/react": "2.0.17",
     "@ai-sdk/openai": "2.0.16",
diff --git a/templates/nextjs-api-key-template/package.json b/templates/nextjs-api-key-template/package.json
index 13990692..86c8ffae 100644
--- a/templates/nextjs-api-key-template/package.json
+++ b/templates/nextjs-api-key-template/package.json
@@ -19,8 +19,8 @@
   "dependencies": {
     "@ai-sdk/openai": "2.0.16",
     "@ai-sdk/react": "2.0.17",
-    "@merit-systems/echo-next-sdk": "latest",
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-next-sdk": "0.0.29",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "@merit-systems/echo-typescript-sdk": "^1.0.17",
     "@prisma/client": "^6.16.2",
     "@radix-ui/react-avatar": "^1.1.10",
diff --git a/templates/react-chat/package.json b/templates/react-chat/package.json
index 698618b4..4c106795 100644
--- a/templates/react-chat/package.json
+++ b/templates/react-chat/package.json
@@ -12,7 +12,7 @@
   },
   "dependencies": {
     "@ai-sdk/react": "2.0.17",
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "@radix-ui/react-avatar": "^1.1.10",
     "@radix-ui/react-collapsible": "^1.1.12",
     "@radix-ui/react-hover-card": "^1.1.15",
diff --git a/templates/react-image/package.json b/templates/react-image/package.json
index 253f9965..51149575 100644
--- a/templates/react-image/package.json
+++ b/templates/react-image/package.json
@@ -12,7 +12,7 @@
   },
   "dependencies": {
     "@ai-sdk/react": "2.0.17",
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "@radix-ui/react-avatar": "^1.1.10",
     "@radix-ui/react-popover": "^1.1.15",
     "@radix-ui/react-slot": "^1.2.3",
diff --git a/templates/react/package.json b/templates/react/package.json
index 2ca9dd66..4ac205fe 100644
--- a/templates/react/package.json
+++ b/templates/react/package.json
@@ -11,7 +11,7 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@merit-systems/echo-react-sdk": "latest",
+    "@merit-systems/echo-react-sdk": "1.0.38",
     "ai": "5.0.19",
     "@ai-sdk/react": "2.0.17",
     "react": "^19.1.1",

Analysis

Template dependencies use "latest" instead of pinned versions breaking reproducibility

What fails: Template package.json files specify "@merit-systems/echo-next-sdk": "latest" and "@merit-systems/echo-react-sdk": "latest" causing different SDK versions to be installed depending on when npm install runs

How to reproduce:

# Run at different times or compare with published registry
cd templates/assistant-ui
npm install
npm list @merit-systems/echo-next-sdk  # Gets 0.0.29 despite local package.json showing 0.0.30

Result: Different installations get different SDK versions. Registry shows 0.0.29 as latest while local development expects 0.0.30, breaking consistency across environments and time periods.

Expected: Templates should pin explicit SDK versions (e.g., "0.0.29", "1.0.38") for reproducible installations per npm best practices and Next.js team's recognition of this anti-pattern

Affected files: All 9 template package.json files (assistant-ui, next, next-chat, next-image, next-video-template, nextjs-api-key-template, react, react-chat, react-image)

"@ai-sdk/openai": "2.0.16",
"@ai-sdk/react": "2.0.17",
"@assistant-ui/react": "^0.11.3",
Expand Down
4 changes: 2 additions & 2 deletions templates/next-chat/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
},
"dependencies": {
"@ai-sdk/react": "2.0.17",
"@merit-systems/echo-next-sdk": "0.0.24",
"@merit-systems/echo-react-sdk": "1.0.33",
"@merit-systems/echo-next-sdk": "latest",
"@merit-systems/echo-react-sdk": "latest",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-hover-card": "^1.1.15",
Expand Down
4 changes: 2 additions & 2 deletions templates/next-image/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
"lint": "next lint"
},
"dependencies": {
"@merit-systems/echo-next-sdk": "0.0.24",
"@merit-systems/echo-react-sdk": "1.0.33",
"@merit-systems/echo-next-sdk": "latest",
"@merit-systems/echo-react-sdk": "latest",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
Expand Down
4 changes: 2 additions & 2 deletions templates/next-video-template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
},
"dependencies": {
"@google/genai": "^1.20.0",
"@merit-systems/echo-next-sdk": "0.0.25",
"@merit-systems/echo-react-sdk": "1.0.34",
"@merit-systems/echo-next-sdk": "latest",
"@merit-systems/echo-react-sdk": "latest",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
Expand Down
2 changes: 1 addition & 1 deletion templates/next/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"postinstall": "npm dedupe || true"
},
"dependencies": {
"@merit-systems/echo-next-sdk": "0.0.24",
"@merit-systems/echo-next-sdk": "latest",
"ai": "5.0.19",
"@ai-sdk/react": "2.0.17",
"@ai-sdk/openai": "2.0.16",
Expand Down
4 changes: 2 additions & 2 deletions templates/nextjs-api-key-template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
"dependencies": {
"@ai-sdk/openai": "2.0.16",
"@ai-sdk/react": "2.0.17",
"@merit-systems/echo-next-sdk": "0.0.24",
"@merit-systems/echo-react-sdk": "1.0.33",
"@merit-systems/echo-next-sdk": "latest",
"@merit-systems/echo-react-sdk": "latest",
"@merit-systems/echo-typescript-sdk": "^1.0.17",
"@prisma/client": "^6.16.2",
"@radix-ui/react-avatar": "^1.1.10",
Expand Down
2 changes: 1 addition & 1 deletion templates/react-chat/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@ai-sdk/react": "2.0.17",
"@merit-systems/echo-react-sdk": "1.0.33",
"@merit-systems/echo-react-sdk": "latest",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-hover-card": "^1.1.15",
Expand Down
2 changes: 1 addition & 1 deletion templates/react-image/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@ai-sdk/react": "2.0.17",
"@merit-systems/echo-react-sdk": "1.0.33",
"@merit-systems/echo-react-sdk": "latest",
"@radix-ui/react-avatar": "^1.1.10",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-slot": "^1.2.3",
Expand Down
2 changes: 1 addition & 1 deletion templates/react/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"preview": "vite preview"
},
"dependencies": {
"@merit-systems/echo-react-sdk": "^1.0.33",
"@merit-systems/echo-react-sdk": "latest",
"ai": "5.0.19",
"@ai-sdk/react": "2.0.17",
"react": "^19.1.1",
Expand Down
Loading