feat: rehydrate hidden Claude history and export the native session (#31) - #52
Merged
Merged
Conversation
) The hidden workspace takes the transcript path from Claude's own hooks (validated as a regular <session-id>.jsonl) and never stores it. On resume, the selected branch is read back with the existing reader and shown as history without resending anything. Ctrl+E prepares a context-only bundle with a preview of transcript lines, warnings, omissions and possible secrets (text hidden), line exclusions and scrolling; Ctrl+S writes it under <state>/exports and runs verify. Refs #31 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MUyLMVv9GbqWRByEZ7LgEb
There was a problem hiding this comment.
ℹ️ Um ponto de privacidade na prévia; a gravação continua bloqueada enquanto houver achados.
Reviewed changes O diff foi revisado quanto à reidratação de histórico Claude, exportação nativa pela TUI, cobertura sintética e documentação.
- Reidratação: obtém
transcript_pathdo hook, relê o ramo selecionado ao retomar e informa histórico omitido ou parcial, sem reenviar mensagens. - Exportação: prepara um pacote v1 somente contexto, apresenta registros/avisos/omissões, permite exclusões e bloqueia a gravação quando há possíveis segredos.
- Validação e status: adiciona testes de biblioteca, TUI e PTY; registra ensaio com Claude real como pendente.
GPT Luna | 𝕏
A possible secret outside the records (such as a branch ID) was flagged without a line, so no record was hidden and the warnings showed the raw value in the preview. Such findings now withhold the warnings and name only the affected field; writing stays blocked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MUyLMVv9GbqWRByEZ7LgEb
There was a problem hiding this comment.
✅ Nenhum novo problema encontrado.
Reviewed changes Revisei o ajuste incremental de privacidade na prévia da exportação, incluindo seu teste de regressão.
- Ocultou avisos não localizados: quando há um achado sem linha de transcrição, a prévia deixa de renderizar os avisos brutos e exibe somente o campo afetado; o teste verifica que um UUID de ramo em formato de token não vaza.
GPT Luna | 𝕏
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.

Resumo
Refs #31, parte de código. O ensaio real fica no item 54 do roteiro e depende também da #25.
transcript_pathdos hooks oficiais do Claude. Só é aceito um arquivo comum<id-da-sessão>.jsonl, sem symlink. O estado continua guardando só IDs.--resume), ao receberSessionStart, o leitor Claude existente relê o ramo único da transcrição. A Bee mostra até 200 linhas marcadas com↺: mensagens, nomes de ações e resumos de compactação. Também informa omissões, leitura parcial ou ramos múltiplos. Nada é reenviado ao Claude nem inventado.Ctrl+E): prévia de um pacote v1 somente contexto, com referência Git do projeto. A prévia mostra o destino novo em<estado>/exports/(0700), os registros com a linha da transcrição, avisos, omissões e possíveis segredos. O texto dessas linhas fica oculto.Enteraplica) e rolagem (↑↓/PgUp/PgDn).Ctrl+Sgrava os mesmos bytes da prévia e rodaverify. A gravação é recusada enquanto houver possível segredo.memory-bee export <transcrição> --preview, para exportar depois de o Claude encerrar.Validação
cargo fmt --all -- --check,cargo clippy --locked --all-targets -- -D warnings,cargo test --lockedecargo build --lockedpassaram localmente em Linux.check_bundle.pytambém passaram localmente em Linux.tests/workspace.rscobrem:verify, destino não reutilizado e exclusão de linha.sk-bloqueia a gravação até a linha ser excluída e nunca aparece na prévia. O teste pegou um vazamento na primeira versão da lista de registros, já corrigido.check_claude_hidden_pty.pyganhou uma CLI falsa que informatranscript_path. O cenário cobreCtrl+E/Ctrl+S, omemory-bee verifydo pacote e a retomada com histórico. Também confirma que o Claude falso recebeu apenas/exit, sem texto reenviado.pyte).Limitações
export, não pela TUI.Documentos atualizados:
docs/specs/workspace.md,docs/MANUAL_TESTS.md(item 54),docs/EXECUTION.mdeROADMAP.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01MUyLMVv9GbqWRByEZ7LgEb
Generated by Claude Code