release: promove develop pra produção (envio ao HubSpot com Tasks + PDF e erros do HubSpot mais claros) #88

Merged
jhony75 merged 5 commits from develop into main 2026-10-15 22:20:51 -03:00
Owner

O que é

Promove para produção o que foi mesclado em develop depois da release #86: o envio da Validação Técnica ao HubSpot (Tasks + PDF) e a melhoria das mensagens de erro do HubSpot. O dev já roda esse conteúdo.

Principais mudanças

  • #87 — Envio ao HubSpot preenche as Tasks do deal e anexa o PDF: um clique faz até três partes independentes (uma falhar não impede as outras): (1) acrescenta o texto de cada item incluído no documento ao corpo da Task do deal de mesmo assunto, como o qa-project (nunca sobrescreve; pula se já tem o mesmo texto); (2) anexa o PDF numa nota do deal; (3) move o estágio, se pedido. A tela mostra o resultado de cada parte e pede confirmação. Corrige hs_timestamp da nota (epoch em ms; o ISO dava 400).
  • #89 — Erros do HubSpot distinguem 401 de 403: a mensagem passa a dizer se o token não foi reconhecido (401) ou se falta escopo (403, com os escopos exigidos quando o HubSpot os informa); cada recusa vai pro log do backend (hubspot_request_rejected, sem o token) e a tela registra no console. Inclui ajuste de estabilidade dos testes do frontend no CI (timeouts maiores e no máximo 2 workers do vitest quando CI=true), porque o job de frontend das PRs morreu na etapa de testes no runner carregado.

Sem migration

Nenhuma migration nova nesta release. Variável opcional nova: HUBSPOT_TASK_OWNER_IDS (ordem de preferência dos donos ao escolher entre cópias da mesma Task; vazio = padrão do código).

Antes de usar em produção

  • HUBSPOT_ACCESS_TOKEN no .env de produção, com os escopos do Private App: crm.objects.deals.read, crm.objects.tasks.read e crm.objects.tasks.write (Tasks); files e a escrita de notas (PDF); crm.objects.deals.write e crm.schemas.deals.read (estágio). A mensagem de erro nova mostra qual escopo falta.
  • O PATCH em hs_task_body nunca foi exercitado contra o HubSpot real: o primeiro envio deve ser num deal de teste.

Fora desta release

  • #90 (pipeline mais rápida) segue aberta.

Verificação

  • develop sem conflito com main; CI do develop verde, incluindo o deploy de dev.
  • Backend: 335 testes; frontend: tsc/lint/181 testes/build ok.

🤖 Generated with Claude Code

