You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up do rollout TOON (#75, PR #76 mergeada). Três achados verificados, em ordem de impacto:
O maior ganho de tokens deste repo não é TOON — é o prompt caching que está wired e nunca dispara.cache_control: ephemeral está implementado em lib/providers/llm.ts:81-83 para opts.system, mas nenhum call site em lib/ passa system prompt — então o contexto estável por cliente (brand voice, regras de compliance, specs de plataforma) é re-enviado sem cache em cada peça. Caching Anthropic ≈ 90% de desconto no input cacheado, vs ~40% do TOON uma única vez.
Telemetria calculada e jogada fora: resolveUsageWithFallback (lib/providers/cost.ts:98-130) computa tokens_in/tokens_out e o flag de proveniência used_estimate, mas UsageEntry (lib/router.ts:31-41) colapsa tudo num número e descarta o flag antes do data/llm-usage.jsonl. Além disso, lib/cli/generate.ts:476-477 rotula errado os tokens no manifest.
Bug de round-trip lossy no codec: needsQuoting (lib/format/toon.ts:58-65) perde strings que começam e terminam com aspas — "\"quoted\"" round-tripa para quoted. Num pipeline de marketing (captions com citações!), isso é corrupção silenciosa de conteúdo.
Escopo
Ativar o caching: mover o contexto estável por cliente (brand voice, compliance rules, platform specs de .marketing-engine/clients/<slug>/) para opts.system nos call sites de lib/cli/generate.ts, fazendo o cache_control já wired disparar. Verificar com os checks de cache-status existentes.
Completar o UsageEntry (~30 linhas): tokens_in, tokens_out, used_estimate, prompt_format (toon|json), savings_tokens_est, piece_id — threading via logUsage (lib/router.ts:58-75). Alinhar campos com a spec simplicio.savings-event/v1 (issue-irmã no simplicio-runtime). Corrigir o rótulo do manifest em generate.ts:476-477.
Contexto
Follow-up do rollout TOON (#75, PR #76 mergeada). Três achados verificados, em ordem de impacto:
cache_control: ephemeralestá implementado emlib/providers/llm.ts:81-83paraopts.system, mas nenhum call site emlib/passa system prompt — então o contexto estável por cliente (brand voice, regras de compliance, specs de plataforma) é re-enviado sem cache em cada peça. Caching Anthropic ≈ 90% de desconto no input cacheado, vs ~40% do TOON uma única vez.resolveUsageWithFallback(lib/providers/cost.ts:98-130) computatokens_in/tokens_oute o flag de proveniênciaused_estimate, masUsageEntry(lib/router.ts:31-41) colapsa tudo num número e descarta o flag antes dodata/llm-usage.jsonl. Além disso,lib/cli/generate.ts:476-477rotula errado os tokens no manifest.needsQuoting(lib/format/toon.ts:58-65) perde strings que começam e terminam com aspas —"\"quoted\""round-tripa paraquoted. Num pipeline de marketing (captions com citações!), isso é corrupção silenciosa de conteúdo.Escopo
.marketing-engine/clients/<slug>/) paraopts.systemnos call sites delib/cli/generate.ts, fazendo ocache_controljá wired disparar. Verificar com os checks de cache-status existentes.UsageEntry(~30 linhas):tokens_in,tokens_out,used_estimate,prompt_format(toon|json),savings_tokens_est,piece_id— threading vialogUsage(lib/router.ts:58-75). Alinhar campos com a specsimplicio.savings-event/v1(issue-irmã no simplicio-runtime). Corrigir o rótulo do manifest emgenerate.ts:476-477.toon.ts:58-65+ fixture de regressão; adotar o corpus de conformidade (feat: TOON-CONTRACT — spec única + corpus de fixtures golden de conformidade para os 8 codecs (3 linguagens) simplicio-mapper#149 — este bug é um dos fixtures fundadores).fallbackLinedispara.e2e/toon-format.spec.tsde comprimento-de-chars para estimativa de tokens rotulada, e registrar savings por chamada nollm-usage.jsonl.Critérios de Aceitação
opts.systempopulado nos call sites; evidência de cache hit registradadata/llm-usage.jsonlcarregatokens_in/out,used_estimate,prompt_format,savings_tokens_est,piece_id"\"quoted\""round-tripa intacto (teste de regressão)Aviso: partir de
origin/mainatualizado.Refs: #75, PR #76, wesleysimplicio/simplicio-mapper#149, wesleysimplicio/simplicio-runtime#2775.