invos 2.0.4 → 2.0.5

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.
@@ -0,0 +1,45 @@
1
+ # Changelog
2
+
3
+ Todas as mudanças notáveis no INVOS. Formato baseado em [Keep a Changelog](https://keepachangelog.com/).
4
+
5
+ ## [2.0.4] - 2026-07-29
6
+
7
+ ### Fixed
8
+ - Symlinks Windows: fallback para copyFileSync quando symlinkSync falha (EPERM)
9
+ - Symlinks stale: limpeza automática de symlinks quebrados em `.claude/skills/`
10
+ - Dead code removido no `install.js` — loop simplificado
11
+ - `.env` não vaza mais em subpastas do bundle (SKIP recursivo)
12
+ - `.env.example` não é mais sobrescrito em updates
13
+ - Doctor: threshold reduzido de 5 para 1 (só erro se zero skills)
14
+ - Doctor `--fix` só roda quando há issues reais
15
+ - Stack traces completas em erros CLI
16
+ - Comparação de paths normalizada com `path.resolve()`
17
+ - Race condition (TOCTOU) no install tratada com try/catch
18
+
19
+ ## [2.0.3] - 2026-07-29
20
+
21
+ ### Fixed
22
+ - Templates de memória (`empresa.md`, `estrategia.md`) limpos — dados preenchidos incorretamente removidos
23
+
24
+ ## [2.0.2] - 2026-07-28
25
+
26
+ ### Fixed
27
+ - 8 findings de segurança corrigidos
28
+ - README atualizado
29
+ - Manifesto open-source
30
+
31
+ ## [2.0.1] - 2026-07-27
32
+
33
+ ### Added
34
+ - Kit INVOS v2 sincronizado do monorepo
35
+ - ASCII art logo
36
+ - Reenquadramento como AI co-founder
37
+
38
+ ## [2.0.0] - 2026-07-26
39
+
40
+ ### Added
41
+ - INVOS v2: novo kit, novo README, MIT license
42
+ - CLI: bundle kit para npm publish (`npx invos` de qualquer máquina)
43
+ - Skills: carrossel, humanizer, SEO, ads, notion, youtube-summarizer
44
+ - Squads: advisory-board, brand, hormozi-squad
45
+ - Comandos: init, install, update, doctor
package/kit/INVOS.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.0.4",
2
+ "version": "2.0.5",
3
3
  "manifest": "OPEN_SOURCE",
4
4
  "product": {
5
5
  "name": "invos",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "invos",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "INVOS — OS do negócio em arquivos. Open-source. CLI: init, install, update, doctor.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,7 +11,8 @@
11
11
  },
12
12
  "scripts": {
13
13
  "bundle-kit": "node scripts/bundle-kit.mjs",
14
- "prepublishOnly": "node scripts/bundle-kit.mjs"
14
+ "prepublishOnly": "node scripts/bundle-kit.mjs",
15
+ "test": "node tests/smoke-test.mjs"
15
16
  },
16
17
  "files": [
17
18
  "bin/",
@@ -1,5 +1,6 @@
1
1
  import { existsSync, readdirSync } from 'node:fs';
2
2
  import { resolve } from 'node:path';
3
+ import { execSync } from 'node:child_process';
3
4
  import { loadManifest } from '../manifest.js';
4
5
  import { readLock } from '../lock.js';
5
6
  import { checkClaudeSymlinks, syncClaudeSymlinks } from '../symlinks.js';
@@ -76,8 +77,20 @@ export async function doctor(kit, kitRoot, targetDir, args) {
76
77
  }
77
78
 
78
79
  const man = loadManifest(resolve(targetDir, 'INVOS.json'));
79
- r.push(` kit ${man?.version || kit?.version || '?'}`);
80
- r.push(' update: npm package kit (npx invos@latest update)');
80
+ const currentVersion = man?.version || kit?.version || '?';
81
+ r.push(` kit v${currentVersion}`);
82
+
83
+ try {
84
+ const latest = execSync('npm view invos version --no-optional 2>/dev/null', { encoding: 'utf8', timeout: 5000 }).trim();
85
+ if (latest && latest !== currentVersion) {
86
+ r.push(` → nova versão disponível: v${latest}`);
87
+ r.push(' update: npx invos@latest update');
88
+ } else {
89
+ r.push(' ✓ versão atualizada');
90
+ }
91
+ } catch {
92
+ r.push(' update: npx invos@latest update');
93
+ }
81
94
 
82
95
  console.log(r.join('\n'));
83
96
  if (!ok) {