Skip to content

docs: refresh architecture, roadmaps and diagram labels for v0.2.51 - #1051

Merged
milkway merged 2 commits into
mainfrom
docs/v0251-arch-roadmap
Jul 30, 2026
Merged

docs: refresh architecture, roadmaps and diagram labels for v0.2.51#1051
milkway merged 2 commits into
mainfrom
docs/v0251-arch-roadmap

Conversation

@milkway

@milkway milkway commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Segunda de duas PRs de doc para a v0.2.51 (arquitetura, os dois roadmaps, rótulos de diagrama). Arquivos disjuntos da #1050.

Implementada por agente codex exec (gpt-5.6-sol, high); revisada por mim, com uma correção minha (3b4e72e).

Duas defasagens estruturais que eu levantei antes de despachar

Existiam dois roadmaps e eles divergiram. A fatia 4 do #990 atualizou o docs/ROADMAP.md, mas o book/src/roadmap.md tem conteúdo próprio e ainda dizia que o RBAC é "coarse Viewer / Editor / Admin" — impreciso desde que Editor passou a ser escopado. Os dois foram alinhados sem virar cópia um do outro: são públicos diferentes.

Cada diagrama existe em duas ou três cópias byte a byte idênticas. Conferi por md5: architecture.svg existe 3 vezes (README, docs/ARCHITECTURE.md, site) e os outros 2 vezes. Editar uma cópia só faria README e site mostrarem diagramas diferentes — divergência silenciosa. Isso virou instrução explícita, e conferi ao final que as famílias seguem idênticas.

Arquitetura

docs/ARCHITECTURE.md não mencionava nem o fuso do agendador nem o EditorScope. Agora registra a separação que importa para quem for mexer nisso depois: crate::auth responde quem é o chamador; scope::EditorScope responde quais linhas ele pode ver ou alterar — com o refetch por request, o fail-closed e o 404. E documenta os dois modelos de tempo deliberadamente diferentes: instantes persistidos em UTC convertidos no navegador, versus o relógio operacional do agendador.

Diagramas — regra dura, e por quê

Este repositório já se queimou editando geometria de SVG às cegas (#919), então a instrução foi: só texto e rótulo, nenhuma coordenada, path ou viewBox; se algo exigir geometria, descrever em vez de fazer.

Verifiquei eu mesmo, não por confiança:

  • Diff de atributos geométricos: nenhum. O viewBox aparece no diff apenas porque a linha inteira do <svg> mudou (o aria-label fica nela) — o valor é idêntico nos dois lados.
  • Render verificado em navegador, antes e depois: nenhum <text> transborda o viewBox e nada colide. Texto em SVG não reflui, então rótulo mais longo é risco real de sobreposição — medi, e o novo rótulo até encurtou.
  • As duplicatas seguem idênticas por md5.

Minha correção (3b4e72e): a Fase 4 do roadmap ainda dizia live SSE. A Fase 4 é o dashboard de monitoramento, e ele saiu de SSE para polling em GET /admin/dashboard/snapshot na v0.2.37 (#916) — mudança que foi justamente o que impediu uma conexão longa de estrangular o pool por origem do navegador. O rótulo estava errado desde então; virou live metrics. Aplicado nas duas cópias e re-renderizado.

O architecture.svg mantém sua menção a SSE de propósito: ali é um rol geral de recursos da admin, e o SSE ainda serve o follow ao vivo de log de container — decisão já tomada na revisão do #1013.

Deixado para um passe geométrico

As pendências herdadas do #919 seguem intactas: arestas do crate-map.svg e o rótulo do Postgres no deployment.svg. Representar o EditorScope explicitamente no diagrama de arquitetura também exigiria forma ou aresta nova — não foi feito, porque exige verificação de render caso a caso.

Checkboxes de OIDC/SAML/LDAP seguem desmarcados. mdbook build book passa.

🤖 Generated with Claude Code

milkway and others added 2 commits July 29, 2026 22:02
Phase 4 IS the monitoring dashboard, and its bullet read "live SSE". The
dashboard moved off a held SSE stream to polling `GET
/admin/dashboard/snapshot` in v0.2.37 (#916) — that change is precisely
what stopped a long-lived connection from starving the browser's
per-origin pool where nginx served Ruscker and another app on one origin.
The label has been wrong ever since; "live metrics" describes what it does.

architecture.svg keeps its "HTMX · SSE · …" mention on purpose: that's a
general list of admin capabilities, and SSE still powers container-log live
follow. The #1013 review already settled that one.

Applied to both copies of the file, and re-rendered: no text overflows the
viewBox and nothing collides.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@milkway
milkway merged commit 0b16fb5 into main Jul 30, 2026
4 checks passed
milkway added a commit that referenced this pull request Jul 30, 2026
Follow-up to #1051, found by checking the published site rather than
trusting the build.

The roadmap page narrates post-1.0 work in version bands and stopped at
v0.2.19; the v0.2.51 refresh appended a band-less paragraph that papered
over thirty releases. Step-up MFA, self-healing against external container
changes, and the Activity section were missing from the narrative entirely.

Two bands added, each checked against news.md rather than memory, plus an
attribution fix: the new paragraph credited scheduled ETL jobs to the latest
work, but they shipped in v0.2.43.

The final paragraph deliberately carries no version band. Closing one would
have to name the current release and go stale, and "latest" is exactly the
trap that left `v0.2.x · latest` sitting in the roadmap diagram until this
session.
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