Skip to content

Commit 4bbbf0b

Browse files
committed
feat: refinement of upgrade prompt
1 parent 885c5f3 commit 4bbbf0b

4 files changed

Lines changed: 23 additions & 21 deletions

File tree

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
## Installing dependencies
1414

15-
This project uses NPM workspaces. To install NPM packages, you only need to run `npm ci` once, in the repository root. Running `npm ci` in any other directory will cause problems.
15+
This project uses pnpm workspaces. To install packages, run `pnpm install` once in the repository root.
1616

1717
## Debugging Code Generation
1818

@@ -47,7 +47,7 @@ dotnet run -- <path-to-coalesce.json> --debug
4747

4848
```bash
4949
cd docs
50-
npm run dev
50+
pnpm dev
5151
```
5252

5353
Then open the documentation in your browser at the URL provided in the output after launching.
@@ -56,4 +56,4 @@ Then open the documentation in your browser at the URL provided in the output af
5656

5757
Execute `dotnet run`, or launch the `playground/Coalesce.Web.Vue3` project from Visual Studio.
5858

59-
If you need to run code generation for the playground project, run `npm run coalesce` in the `playground/Coalesce.Web.Vue3` directory. This will compile and then execute the local Coalesce CLI against the playground project.
59+
If you need to run code generation for the playground project, run `pnpm coalesce` in the `playground/Coalesce.Web.Vue3` directory. This will compile and then execute the local Coalesce CLI against the playground project.

playground/Coalesce.Web.Vue3/src/main.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ const examples = import.meta.glob("@/examples/**/*.vue");
4040
const router = createRouter({
4141
history: createWebHistory(),
4242
routes: [
43-
{ path: "/test", component: () => import("./components/test.vue") },
4443
{
4544
path: "/test-setup",
4645
component: () => import("./components/test-setup.vue"),

src/coalesce-mcp/src/tools/upgrade-prompt.ts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,6 @@ Gather all information needed to understand what's changed and what needs updati
260260
### Current State
261261
Find and read the user's \`Directory.Build.props\` to get their current \`CoalesceVersion\`. Read their web project's \`package.json\` for NPM package versions. Read all \`.csproj\` files for NuGet packages and target frameworks.
262262
263-
If the NPM and NuGet Coalesce versions don't match each other, warn the user immediately — mismatched versions cause bugs.
264-
265263
Use \`read_template_file\` to read the template's \`Directory.Build.props\`, \`package.json\`, \`Web.csproj\`, and \`Data.csproj\` to determine the latest versions.
266264
267265
If the user is already on the latest version, tell them and stop. Let them know that if this is unexpected, their coalesce-mcp may be outdated.
@@ -289,7 +287,6 @@ Use \`read_template_file\` to compare these files against the user's versions an
289287
- **eslint.config.mjs** — New rules, plugin changes. Note if user is still on \`.eslintrc\`.
290288
- **tsconfig.json**, **tsconfig.node.json**
291289
- **pnpm-workspace.yaml** — overrides, allowBuilds, and other pnpm settings
292-
- **.npmrc**
293290
- **.editorconfig**
294291
- **.vscode/settings.json**
295292
- **.vscode/mcp.json**
@@ -307,18 +304,23 @@ If the upgrade includes a Vuetify major version change (e.g. Vuetify 3 to 4), wa
307304
308305
## Phase 2: Ask
309306
310-
Use \`vscode_askQuestions\` with \`multiSelect: true\` to let the user choose what to do. Separate mandatory items (breaking changes, Coalesce package updates) from optional items. If you don't have that tool or a similar alternative, ask with clearly numbered items in regular output.
307+
Use \`vscode_askQuestions\` with \`multiSelect: true\` to let the user choose which significant changes to apply. If you don't have that tool or a similar alternative, ask with clearly numbered items in regular output.
308+
309+
Do NOT ask about:
310+
- Coalesce package updates (always do these)
311+
- Breaking changes from the changelog (always apply)
312+
- Minor/patch version bumps of dependencies
313+
- devDependency upgrades
314+
- Routine NuGet package bumps that simply track .NET SDK versions
311315
312-
Present options grouped by category. For example:
313-
- Required updates (Coalesce packages, breaking changes) — inform the user these will be done, no need to ask
314-
- .NET framework upgrade
315-
- Third-party NuGet package updates
316-
- Third-party NPM package updates
317-
- New packages from the template to add
318-
- Configuration file changes
316+
Only present options for decisions that meaningfully affect the project:
317+
- .NET target framework upgrade (e.g. net9.0 → net10.0)
318+
- Major version upgrades of app dependencies (e.g. Vuetify 3 → 4)
319319
- New optional features from the changelog
320+
- Significant configuration file changes (new files, structural changes — not minor tweaks)
321+
- New packages from the template that the user doesn't have yet
320322
321-
Each option should have a brief description so the user can make informed choices.
323+
Each option should have a brief description so the user can make informed choices. Inform the user that Coalesce packages, breaking changes, and routine dependency bumps will be applied automatically.
322324
323325
## Phase 3: Execute
324326
@@ -331,14 +333,15 @@ Create a TODO for EACH individual item selected by the user (not just the high-l
331333
332334
### Validation
333335
334-
After all changes are made, run these commands in order, fixing errors before proceeding:
336+
After all changes are made, run these commands in order, fixing errors before proceeding (if the project uses pnpm, use it in place of npm):
335337
336-
1. \`pnpm install\` (or \`npm install\`) in the web project. If it fails due to a recently-published package being blocked by npm's minimum release age policy, offer to re-run with \`--min-release-age=0\` after explaining the risk. Always check for warnings in the install output.
338+
1. \`npm install\` in the web project. If it fails due to a recently-published package being blocked by npm's minimum release age policy, offer to re-run with \`--min-release-age=0\` after explaining the risk. Always check for warnings in the install output.
337339
2. \`dotnet restore\` in the solution root
338340
3. Run Coalesce code generation (use the \`coalesce_generate\` tool, or run \`dotnet coalesce\` in the web project)
339341
4. \`dotnet build\` to verify .NET compilation
340-
5. \`pnpm run build\` (or \`npm run build\`) in the web project (runs \`vite build && vue-tsc --noEmit\`)
341-
6. If tests exist, run \`dotnet test\` and \`pnpm test run\` (or \`npm test run\`)
342+
5. \`npm run build\` in the web project
343+
6. \`npm run lint\` in the web project — fix all warnings and errors
344+
7. If tests exist, run \`dotnet test\` and \`npm test run\`
342345
`;
343346

344347
return {

src/coalesce-vue-vuetify3/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
],
2020
"exports": {
2121
".": {
22-
"style": "./dist/coalesce-vue-vuetify.css",
2322
"types": "./dist/index.d.ts",
23+
"style": "./dist/coalesce-vue-vuetify.css",
2424
"default": "./dist/index.js"
2525
},
2626
"./build": {

0 commit comments

Comments
 (0)