Faça streaming, nunca emita os registros
Enquadre registros físicos a partir de chunks de bytes preservando proveniência exata e silêncio de saída.
- Enquadrar registros delimitados por LF entre chunks arbitrários.
- Manter a contabilidade de bytes mesmo quando o parse falha.
- Descrever silêncio de saída como invariante, não etapa de redação.
Modelo central
Um stream pode dividir em qualquer ponto — até no meio de uma sequência UTF-8 ou linha. Por isso a U2 trata bytes como fonte da verdade, encontra fronteiras LF, conta um registro final sem terminador e mantém offsets exatos. O parse pode falhar sem perder cobertura de bytes.
Modelo mental: Uma esteira entrega peças de quebra-cabeça em caixas arbitrárias. O enquadrador recompõe linhas completas na estação local, registra posições e descarta a imagem após medi-la.
O digest do arquivo consome cada byte bruto. Registros físicos usam spans semiabertos `[start,end)`. Strings válidas de timestamp top-level viram observações; UTF-8 inválido, registros vazios, JSON inválido e JSON não objeto viram falhas estáveis. O manifesto não armazena buffers brutos.
Tabela de fronteiras
| Pergunta | Fronteira observada | Dono | Veredito |
|---|---|---|---|
| Fronteira de chunk | Arbitrária | Nunca é fronteira de registro por si só | STREAM |
| LF | Delimitador físico | Encerra um span de bytes | FRAME |
| Bytes finais sem LF | Sem terminador | Ainda um registro físico | FRAME |
| JSON inválido | Falha de parse | Manter cobertura; emitir só código | FAULT |
Fonte local primária
packages/sessions/src/claude-manifest.tsinterface ClaudeManifestByteSource {
identityBefore: FileIdentity;
bytes: AsyncIterable<Uint8Array>;
identityAfter(): Promise<FileIdentity>;
close(): Promise<void>;
}Laboratório sintético
Envie uma forma sintética de stream ao enquadrador.
Recuperação e feedback
O registro final não tem LF. Ele é ignorado?
Cartões de recuperação
Teste seu modelo
Qual é a fonte da verdade para offsets e hashes?
Ledger de evidências
Autoridade: docs/fable-session-mining/LOOP-LOG.md. Testes nunca promovem um recibo real ausente.