Skip to content

feat: Etapas filtradas por trilha e recarga de tela que não carregou (specs 007, 008) - #8

Merged
net0well merged 2 commits into
mainfrom
fase-6/filtro-trilha
Oct 21, 2026
Merged

net0well merged 2 commits into
mainfrom
fase-6/filtro-trilha

Conversation

@net0well

Copy link
Copy Markdown
Collaborator

Resumo

Ver as Etapas de uma trilha na tela de Etapas e recarregar uma tela cujo código não baixou. Segue a revisão aprovada das specs 008 (AC-26, AC-27) e 007 (AC-26), decisões D-163 a D-165.

API (spec 007)

  • GET /stages?pipelineKey=X traz só as Etapas da última versão publicada da trilha X, na ordem dos passos.
    • Uma Etapa usada em dois passos aparece uma vez.
    • Combina com search e status.
    • Trilha inexistente ou só com rascunho devolve página vazia.
  • Na biblioteca é CatalogQuery.UsedByPipeline, um parâmetro opcional no fim do record, só para Etapas. O ListPipelinesAsync o rejeita com ArgumentException.
  • Snapshot do OpenAPI atualizado (só o parâmetro novo) e tipos do painel regenerados.

Painel (spec 008)

  • Filtro "Trilha" na lista de Etapas, ao lado de Buscar e Status.
    • Fica na URL (?trilha=X), então o link pode ser compartilhado e o filtro sobrevive a recarregar.
    • Trilha sem versão publicada mostra "Esta trilha ainda não tem versão publicada".
  • O detalhe da trilha ganha o link Ver Etapas desta trilha.
  • Recarga de tela que não carregou: quando o código de uma tela falha ao baixar (rede oscilou, versão nova do painel):
    • a página recarrega uma vez na rota pedida;
    • se falhar de novo em até 10 s, aparece "Não foi possível carregar esta tela" com Recarregar, sem laço;
    • sem sessionStorage, mostra o aviso direto em vez de arriscar um laço.
    • A tela de aviso é importada direto (não depende da rede) e é pública, para não cair no login se ele também não carregar.
  • O safeReturn mudou para router/paths.ts, para evitar import circular com a tela nova; o router/index.ts continua exportando.

Testes

  • API: Spec007_AC26 cobre:
    • a ordem dos passos;
    • o rascunho v2 com uma Etapa a mais, que não conta;
    • a combinação com search;
    • a trilha só com rascunho e a trilha inexistente, que devolvem página vazia.
  • E2E:
    • Spec008_AC26: filtro, URL, recarregar e o link a partir do detalhe de html-para-email.
    • Spec008_AC27: um download bloqueado uma vez recarrega e abre a lista; bloqueado sempre, mostra o aviso depois de uma única recarga.
  • Vitest: a detecção da falha nos textos do Chromium, Firefox e Safari, a trava de 10 s por rota e o caso sem sessionStorage.

Verificação local

  • Painel: lint, tipos, Vitest (39/39) e build com o check-bundle ✅
  • dotnet test --solution tests/PythonScriptRunner.SemE2E.slnf: 203 testes, 0 falhas, 2 ignorados (só rodam no Linux) ✅
  • E2E do painel: 22/22 ✅
  • dotnet format --verify-no-changes ✅

🤖 Generated with Claude Code

net0well and others added 2 commits October 20, 2026 22:23
- `pipelineKey` traz só as Etapas da última versão publicada da trilha, na ordem dos
  passos (D-164, D-165). Uma Etapa usada em dois passos aparece uma vez. Combina com
  `search` e `status`. Trilha inexistente ou só com rascunho devolve página vazia.
- Na biblioteca o filtro é `CatalogQuery.UsedByPipeline`, só para Etapas; o
  ListPipelinesAsync o rejeita.
- AC-26 testado pela API e snapshot do OpenAPI atualizado (só o parâmetro novo).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…carregou (spec 008)

- Lista de Etapas: o filtro "Trilha" mostra as Etapas da versão publicada da trilha,
  na ordem dos passos, e fica na URL (`?trilha=`). O detalhe da trilha ganha o link
  "Ver Etapas desta trilha". Uma trilha sem versão publicada mostra um aviso (AC-26).
- Quando o código de uma tela não baixa (rede oscilou ou versão nova do painel), a
  página recarrega uma vez na rota pedida. Se falhar de novo em até 10 s, aparece
  "Não foi possível carregar esta tela" com Recarregar, sem laço (AC-27, D-163).
  Essa tela é importada direto e é pública, para abrir mesmo sem rede.
- Testes: E2E do AC-26 e do AC-27, e Vitest da detecção da falha e da trava de 10 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@net0well
net0well merged commit e1c2ab6 into main Oct 21, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant