Follow-up da review de 19/08 na #802 — minors 🟢 não bloqueantes que sobraram (dois já caíram na própria PR: a guarda morta stockBalances && e o contador de testes do corpo da PR; o do EVENT_SKIP_FLAG ficou obsoleto com a remoção do skip-event-headers.ts).
Em packages/apps/bling-erp:
Da review de 13/08 (Optional, seguem válidos): preço não exportado em loja multiloja, estoque de variação sempre relançado sem comparação, /estoques/saldos sem paginação (>100 variações), feriados hardcoded até 2027, datas em UTC (off-by-one de fuso; tiny-erp subtrai 3h), numeroLoja numérico na busca do import, fallback de forma de pagamento pegando data[0] de qualquer tipo, recursão de categoria sem guarda de ciclo, pictureId podendo apontar imagem de outra variação.
Follow-up da review de 19/08 na #802 — minors 🟢 não bloqueantes que sobraram (dois já caíram na própria PR: a guarda morta
stockBalances &&e o contador de testes do corpo da PR; o doEVENT_SKIP_FLAGficou obsoleto com a remoção doskip-event-headers.ts).Em
packages/apps/bling-erp:src/integration/export-product-to-bling.ts— doisGET /produtos/{blingProductId}idênticos na mesma execução (blocos de variações com preço divergente e de releitura pós-POSTnão são exclusivos), num app que economiza cota diária.src/integration/export-product-to-bling.ts—isDetailLoadedé derivável deblingProducts, que segue em escopo e inalterado.src/bling-auth/client.ts:12-15— comentário afirma que "um campo de instância nunca espaçaria nada", o que é falso (ocheckTimeantigo espaçava chamadas sequenciais da mesma instância; o que não cobria era concorrência). O trade-off real do escopo de módulo — todo tráfego Bling do processo serializado a 1 req/s entre handlers independentes — fica escondido.src/bling-auth/check-enable-api.ts—RATE_LIMIT_WINDOW_MSmora no consumidor e é importado por quem implementa a política (create-access.ts), enquantoEXPIRES_IN_GAP_SECfoi para o módulo neutro (tokens-doc.ts): duas convenções para o mesmo problema. E o bloco de doc docheckEnableApificou colado na constante inserida entre ele e a função.src/integration/parsers/order-to-bling.ts:16—hasWarnedHolidaysé estado mutável de módulo num arquivo documentado como parser puro (scripts/tests.sh); a ordem dos testes passa a importar.src/integration/import-product-from-bling.ts—isStockOnlyvirou parâmetro morto (implica!update_product, primeiro disjunto do guard nunca muda o resultado) e oisQuantityOnlyé a terceira cópia do mesmo predicado.src/integration/integration-handler.ts—export defaultde um tipo, sem consumidor; precedente do repo éexport type { ... }no módulo dono (pubsub.ts).turbo.json— a arestatest → buildcobre obling-erp, mastest:appssegue semdependsOn: as duas definições divergem (encosta na Add apps tests to release script #237).Da review de 13/08 (Optional, seguem válidos): preço não exportado em loja multiloja, estoque de variação sempre relançado sem comparação,
/estoques/saldossem paginação (>100 variações), feriados hardcoded até 2027, datas em UTC (off-by-one de fuso;tiny-erpsubtrai 3h),numeroLojanumérico na busca do import, fallback de forma de pagamento pegandodata[0]de qualquer tipo, recursão de categoria sem guarda de ciclo,pictureIdpodendo apontar imagem de outra variação.