@polymorphism-tech/morph-spec 10.7.0 → 10.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Spec-driven development framework for multi-stack projects. Turns feature requests into implementation-ready code through structured, AI-orchestrated phases.
4
4
 
5
5
  **Package:** `@polymorphism-tech/morph-spec`
6
- **Version:** 10.7.0
6
+ **Version:** 10.7.1
7
7
  **Requires:** Node.js 22+, Claude Code
8
8
 
9
9
  ---
@@ -376,4 +376,4 @@ Code generated by morph-spec (contracts, templates, implementation output) belon
376
376
 
377
377
  ---
378
378
 
379
- *morph-spec v10.7.0 by [Polymorphism Tech](https://polymorphism.tech)*
379
+ *morph-spec v10.7.1 by [Polymorphism Tech](https://polymorphism.tech)*
package/bin/morph-spec.js CHANGED
@@ -585,6 +585,8 @@ const VIEW_COMMANDS = new Set(['plan-check', 'gate-check', 'gate-decision', 'app
585
585
  program.hook('preAction', async (_, action) => {
586
586
  const [feature] = action.args;
587
587
  if (!VIEW_COMMANDS.has(action.name()) || !/^[a-z0-9][\w-]*$/i.test(feature ?? '')) return;
588
+ const { refreshesFeatureView } = await import('../src/lib/verify/detached.js');
589
+ if (!refreshesFeatureView()) return;
588
590
  const { refreshFeatureView } = await import('../src/lib/view/feature-view.js');
589
591
  process.on('exit', () => refreshFeatureView(process.cwd(), feature));
590
592
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morph-spec",
3
- "version": "10.7.0",
3
+ "version": "10.7.1",
4
4
  "displayName": "MORPH-SPEC Framework",
5
5
  "description": "Spec-driven development with 38 agents and 8-phase workflow for .NET/Blazor/Next.js/Azure",
6
6
  "publisher": "polymorphism-tech",
@@ -174,4 +174,4 @@ Never edited directly — go through CLI commands or `morph-spec update` instead
174
174
 
175
175
  ---
176
176
 
177
- *morph-spec v10.7.0 by Polymorphism Tech*
177
+ *morph-spec v10.7.1 by Polymorphism Tech*
@@ -89,4 +89,4 @@ morph-spec doctor
89
89
 
90
90
  ---
91
91
 
92
- *morph-spec v10.7.0 by Polymorphism Tech*
92
+ *morph-spec v10.7.1 by Polymorphism Tech*
@@ -110,7 +110,9 @@ function readUserSettings(env = process.env) {
110
110
  }
111
111
 
112
112
  function git(args, cwd) {
113
- return execFileSync('git', args, { cwd, stdio: ['ignore', 'pipe', 'ignore'], timeout: 3000, windowsHide: true }).toString('utf8').trim();
113
+ // --no-optional-locks: status/diff don't write the index, so they never take .git/index.lock
114
+ // nor leave it stale when the 3s timeout kills git on a large repo
115
+ return execFileSync('git', ['--no-optional-locks', ...args], { cwd, stdio: ['ignore', 'pipe', 'ignore'], timeout: 3000, windowsHide: true }).toString('utf8').trim();
114
116
  }
115
117
 
116
118
  // `-uno`: porcelain v2 lists untracked entries by default, which would change what the file count means.
@@ -4,7 +4,7 @@ description: Guia a criação de uma landing page nova ponta-a-ponta a partir do
4
4
  version: core
5
5
  when_to_use: Use quando for iniciar um novo projeto de LP com o template Umbraco genérico
6
6
  user-invocable: true
7
- cliVersion: "10.7.0"
7
+ cliVersion: "10.7.1"
8
8
  stacks:
9
9
  - umbraco
10
10
  ---
@@ -4,7 +4,7 @@ description: Migra uma landing page existente (React/Vite, Next.js estático ou
4
4
  version: core
5
5
  when_to_use: Use quando o usuário pedir "use /migrate-lp-to-umbraco {projeto}" ou descrever a necessidade de migrar uma LP para Umbraco
6
6
  user-invocable: true
7
- cliVersion: "10.7.0"
7
+ cliVersion: "10.7.1"
8
8
  stacks:
9
9
  - umbraco
10
10
  ---
@@ -4,7 +4,7 @@ description: Implementa o plano aprovado de uma feature morph-spec inteiro nesta
4
4
  version: core
5
5
  when_to_use: Use com o gate do plano aprovado ("/morph-apply {feature}", "implementar feature"), em "/morph-review {feature}" (entra no §5), em "/morph-hotfix {feature}" ou incidente de produção (references/hotfix.md), ou quando `morph-spec next` mandar implement, verify, fix, review ou finish
6
6
  user-invocable: true
7
- cliVersion: "10.7.0"
7
+ cliVersion: "10.7.1"
8
8
  ---
9
9
 
10
10
  # morph-apply
@@ -4,7 +4,7 @@ description: Leva um pedido ou o link de uma issue ao plano aprovado — roteia
4
4
  version: core
5
5
  when_to_use: Use quando uma feature, bug ou chore começar ("/morph-plan {feature}", "/morph-plan <link da issue>", "vamos planejar X"), ou ao retomar uma feature cujo gate plan ainda não foi aprovado
6
6
  user-invocable: true
7
- cliVersion: "10.7.0"
7
+ cliVersion: "10.7.1"
8
8
  ---
9
9
 
10
10
  # morph-plan
@@ -4,7 +4,7 @@ description: Conduz a fase de UI/UX de uma feature com plano aprovado — render
4
4
  version: core
5
5
  when_to_use: Use quando o ramo de design for tomado (morph-spec advance {feature} --design), antes de /morph-apply
6
6
  user-invocable: true
7
- cliVersion: "10.7.0"
7
+ cliVersion: "10.7.1"
8
8
  ---
9
9
 
10
10
  # morph-uiux
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polymorphism-tech/morph-spec",
3
- "version": "10.7.0",
3
+ "version": "10.7.1",
4
4
  "description": "MORPH-SPEC: NLH (Natural Language Harness) for spec-driven development with Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -51,6 +51,9 @@ const removeRun = (paths) => {
51
51
  for (const file of Object.values(paths)) rmSync(file, { force: true });
52
52
  };
53
53
 
54
+ // launch and watchdog run without a console on win32: every git the view spawns there opens a window.
55
+ export const refreshesFeatureView = (env = process.env) => !['launch', 'watchdog'].includes(env[DETACH_STAGE_ENV]);
56
+
54
57
  export function matchesRun(record, { key, args }) {
55
58
  return record?.key === key && JSON.stringify(record.args) === JSON.stringify(args);
56
59
  }