You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Status: épico ainda NÃO grelhado. Este issue é só o problema em si, para servir de ponto de partida do grilling.
P5 (roadmap: P1 pairing-code / P2 polls #16 / P3 auth-store #17 / P4 Discord #18 / P5 este). É um spike de avaliação — o resultado pode ser "NÃO migrar". Nada de migrar sem o veredito do grill.
Problem Statement
O toolchain hoje é um mosaico em cima do Node: pnpm (package manager) + tsx (dev/run TS) + tsup (build ESM) + node:test via tsx (tsx --test) + node (runtime do serviço em prod, systemd --user). São várias ferramentas com sobreposição de responsabilidade. O bun promete unificar isso (PM + runtime + test runner + bundler) com instalação/execução mais rápidas.
Falta avaliar se migrar (parcial ou total) pro bun compensa neste projeto, ou se o risco/atrito supera o ganho. Não há decisão — há a pergunta.
Escopo do spike (o que medir/decidir no grill)
Bun pode substituir camadas independentes; a avaliação deve tratar cada uma:
PM (pnpm → bun install): lockfile, workspaces (o repo tem workspaces: ["."]), velocidade real.
Dev/build (tsx/tsup → bun nativo: bun --watch, bun build): ainda precisa de ESM; conferir saída equivalente.
Testes (tsx --test / node:test → bun test): a suíte usa a API node:test (import { test } from 'node:test') — migrar pro runner do bun é reescrita não-trivial dos imports/asserts.
Problem Statement
O toolchain hoje é um mosaico em cima do Node: pnpm (package manager) + tsx (dev/run TS) + tsup (build ESM) + node:test via tsx (
tsx --test) + node (runtime do serviço em prod, systemd--user). São várias ferramentas com sobreposição de responsabilidade. O bun promete unificar isso (PM + runtime + test runner + bundler) com instalação/execução mais rápidas.Falta avaliar se migrar (parcial ou total) pro bun compensa neste projeto, ou se o risco/atrito supera o ganho. Não há decisão — há a pergunta.
Escopo do spike (o que medir/decidir no grill)
Bun pode substituir camadas independentes; a avaliação deve tratar cada uma:
pnpm→bun install): lockfile, workspaces (o repo temworkspaces: ["."]), velocidade real.node dist/index.js→bun dist/index.jsou rodar.tsxdireto): impacta oExecStartda unit systemd (hoje node absoluto viacommand -v node, ver chore: Makefile targets for systemd --user service lifecycle #10) e o footgun de PATH.tsx/tsup→ bun nativo:bun --watch,bun build): ainda precisa de ESM; conferir saída equivalente.tsx --test/node:test→bun test): a suíte usa a APInode:test(import { test } from 'node:test') — migrar pro runner do bun é reescrita não-trivial dos imports/asserts.Riscos / pontos de compatibilidade (a validar)
better-sqlite3(N-API) — roda no bun? Ou trocar porbun:sqlite? Isso cruza com o refactor: auth store da sessão Baileys em SQLite (auth.db) (P3) #17 (auth store SQLite) e ooutbox.db.@whiskeysockets/baileys), Ink/React (TUI), pino: compat com o runtime do bun (event loop, streams, workers).Critério de decisão (a definir no grill)
Fora do escopo