diff --git a/docs/approvals.md b/docs/approvals.md index 88396104..7e320f70 100644 --- a/docs/approvals.md +++ b/docs/approvals.md @@ -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" diff --git a/docs/steps/assistente-o-assistente-do-dia-a-dia.md b/docs/steps/assistente-o-assistente-do-dia-a-dia.md index 8c55e582..d873d465 100644 --- a/docs/steps/assistente-o-assistente-do-dia-a-dia.md +++ b/docs/steps/assistente-o-assistente-do-dia-a-dia.md @@ -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 | — | @@ -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).