## O que é Promove para produção o que foi mesclado em `develop` depois da release #86: o envio da Validação Técnica ao HubSpot (Tasks + PDF) e a melhoria das mensagens de erro do HubSpot. O dev já roda esse conteúdo. ## Principais mudanças - **#87 — Envio ao HubSpot preenche as Tasks do deal e anexa o PDF:** um clique faz até três partes independentes (uma falhar não impede as outras): (1) acrescenta o texto de cada item incluído no documento ao corpo da Task do deal de mesmo assunto, como o qa-project (nunca sobrescreve; pula se já tem o mesmo texto); (2) anexa o PDF numa nota do deal; (3) move o estágio, se pedido. A tela mostra o resultado de cada parte e pede confirmação. Corrige `hs_timestamp` da nota (epoch em ms; o ISO dava 400). - **#89 — Erros do HubSpot distinguem 401 de 403:** a mensagem passa a dizer se o token não foi reconhecido (401) ou se falta escopo (403, com os escopos exigidos quando o HubSpot os informa); cada recusa vai pro log do backend (`hubspot_request_rejected`, sem o token) e a tela registra no console. Inclui ajuste de estabilidade dos testes do frontend no CI (timeouts maiores e no máximo 2 workers do vitest quando `CI=true`), porque o job de frontend das PRs morreu na etapa de testes no runner carregado. ## Sem migration Nenhuma migration nova nesta release. Variável opcional nova: `HUBSPOT_TASK_OWNER_IDS` (ordem de preferência dos donos ao escolher entre cópias da mesma Task; vazio = padrão do código). ## Antes de usar em produção - `HUBSPOT_ACCESS_TOKEN` no `.env` de produção, com os escopos do Private App: `crm.objects.deals.read`, `crm.objects.tasks.read` e `crm.objects.tasks.write` (Tasks); `files` e a escrita de notas (PDF); `crm.objects.deals.write` e `crm.schemas.deals.read` (estágio). A mensagem de erro nova mostra qual escopo falta. - O PATCH em `hs_task_body` nunca foi exercitado contra o HubSpot real: o primeiro envio deve ser num deal de teste. ## Fora desta release - #90 (pipeline mais rápida) segue aberta. ## Verificação - `develop` sem conflito com `main`; CI do `develop` verde, incluindo o deploy de dev. - Backend: 335 testes; frontend: tsc/lint/181 testes/build ok. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: envio da validacao ao HubSpot preenche as Tasks do deal e anexa o PDF (partes independentes)
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 34s
EEG QA CI / Backend (pull_request) Successful in 4m50s
EEG QA CI / Frontend (pull_request) Successful in 9m34s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 10m2s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
c5e71363f3
O botao passa a acrescentar o texto de cada item ao corpo da Task do deal de mesmo
assunto (como o qa-project) e, em chamada independente, anexar o PDF numa nota;
estagio e uma terceira parte opcional. Uma falha parcial nao derruba as outras e a
tela mostra o resultado de cada parte. Corrige hs_timestamp da nota (epoch em ms).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge pull request 'feat: envio da validação ao HubSpot preenche as Tasks do deal e anexa o PDF' (#87) from feature/validation-hubspot-tasks into develop
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 28s
EEG QA CI / Detectar o que mudou (push) Successful in 1m13s
EEG QA CI / Backend (pull_request) Successful in 5m27s
EEG QA CI / Frontend (pull_request) Successful in 10m35s
EEG QA CI / Backend (push) Successful in 5m25s
EEG QA CI / Frontend (push) Successful in 12m26s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 6m39s
EEG QA CI / Deploy development (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Build e publicação de imagens (push) Successful in 7m15s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 3m12s
6e5e274cce
Reviewed-on: #87
fix: erros do HubSpot distinguem 401 de 403, mostram escopos exigidos e vao pro log
Some checks failed
EEG QA CI / Detectar o que mudou (pull_request) Successful in 1m57s
EEG QA CI / Backend (pull_request) Successful in 8m45s
EEG QA CI / Frontend (pull_request) Failing after 14m1s
EEG QA CI / Build e publicação de imagens (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
7578bbefa7
A mensagem unica "invalido ou sem permissao" escondia a causa. Agora o erro guarda
status/caminho/explicacao do HubSpot (sem o token), a tela separa token nao
reconhecido de escopo faltando, e cada recusa vai pro log do backend e pro console.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
test: deixa os testes do frontend toleram o runner lento/carregado do CI
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 50s
EEG QA CI / Backend (pull_request) Successful in 4m16s
EEG QA CI / Frontend (pull_request) Successful in 9m35s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 6m47s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
8a76f06d2f
Os jobs de frontend das PRs #89 e #90 morreram na etapa de testes sem nenhuma mudanca de
codigo capaz de explicar (a #90 nao tem codigo de frontend). Defesas: timeouts maiores
(asyncUtilTimeout 10 s, testTimeout/hookTimeout 30 s) e, no CI, no maximo 2 workers do
vitest (um jsdom por nucleo derruba/atrasa workers com pouca RAM). Medido: com CI=true a
suite leva ~34 s, tanto quanto sem limite.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge pull request 'fix: erros do HubSpot distinguem 401 de 403, mostram escopos exigidos e vão pro log' (#89) from fix/hubspot-auth-error-detail into develop
All checks were successful
EEG QA CI / Detectar o que mudou (push) Successful in 26s
EEG QA CI / Detectar o que mudou (pull_request) Successful in 26s
EEG QA CI / Backend (push) Successful in 5m9s
EEG QA CI / Backend (pull_request) Successful in 5m22s
EEG QA CI / Frontend (push) Successful in 11m10s
EEG QA CI / Frontend (pull_request) Successful in 13m7s
EEG QA CI / Build e publicação de imagens (push) Successful in 5m52s
EEG QA CI / Deploy production (push) Has been skipped
EEG QA CI / Deploy development (push) Successful in 2m9s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 4m2s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
f379bd533d
jhony75 changed title from develop to release: promove develop pra produção (envio ao HubSpot com Tasks + PDF e erros do HubSpot mais claros) 2026-10-15 18:58:27 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!88
No description provided.