@danhachuel/pandanews 0.4.1 → 0.4.3

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.
@@ -8,7 +8,7 @@
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com" />
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
10
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
11
- <script type="module" crossorigin src="/assets/index-WDOmiBk4.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-BLjBdAFC.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="/assets/index-CUCWGfn9.css">
13
13
  </head>
14
14
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danhachuel/pandanews",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "SaaS local de criação e automação de múltiplos blogs de notícias com IA (FastAPI + React + Tailwind).",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/scripts/start.js CHANGED
@@ -87,7 +87,7 @@ async function findFreePort(base, maxTries) {
87
87
  function encerrarPorPid(pid, motivo) {
88
88
  try {
89
89
  if (process.platform === 'win32') {
90
- spawnSync('taskkill', ['/pid', String(pid), '/f', '/t'], { windowsHide: true });
90
+ spawnSync('taskkill', ['/pid', String(pid), '/f', '/t'], { windowsHide: true, detached: true });
91
91
  } else {
92
92
  process.kill(pid, 'SIGTERM');
93
93
  }
@@ -33,6 +33,21 @@ for (const [regex, descricao] of verificacoes) {
33
33
  if (!ok) falhas += 1;
34
34
  }
35
35
 
36
+ // Regra permanente (AGENTS.md): NENHUMA spawn do launcher pode abrir janela de
37
+ // console — toda chamada spawn/spawnSync precisa de windowsHide E detached.
38
+ const chamadasSpawn = [...src.matchAll(/\bspawn(?:Sync)?\(/g)];
39
+ for (const chamada of chamadasSpawn) {
40
+ const trecho = src.slice(chamada.index, chamada.index + 700);
41
+ const temJanelaOculta = /windowsHide:\s*true/.test(trecho);
42
+ const temGrupoIsolado = /detached:\s*true/.test(trecho);
43
+ if (temJanelaOculta && temGrupoIsolado) {
44
+ console.log('PASS — spawn com windowsHide + detached (sem janela de console no usuário)');
45
+ } else {
46
+ console.log(`FAIL — spawn sem windowsHide/detached: ${trecho.slice(0, 80).replace(/\n/g, ' ')}…`);
47
+ falhas += 1;
48
+ }
49
+ }
50
+
36
51
  if (falhas > 0) {
37
52
  console.error(`Isolamento de processos: ${falhas} verificação(ões) falharam.`);
38
53
  process.exit(1);