Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/approvals.md
Original file line number Diff line number Diff line change
Expand Up @@ -933,6 +933,8 @@ Cartão curto de O Assistente do dia a dia (`docs/steps/assistente-o-assistente-

Cartão curto de O Assistente do dia a dia (`docs/steps/assistente-o-assistente-do-dia-a-dia.md`) aprovado em 2026-11-11 (commit bb3fa5ab38632ef6372cf10fd47fa55b693169ef), de novo com as duas mudanças feitas na construção, às duas perguntas do firstmate (a etiqueta de emergência no pull request https://github.com/developmentconexus-ops/conexus/pull/963, e aprovar o cartão alterado: o diagrama no quadro isolado da decisão D, e o arquivo achado pelo conteúdo, porque o Mastra apaga o nome do resumo): "1. Okay 2. Okay". A aprovação de ba0eb6f1503d272465a36192d0a234536a732c43 acima fica como histórico.

Emenda do cartão curto de O Assistente do dia a dia (`docs/steps/assistente-o-assistente-do-dia-a-dia.md`) aprovada em 2026-11-11 (commit d9db8fa18d33fd106ec591f523ddf5f75f2bbdf7), só com o texto errado corrigido (a linha do diagrama da tabela de referência, que ainda descrevia o desenho antes da decisão D, e a dívida das conferências antecipadas, que subestimava o que elas fazem), à pergunta "Entra com a emenda?": "2. Sim"

## O Sync de qualquer conector

Cartão de O Sync de qualquer conector (`docs/steps/o-sync-de-qualquer-conector.md`) aprovado em 2026-11-10 (commit dae09df1525b96ac52b2fd9122ab711b15e34234): "Aprovo"
Expand Down
11 changes: 7 additions & 4 deletions docs/steps/assistente-o-assistente-do-dia-a-dia.md
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ O erro de sintaxe (as duas larguras)
| O texto do Assistente: responder na mensagem, arquivo só quando pedido | U2 | `prompt/assistant.md` (um parágrafo; os cinco empurrões) | `codex@970111f` `codex-rs/core/gpt_5_2_prompt.md:152-158` (fazer o que foi pedido, sem extras que ninguém pediu), `:160-168` ("Presenting your work": a mensagem como resposta, oferecer o passo seguinte em vez de fazê-lo), `:172-230` (a forma da resposta); `mastra-1.82@6e8dfcb8` `mastracode/sdk/src/agents/prompts/index.ts:152` (o começo estável, pelo cache) | A resposta é a mensagem; o arquivo existe quando o trabalho é o arquivo; seções curtas | nativo: texto nosso com a estrutura dos dois, na mensagem fixa e com a marca de cache de hoje (`fixedSystem`) | O critério 16 (nenhuma sequência de seis palavras igual) | 2026-11-10: "mudar o sistema prompt"; muda a resposta A de 2026-10-31 ao estudo do prompt (sem regras de como responder) | — |
| A descrição de `show_file` | U2 | `machine/show-file.ts:63` ("Show the table, chart or document you made; the person sees nothing of your machine otherwise") | `mastra-1.82@6e8dfcb8` `packages/core/src/workspace/tools/write-file.ts:11` (a descrição de uma ferramenta nativa diz o que ela faz, sem mandar usá-la) | A ferramenta diz o que faz | nativo: a descrição diz o que a ferramenta faz | | 2026-11-10: "sem eu pedir" | — |
| A tabela na mensagem | fica de fora | `apps/web/src/builder/conversation/markdown.tsx:31,73-85` (`remark-gfm`) | `remark-gfm@4.0.1` README | Tabela do GitHub | nativo: já desenha; nada muda | | não precisa | — |
| O diagrama na mensagem | U3 | `markdown.tsx:65-72` (`code` e `pre`: o bloco `mermaid` sai como código) | `open-webui@f7ac7ee` `src/lib/utils/index.ts:2155-2165` (`mermaid` carregado sob demanda, `securityLevel: 'loose'`), `:2313` (`mermaid.parse` antes), `:2314-2330` (a recusa de imagem e estilo de fora por `mermaid.mermaidAPI.getDiagramFromText` e `diagram.db`, internos de cada tipo de diagrama: não entra), `:2334-2337` (a limpeza dos elementos temporários de um erro), `src/lib/components/chat/Messages/CodeBlock.svelte:365-377` (desenha só o bloco fechado); `open-webui@f7ac7ee` `package.json:134` (`mermaid` 11) | O bloco `mermaid` fechado vira o desenho na mensagem | embrulhado: `mermaid` sob demanda, só pela API pública (`parse`, `render`), `securityLevel: 'strict'`, desenhado só no bloco fechado de uma resposta acabada, com as cores dos tokens, e mostrado como imagem SVG; a busca de fora fica com a CSP do Hub; o nosso é o pedaço que lê o bloco e escolhe imagem ou código | A prova de CSP da U3 no Chromium, a primeira coisa da unidade (critério 17) | 2026-10-31: "B1"; 2026-11-10: "gera diagramas" | `apps/web/src/builder/conversation/diagram.tsx` |
| O diagrama na mensagem | U3 | `markdown.tsx:65-72` (`code` e `pre`: o bloco `mermaid` sai como código) | `open-webui@f7ac7ee` `src/lib/utils/index.ts:2155-2165` (`mermaid` carregado sob demanda, `securityLevel: 'loose'`), `:2313` (`mermaid.parse` antes), `:2314-2330` (a recusa de imagem e estilo de fora por `mermaid.mermaidAPI.getDiagramFromText` e `diagram.db`, internos de cada tipo de diagrama: não entra), `:2334-2337` (a limpeza dos elementos temporários de um erro), `src/lib/components/chat/Messages/CodeBlock.svelte:365-377` (desenha só o bloco fechado); `open-webui@f7ac7ee` `package.json:134` (`mermaid` 11); o estudo `conexus-diagram-csp-study` §2.4 e §5 e o `sandbox` do próprio `mermaid` (`mermaid.core.mjs:1232-1238`); `librechat@e6567c7` `client/src/hooks/Mermaid/useMermaid.ts:99-152` (`parse` antes de `render`, `securityLevel: 'strict'`, `theme: 'base'` com `themeVariables`) | O bloco `mermaid` fechado vira o desenho na mensagem | embrulhado: o quadro isolado (decisão "D"): `mermaid` sob demanda, só pela API pública (`parse`, `render`), `securityLevel: 'strict'`, desenhado só no bloco fechado de uma resposta acabada, com as cores dos tokens, num quadro com `sandbox="allow-scripts"` (origem opaca) e política própria servida pelo Hub, que devolve o SVG como texto e a página o mostra como imagem; o nosso é o pedaço que lê o bloco, fala com o quadro e escolhe imagem ou código | A prova de CSP da U3 no Chromium, a primeira coisa da unidade (critério 17) | 2026-10-31: "B1"; 2026-11-10: "gera diagramas" | `apps/web/src/builder/conversation/diagram-frame.ts`, `apps/web/diagram-frame.html` e `apps/web/src/builder/conversation/diagram.tsx` |
| O gráfico | fica de fora | `machine/show-file.ts:38` (`INLINE_MEDIA`: PNG, JPEG e SVG ao lado) | o estudo, a captura do gráfico do matplotlib ao lado | Uma imagem feita por código | nativo: já mostra; o texto da U2 diz quando usar | | não precisa | — |
| O HTML aberto ao lado | fica de fora | `security.md` S24 ("The browser leaves the Hub's origin only for an app") | `open-webui@f7ac7ee` `src/lib/components/chat/Artifacts.svelte:253-272` (`srcdoc` sem `allow-same-origin`) | Toda referência põe o HTML do agente em outra origem | nativo: nada muda; fica para uma etapa própria, com a emenda de S24 | | 2026-11-10: "fazer o básico bem feito" | — |
| A cópia durável dos arquivos (R2) | fica de fora | `builder/git/copy` (a cópia do Builder no R2) | doc do `FileUploadProcessor` `:135` (grava de novo só enquanto a mensagem está no pedido) | — | nativo: nada muda; dívida medida | | não precisa | — |
Expand Down Expand Up @@ -352,9 +352,12 @@ nem desenho de diagrama (`conexus-os@e0353c36`).
`file-upload.ts:168`): se uma versão nova mudar os códigos, a tradução para; a gravação nativa da
U1 e o critério 12 guardam esse contrato.
- O embrulho delega só `processLLMRequest`: as duas conferências antecipadas do processador nativo
(`processInput`, `processInputStep`, `file-upload.ts:103-111`) olham só o filtro e o teto, que o
compositor e a rota já garantem; o arquivo do turno que não puder ir à máquina ainda para o turno em
`processLLMRequest`.
(`processInput`, `processInputStep`, `file-upload.ts:103-111`) olham o filtro e o teto, que o
compositor e a rota já garantem, e também decodificam o arquivo e param o turno com
`INVALID_FILE_DATA` (`file-upload.ts:118-126,608-612`); sem elas, um arquivo deste turno com dado
ilegível vira a nota `[File not uploaded]` e o turno segue (`:449-465`), e só um arquivo que não
puder ir à máquina ainda para o turno em `processLLMRequest`. O compositor lê o arquivo com
`FileReader`, então só uma chamada direta à rota chega a esse caso.
- Que o modelo converte, lê por partes, acha o arquivo e só faz arquivo quando pedido, só um modelo
real prova (critério 24 e o uso do fundador).

Expand Down
Loading