docs: refresh architecture, roadmaps and diagram labels for v0.2.51 - #1051
Merged
Conversation
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
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.
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.
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 obook/src/roadmap.mdtem 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.svgexiste 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.mdnão mencionava nem o fuso do agendador nem oEditorScope. Agora registra a separação que importa para quem for mexer nisso depois:crate::authresponde quem é o chamador;scope::EditorScoperesponde 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:
viewBoxaparece no diff apenas porque a linha inteira do<svg>mudou (oaria-labelfica nela) — o valor é idêntico nos dois lados.<text>transborda oviewBoxe 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.Minha correção (
3b4e72e): a Fase 4 do roadmap ainda dizialive SSE. A Fase 4 é o dashboard de monitoramento, e ele saiu de SSE para polling emGET /admin/dashboard/snapshotna 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; viroulive metrics. Aplicado nas duas cópias e re-renderizado.O
architecture.svgmanté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.svge o rótulo do Postgres nodeployment.svg. Representar oEditorScopeexplicitamente 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 bookpassa.🤖 Generated with Claude Code