auroq-os 2.4.11 → 2.4.12

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.4.11
4
+ version: 2.4.12
5
5
  installedAt: '2026-03-16'
6
6
 
7
7
  ide:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.4.12] — 2026-09-03
4
+
5
+ ### "Status: ativo" e logo em seguida "Sem acesso ativo" no Windows
6
+ Aluna com contrato em dia rodou o instalador no Windows, viu o acesso confirmado e o
7
+ instalador parou dizendo que nao havia acesso, com um "Assertion failed" no meio. Nao
8
+ era o acesso: e um defeito do proprio Node 24 no Windows (nodejs/node#56645) — o
9
+ programa morre ao encerrar logo depois de falar com a internet, e o codigo de saida
10
+ vira erro. O instalador so olha o codigo de saida.
11
+
12
+ - **O `check-access` encerra de forma segura.** No Windows ele deixa o processo
13
+ terminar sozinho (com folga de 300 ms pro socket fechar) em vez de forcar a saida.
14
+ - **O instalador do Windows baixa o Node 22 (LTS ate abril/2027)** em vez do 24, e
15
+ troca um motor de bolso 24+ que ja estiver instalado. Node que o aluno instalou por
16
+ conta propria nao e tocado. O Mac segue no 24: o defeito e so do Windows.
17
+ - **Pra quem ja travou nisso:** colar o mesmo endereco de novo resolve. Nada precisa
18
+ ser desinstalado.
19
+
3
20
  ## [2.4.11] — 2026-09-02
4
21
 
5
22
  ### Os comandos pararam de prometer "8 dias"
package/bin/auroq-os.js CHANGED
@@ -1175,8 +1175,10 @@ if (command === 'init' || command === 'install') {
1175
1175
  } else if (command === 'check-access') {
1176
1176
  // Gate estrito (online) — usado pelo Ops antes de *update e pelo arcane-pack.
1177
1177
  // Exit 0 = contrato ativo validado agora; exit 1 = bloqueado / sem conexao.
1178
+ // `auth.sair` em vez de process.exit: no Windows, sair na hora depois do fetch
1179
+ // derruba o Node 24+ com "Assertion failed" e o instalador le como sem acesso.
1178
1180
  auth.requireActiveAccess()
1179
- .then(() => process.exit(0))
1181
+ .then(() => auth.sair(0))
1180
1182
  .catch(err => {
1181
1183
  error(`Falha ao verificar acesso: ${err.message}`);
1182
1184
  process.exit(1);
@@ -43,6 +43,14 @@ $script:AuroqRodaDeArquivo = [bool]$PSCommandPath
43
43
 
44
44
  $AuroqSuporte = '11 93621-4486'
45
45
  $AuroqNodeMin = 20
46
+ # No Windows o Node 24+ morre ao encerrar logo depois de falar com a rede
47
+ # ("Assertion failed: !(handle->flags & UV_HANDLE_CLOSING)", nodejs/node#56645).
48
+ # O check-access imprimia "Status: ativo" e saia com erro, e o instalador lia
49
+ # "sem acesso ativo". Enquanto o Node nao corrige, o motor de bolso fica na 22
50
+ # (LTS ate abril/2027) e um motor de bolso 24+ ja instalado e trocado. Node que
51
+ # o proprio aluno instalou nao se mexe: o auroq-os tambem se protege ao sair.
52
+ $AuroqNodeEvitarDe = 24
53
+ $AuroqNodeSerie = 'v22.*'
46
54
  $AuroqBuildMin = 17763 # Windows 10 1809
47
55
  $AuroqDiscoMinMb = 2048
48
56
 
@@ -148,6 +156,15 @@ function Test-AuroqNode {
148
156
  return ($numero -ge $AuroqNodeMin)
149
157
  }
150
158
 
159
+ function Test-AuroqNodeTrocar {
160
+ param([string]$Versao = '')
161
+ if ([string]::IsNullOrWhiteSpace($Versao)) { return $false }
162
+ $maior = ($Versao.TrimStart('v') -split '\.')[0]
163
+ $numero = 0
164
+ if (-not [int]::TryParse($maior, [ref]$numero)) { return $false }
165
+ return ($numero -ge $AuroqNodeEvitarDe)
166
+ }
167
+
151
168
  function Get-AuroqNodeZip {
152
169
  param([string]$Versao = '', [string]$Arquitetura = 'AMD64')
153
170
  $alvo = 'x64'
@@ -377,12 +394,18 @@ function Install-AuroqNode {
377
394
  } catch {
378
395
  $atual = ''
379
396
  }
380
- if (Test-AuroqNode $atual) {
397
+ $nodeDir = Get-AuroqNodeDir
398
+ $deBolso = Test-Path (Join-Path $nodeDir 'node.exe')
399
+ $trocar = $deBolso -and (Test-AuroqNodeTrocar $atual)
400
+ if ((Test-AuroqNode $atual) -and -not $trocar) {
381
401
  Write-AuroqOk "O motor ja estava instalado ($atual)"
382
402
  Write-AuroqLog 'motor' "ja-existia versao=$atual"
383
403
  return
384
404
  }
385
- if ($atual) {
405
+ if ($trocar) {
406
+ Write-AuroqAviso "O motor $atual tem um defeito conhecido no Windows; vou trocar pela versao estavel anterior."
407
+ Write-AuroqLog 'motor' "troca versao=$atual"
408
+ } elseif ($atual) {
386
409
  Write-AuroqAviso "Voce ja tinha um motor antigo ($atual); vou instalar um novo do lado, sem mexer no seu."
387
410
  }
388
411
  Write-AuroqDiz ' (e um programa que fica numa pasta sua, nao pede senha e nao mexe em nada do seu Windows)'
@@ -395,7 +418,7 @@ function Install-AuroqNode {
395
418
  } catch {
396
419
  Write-AuroqErro 'Nao consegui baixar o motor do sistema.' 'Confira a internet (ou o antivirus, se houver) e rode o mesmo comando de novo.'
397
420
  }
398
- $escolhido = $indice | Where-Object { $_.version -like 'v24.*' } | Select-Object -First 1
421
+ $escolhido = $indice | Where-Object { $_.version -like $AuroqNodeSerie } | Select-Object -First 1
399
422
  if (-not $escolhido) { $escolhido = $indice | Where-Object { $_.lts } | Select-Object -First 1 }
400
423
  if (-not $escolhido) {
401
424
  Write-AuroqErro 'Nao consegui descobrir qual motor baixar.' 'Rode o mesmo comando de novo em alguns minutos. Se insistir, chame o suporte.'
@@ -428,7 +451,6 @@ function Install-AuroqNode {
428
451
  # mark-of-the-web: sem desbloquear, o Windows recusa abrir o que veio da internet
429
452
  Unblock-File -Path $destino -ErrorAction SilentlyContinue
430
453
 
431
- $nodeDir = Get-AuroqNodeDir
432
454
  $pai = Split-Path $nodeDir
433
455
  try {
434
456
  if (-not (Test-Path $pai)) { New-Item -ItemType Directory -Path $pai -Force | Out-Null }
package/lib/auth.js CHANGED
@@ -412,7 +412,24 @@ async function requireActiveAccess() {
412
412
  return saved;
413
413
  }
414
414
 
415
+ // Encerrar logo depois de falar com a rede derruba o Node 24+ no Windows com
416
+ // "Assertion failed: !(handle->flags & UV_HANDLE_CLOSING)" (nodejs/node#56645):
417
+ // o socket do fetch ainda esta fechando quando o process.exit desmonta o processo,
418
+ // e o codigo de saida vira 3 — o instalador lia isso como "sem acesso ativo" logo
419
+ // depois de imprimir "Status: ativo". Aqui o processo termina por conta propria;
420
+ // no Windows, se algo segurar o loop, forca a saida em 300 ms (tempo de sobra pro
421
+ // socket fechar). Fora do Windows nada muda.
422
+ function sair(codigo) {
423
+ process.exitCode = codigo;
424
+ if (process.platform !== 'win32') {
425
+ process.exit(codigo);
426
+ return;
427
+ }
428
+ setTimeout(() => process.exit(codigo), 300).unref();
429
+ }
430
+
415
431
  module.exports = {
432
+ sair,
416
433
  interactiveLogin,
417
434
  getValidSession,
418
435
  requireActiveAccess,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auroq-os",
3
- "version": "2.4.11",
3
+ "version": "2.4.12",
4
4
  "description": "Auroq OS — Sistema Operacional de IA para Experts",
5
5
  "bin": {
6
6
  "auroq-os": "bin/auroq-os.js"