Repository navigation
fix(platform): make the PR-data query opt-in and localize its steps - #292
Merged
cpenaforte-clickbus merged 13 commits intoOct 8, 2026
Merged
cpenaforte-clickbus merged 13 commits into
cpenaforte-clickbus merged 13 commits into
Conversation
Selecting payload->pr_enrichment_degraded makes repo_metric_summaries aggregate every run's payload, and it was requested by all callers (repos, ai-exposure, dashboard, compare). It is now an option that only the compare page turns on; other callers get pr_degraded_steps: []. The retry without the field now happens only when the error says the column is missing (code 42703, or a message naming payload), so a timeout is logged and surfaced instead of being silently masked. SummaryRow becomes an interface of the selected columns instead of Record<string, any>. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Degraded steps showed as raw ids ("enrichment") in the repo badge and
the compare marker. They now go through a localized label
(repos.detail.prData.steps.*, en-US and pt-BR; es-ES falls back) via
formatPrSteps.
prDegradedSteps drops repeated steps, so a payload listing one twice no
longer prints it twice.
The dashboard note listed every degraded repo; it now names at most 5
and collapses the rest into "and N more" / "e mais N".
anyPrDataIncomplete was a one-line wrapper; the compare view checks
inline instead. The repo page comment claimed the flow and merge panels
are absent exactly when the read degraded, which is false when only
"basic" failed.
Refs #236
Assisted-by: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The amber marker and its legend only existed in the desktop table, so the md:hidden card stack gave no sign a repo's PR read degraded. The marker is now one component used by both layouts, and the legend sits below both so either one explains it. The dot gains a title (hover for sighted users) next to its sr-only text; the legend keeps the meaning off colour and off the tooltip. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The amber dot is the only per-row cue on the compare page, and amber-500 sits near 2.1:1 on the light card, below the 3:1 WCAG 1.4.11 asks of it. The dot and its legend now use amber-600 on light (about 3.2:1) and keep amber-500 on dark (well above 3:1). The PR-data tooltip said merge strategy isn't classified "when enrichment fails"; the engine only skips it when enrichment fails for merged PRs, so the copy now says so, in both locales. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The failed PR-read steps lived only in a hover title and screen-reader text, on the compare dot and on the repo-page badge, so touch and keyboard users could see that the read was incomplete but not where. The mobile compare card now shows the localized steps as muted text next to the dot, and the repo page shows them next to the badge. On the card the visible steps replace the dot's sr-only sentence, so screen readers read them once, after a short sr-only "PR data incomplete:" prefix. The card marker also drops its ml-2: the row already spaces its items with gap-2. The desktop table is unchanged. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reason for the `as unknown as` cast in getOrgReposSummary sat two lines above the query, away from the cast it explains. The query result is now bound first and the cast returned on its own line, with the reason right above it. No behavior change. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Renders the compare view with one degraded and one clean repo and checks what the last fixes changed: the mobile card shows the failed steps as text after an sr-only prefix, the full sentence stays screen-reader text only in the table, the card marker has no margin, and the dot is amber-600 with amber-500 only on dark. All four fail against the previous marker. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A failed open list, or a failed enrichment or reviews pass for open PRs, leaves open-PR fields out of the run, and the engine's report caveat now says so. The tooltip on the PR-data badge and marker listed only flow, review and in-PR metrics; it now names open-PR metrics too, in both locales. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A failed merged list omits the PR lifecycle fields (counts, time to merge, cycle time), and a partial read skews them. The engine's report caveat now says so; the PR-data tooltip mirrors it in both locales. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The repo-page badge now has the failed steps as visible text beside it, yet kept a title with the same steps in a sentence. Screen readers may read a title as a description, so the steps could be announced twice. The title goes; the visible text carries the steps. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The desktop compare table kept the failed PR-read steps in a hover title and screen-reader text only, so sighted keyboard users could not see them, and on the mobile card the steps sat inline with the truncating repo name, where a long list squeezed it. Both layouts now put the amber dot and the localized steps on a line of their own under the repo name. The dot and the steps are aria-hidden, carrying the full sentence as their hover title, and screen readers read that sentence once as sr-only text, in both layouts alike (the card's short sr-only prefix gives way to it). Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
3 tasks done
3 tasks done
The label for the `fetch` step read "PR read" / "leitura de PRs", so the step sentence said "This run's PR read failed at: PR read." It now says "entire read" / "leitura inteira". Found in a manual end-to-end check. Refs #236 Assisted-by: Claude Code <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
4 tasks
fix(platform): make the PR-data marker readable on touch and keyboard
cpenaforte-clickbus
merged commit Oct 8, 2026
e6b715b
into
feat/pr-data-incomplete-compare
3 of 4 checks passed
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto e Motivação
Uma revisão da pilha de plataforma (#282 e #283) antes do merge achou problemas reais. O marcador de dado incompleto não aparecia nos cards da comparação no celular. A consulta nova obrigava o banco a agregar o
payloadde todos os runs para todo chamador degetOrgReposSummary— a página de repositórios e a de exposição a IA também —, embora só a comparação precise do campo. O fallback repetia a consulta sem o campo em qualquer erro, mascarando timeout. E o tooltip mostrava os identificadores internos dos passos em inglês, até no texto em português.Refs #236
Mudanças
payload->pr_enrichment_degradedpassa a ser opt-in emgetOrgReposSummary: só a comparação liga; os outros chamadores voltam a não pedir o campo.42703ou mensagem citando opayload); timeout e erro de permissão seguem o caminho normal de erro. O filtro por organização vale nos dois caminhos.Record<string, any>.en-USept-BR; oes-EScai noen-US), sem repetição, e o aviso do dashboard lista no máximo cinco repositórios, com "e mais N".titlecom os passos e texto para leitor de tela.Plano de Teste
npx vitest run tests/compare-pr-degraded.test.ts tests/pr-enrichment.test.ts tests/pr-degraded-repos.test.ts— o select sempayloadpara quem não pede; o fallback no42703e a ausência de nova tentativa no timeout; os rótulos nos dois idiomas; a deduplicação; o corte em cinco nomes — rodado emd9c6a38: 21 passednpm run lint,npx tsc --noEmit,npm run test:coverage,npm run build— os passos do jobplatformdo CI — rodado emd9c6a38: lint 0 erros,tscok,test:coverage424 passed, build ok4911e6d, com o rótulo corrigido conferido depois em8e83ca4), que contém este PR: plataforma rodando sobre as migrações reais e um PostgREST, com payloads do engine em sete cenários de falha, no Playwright em desktop, celular (390 px), só teclado, leitor de tela, tema escuro, pt-BR, en-US e es-ES; nos cards do celular, os passos ficam numa linha própria sob o nome; o dashboard com 7 degradados lista 5 e "e mais 2"A verificação roda fora da máquina de quem construiu: o job
platformdo CI (RFC 0029, PM-4).Impacto e Risco
payload; um timeout deixa de virar duas consultas.Sobre o tamanho (RFC 0028 §2.4): 377 linhas, faixa 251–500. São os achados da revisão da plataforma, um commit por assunto; os ajustes de acessibilidade pedidos na revisão final foram para o PR seguinte para caber.
Plano de Rollback
git revertdo merge. Volta o comportamento do #283; nada a migrar.Referências
Autoria Assistida
🤖 Generated with Claude Code