auroq-os 2.5.9 → 2.5.10

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.
@@ -1,7 +1,7 @@
1
1
  project:
2
2
  name: "Auroq OS"
3
3
  type: greenfield
4
- version: 2.5.9
4
+ version: 2.5.10
5
5
  installedAt: '2026-03-16'
6
6
 
7
7
  ide:
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 2.5.10 — 2026-09-19
2
+
3
+ ### Conteudo ao vivo passa a usar o cliente 0.6.0
4
+
5
+ - `arcane-mcp@0.6.0` foi publicado no npm em 19/09/2026 e virou o registro oficial de Claude Code e Codex.
6
+ - Instalacao, manutencao, `register-mcp` e `doctor` trocam qualquer pin antigo pelo vigente — inclusive quem ficou com o `0.6.0` fantasma das 2.5.4/2.5.5, que agora resolve de verdade.
7
+ - Sai o remendo que tratava `0.6.0` como versao morta. A protecao contra pin inexistente continua no gate de publicacao, que agora exige do `npm view` a versao exata do pin.
8
+
1
9
  ## 2.5.9 — 2026-09-14
2
10
 
3
11
  ### Historico duravel do trabalho Arcane
package/README.md CHANGED
@@ -230,12 +230,12 @@ agents/ → Seu exercito (companion, workers, minds, squads)
230
230
 
231
231
  ## Observabilidade do motor (candidato 2.5.2)
232
232
 
233
- Apos publicacao, `npx -y auroq-os@2.5.8 doctor` mostra a fila local segura e os comandos pinados de
234
- manutencao/diagnostico. `npx -y auroq-os@2.5.8 manutencao` preserva o caminho existente
233
+ Apos publicacao, `npx -y auroq-os@2.5.10 doctor` mostra a fila local segura e os comandos pinados de
234
+ manutencao/diagnostico. `npx -y auroq-os@2.5.10 manutencao` preserva o caminho existente
235
235
  de consentimento legado, studentFiles, customizacoes e dados do negocio. Nao ha
236
- migracao forcada. O registro MCP aponta para `arcane-mcp@0.5.0`, publicado e validado.
237
- O hotfix 2.5.8 restaura a conexao enquanto o candidato 0.6.0 passa por validacao separada.
238
- Os instaladores oficiais devem fixar 2.5.8 depois da publicacao e da verificacao do tarball.
236
+ migracao forcada. O registro MCP aponta para `arcane-mcp@0.6.0`, publicado no npm em
237
+ 19/09/2026; `npm run release:verify` recusa publicar com um pin que o npm nao resolva.
238
+ Os instaladores oficiais devem fixar 2.5.10 depois da publicacao e da verificacao do tarball.
239
239
 
240
240
  O CLI inicia captura antes das dependencias pesadas e registra resultado ao sair.
241
241
  Eventos com identidade ja existente podem seguir pela rota autenticada na proxima
package/bin/auroq-os.js CHANGED
@@ -28,7 +28,7 @@ async function observedMain() {
28
28
  telemetry.runtimeReady=()=>{importing=false;};
29
29
  runRuntime(telemetry);
30
30
  } catch {
31
- console.error('[auroq-os] '+(importing?'BOOTSTRAP_IMPORT':'RUNTIME_FAILURE')+'. Rode: npx -y auroq-os@2.5.8 doctor');
31
+ console.error('[auroq-os] '+(importing?'BOOTSTRAP_IMPORT':'RUNTIME_FAILURE')+'. Rode: npx -y auroq-os@2.5.10 doctor');
32
32
  process.exitCode=1;
33
33
  }
34
34
  }
@@ -363,14 +363,14 @@ async function runDoctor(targetDir) {
363
363
  pin = json?.mcpServers?.arcane?.args?.find(a => String(a).startsWith('arcane-mcp@')) || null;
364
364
  } catch { /* arquivo corrompido cai no erro abaixo */ }
365
365
  }
366
- if (pin && pinNaoPublicado(pin)) {
367
- const pinMorto = pin;
366
+ if (pin && pin !== ARCANE_MCP_PIN) {
367
+ const pinAntigo = pin;
368
368
  try {
369
369
  await writeArcaneMcpConfig(targetDir);
370
370
  pin = ARCANE_MCP_PIN;
371
- warn(`O registro apontava pra ${pinMorto}, que nao existe no npm. Reescrevi pra ${pin}. Feche e abra o Claude Code e o Codex.`);
371
+ warn(`O registro apontava pra ${pinAntigo}, versao antiga do conteudo ao vivo. Atualizei pra ${pin}. Feche e abra o Claude Code e o Codex.`);
372
372
  } catch (e) {
373
- error(`O registro aponta pra ${pinMorto}, que nao existe no npm, e nao consegui reescrever (${e.code || e.message})`);
373
+ error(`O registro aponta pra ${pinAntigo}, versao antiga do conteudo ao vivo, e nao consegui atualizar (${e.code || e.message})`);
374
374
  problemas.push('Rode: npx auroq-os@latest register-mcp na pasta. Depois feche e abra o Claude Code e o Codex.');
375
375
  }
376
376
  }
@@ -521,11 +521,10 @@ async function runDoctor(targetDir) {
521
521
  // (rede domestica + antivirus) a aluna viu timeout em todas as que fez. Por isso:
522
522
  // (1) o registro do Codex pede mais tempo, (2) instalacao/atualizacao ja baixam o
523
523
  // pacote, (3) o doctor mede o arranque de verdade em vez de so olhar o registro.
524
- const ARCANE_MCP_PIN = 'arcane-mcp@0.5.0';
525
- // 2.5.4/2.5.5 pinaram 0.6.0 sem o pacote existir no npm. Quando 0.6.0 sair de verdade, tire daqui.
526
- function pinNaoPublicado(pin) {
527
- return pin === 'arcane-mcp@0.6.0';
528
- }
524
+ // 2.5.4/2.5.5 pinaram uma versao que ainda nao estava no npm e o MCP fechava a conexao.
525
+ // Por isso `scripts/assert-mcp-pin.mjs` (release:verify/prepublishOnly) recusa publicar
526
+ // com um pin que o `npm view` nao resolva exatamente. Trocar o pin aqui exige o pacote ja publicado.
527
+ const ARCANE_MCP_PIN = 'arcane-mcp@0.6.0';
529
528
  const CODEX_MCP_STARTUP_SEC = 120;
530
529
  // O Claude Code tambem desistia aos 30s (MCP_TIMEOUT) e o aluno via CONNECT_TIMEOUT com o
531
530
  // servidor no ar e nenhum pedido chegando nele (11/09, EMB-041). Ele le o tempo do `env` das
@@ -578,7 +577,7 @@ function blocoCodexArcane(pin, opcoes) {
578
577
  }
579
578
 
580
579
  // Baixa o pacote do conteudo ao vivo com o MESMO nome que o registro usa (o cache do
581
- // npx e por nome+versao: `arcane-mcp` e `arcane-mcp@0.5.0` sao caches diferentes).
580
+ // npx e por nome+versao: `arcane-mcp` e `arcane-mcp@0.6.0` sao caches diferentes).
582
581
  // `npx` no Windows e um .cmd: sem shell o Node recusa (EINVAL) e com `shell: true` o Node 24
583
582
  // imprime um DeprecationWarning na tela do aluno (DEP0190). Chamar o cmd.exe direto, sem shell.
584
583
  function comandoNpx(args) {
@@ -1804,7 +1803,7 @@ if (['init', 'install', 'update'].includes(command)) {
1804
1803
  error('Comando aposentado. Nada foi instalado ou alterado.');
1805
1804
  error('Primeira instalacao: https://arcane.arka.education/auroq');
1806
1805
  error('No negocio existente, peca ao Ops: manutencao do motor. Conteudo chega pelo MCP.');
1807
- error('Diagnostico: npx -y auroq-os@2.5.8 doctor. Manutencao: npx -y auroq-os@2.5.8 manutencao.');
1806
+ error('Diagnostico: npx -y auroq-os@2.5.10 doctor. Manutencao: npx -y auroq-os@2.5.10 manutencao.');
1808
1807
  process.exitCode = 1;
1809
1808
  } else if (command === 'instalar' || command === 'manutencao') {
1810
1809
  // `--pasta <nome>`: o instalador manda o CLI criar e entrar na pasta do negocio,
@@ -1931,6 +1930,6 @@ if (['init', 'install', 'update'].includes(command)) {
1931
1930
  log('');
1932
1931
  }
1933
1932
 
1934
- if (process.env.AUROQ_EXPORTA_INTERNOS === '1') module.exports = { blocoCodexArcane, envCodexArcane, lerBlocoArcane, lerEnvDoBloco, limparArcaneDoGlobal, envComoCodex, argumentosCodexSmoke, avaliarEventosCodex, pinNaoPublicado, ARCANE_MCP_PIN };
1933
+ if (process.env.AUROQ_EXPORTA_INTERNOS === '1') module.exports = { blocoCodexArcane, envCodexArcane, lerBlocoArcane, lerEnvDoBloco, limparArcaneDoGlobal, envComoCodex, argumentosCodexSmoke, avaliarEventosCodex, ARCANE_MCP_PIN };
1935
1934
 
1936
1935
  }
@@ -114,8 +114,7 @@ Limites: 200 slots por formato, sem captura antes
114
114
  do download do proprio script, sem garantia de reconexao/adocao. Fonte oficial segue
115
115
  neste diretorio; `plataforma-arcane/npm run sync:installer` sincroniza as duas copias.
116
116
 
117
- Pins oficiais usam `auroq-os@2.5.8`, hotfix que registra a versao publicada
118
- `arcane-mcp@0.5.0`.
119
- Candidato cliente 0.6.0 segue separado ate concluir os gates. O runtime Windows
117
+ Pins oficiais usam `auroq-os@2.5.10`, que registra o cliente publicado
118
+ `arcane-mcp@0.6.0` (no npm desde 19/09/2026). O runtime Windows
120
119
  faz fail-closed ate dispor de ACL/no-follow seguros; spool PowerShell permanece local.
121
120
  Execucao Linux de Bash/Perl nao valida macOS nem Windows/PowerShell 5.1.
@@ -589,7 +589,7 @@ function Invoke-AuroqLogin {
589
589
  # sucesso. Usado como pergunta de sim/nao, ele dizia "voce ja estava logado"
590
590
  # pra quem nunca logou, pulava o portao e deixava a conta sem acesso chegar ate
591
591
  # a criacao da pasta.
592
- & (Get-AuroqNpx) -y auroq-os@2.5.9 check-access
592
+ & (Get-AuroqNpx) -y auroq-os@2.5.10 check-access
593
593
  if ($LASTEXITCODE -ne 0) {
594
594
  Write-AuroqLog 'login' 'recusado'
595
595
  Write-Host ''
@@ -677,7 +677,7 @@ function Invoke-AuroqInit {
677
677
  if ($env:AUROQ_INSTALL_DRY_RUN) { Write-AuroqOk 'Sistema - seria montado aqui'; return }
678
678
 
679
679
  Set-Location $script:AuroqPastaAlvo
680
- & (Get-AuroqNpx) -y auroq-os@2.5.9 instalar
680
+ & (Get-AuroqNpx) -y auroq-os@2.5.10 instalar
681
681
  if ($LASTEXITCODE -ne 0) {
682
682
  Write-AuroqLog 'init' 'falhou'
683
683
  Write-AuroqErro 'A montagem do sistema parou no meio.' 'Rode o mesmo comando de novo. Se repetir, mande pro suporte o arquivo install.log da pasta .auroq.'
@@ -219,9 +219,9 @@ auroq_tem_terminal() {
219
219
  # recebem pedaco do script no lugar da resposta dele.
220
220
  auroq_npx_aluno() {
221
221
  if [ -t 0 ]; then
222
- npx -y auroq-os@2.5.9 "$@"
222
+ npx -y auroq-os@2.5.10 "$@"
223
223
  else
224
- npx -y auroq-os@2.5.9 "$@" < /dev/tty
224
+ npx -y auroq-os@2.5.10 "$@" < /dev/tty
225
225
  fi
226
226
  }
227
227
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auroq-os",
3
- "version": "2.5.9",
3
+ "version": "2.5.10",
4
4
  "description": "Auroq OS — Sistema Operacional de IA para Experts",
5
5
  "bin": {
6
6
  "auroq-os": "bin/auroq-os.js"
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Recusa publicar auroq-os pinando um arcane-mcp que o npm nao resolve.
4
- * Foi assim que 2.5.4/2.5.5 sairam com arcane-mcp@0.6.0.
4
+ * Foi assim que 2.5.4/2.5.5 sairam pinando uma versao inexistente (Connection closed no aluno).
5
+ * Nao basta o `npm view` responder algo: a versao devolvida tem que ser EXATAMENTE a do pin.
5
6
  */
6
7
  import { execFileSync } from 'node:child_process';
7
8
  import fs from 'node:fs';
@@ -20,12 +21,17 @@ if (!/^arcane-mcp@\d+\.\d+\.\d+$/.test(pin)) {
20
21
  console.error(`assert-mcp-pin: pin invalido: ${pin}`);
21
22
  process.exit(1);
22
23
  }
24
+ const esperada = pin.split('@').pop();
25
+ let v;
23
26
  try {
24
- const v = execFileSync('npm', ['view', pin, 'version'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }).trim();
25
- if (!v) throw new Error('vazio');
26
- console.log(`assert-mcp-pin: ${pin} existe (${v})`);
27
+ v = execFileSync('npm', ['view', pin, 'version'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }).trim();
27
28
  } catch (e) {
28
29
  const detalhe = e.stderr ? String(e.stderr).split('\n').find(Boolean) : e.message;
29
30
  console.error(`assert-mcp-pin: ${pin} nao existe no npm. ${detalhe || ''}`.trim());
30
31
  process.exit(1);
31
32
  }
33
+ if (v !== esperada) {
34
+ console.error(`assert-mcp-pin: ${pin} resolveu para "${v || '(vazio)'}", nao para ${esperada}.`);
35
+ process.exit(1);
36
+ }
37
+ console.log(`assert-mcp-pin: ${pin} existe no npm e resolve exatamente para ${v}`);