A sessão de leitura não é a interface
No tbook, separar estado e renderização permite testar a retomada de um livro sem abrir o terminal.
O tbook lê EPUBs no terminal, com ilustrações ANSI, busca e bookmarks. Uma parte menos visível da ferramenta é a separação entre o estado da leitura e a interface que o apresenta.
O que pertence à sessão
Em internal/core, a estrutura Session mantém o livro, o capítulo e o estado persistido. Ela oferece operações como GoTo, UpdateProgress, ToggleBookmark e Close. Não importa Bubble Tea: é possível exercitar essas operações sem iniciar a TUI.
Os testes cobrem a retomada do capítulo salvo, a rejeição de capítulos inválidos, a persistência de progresso e bookmarks e o acúmulo do tempo de leitura. É uma fronteira pequena, mas útil: uma alteração de layout não deveria mudar as regras de navegação.
A precisão também faz parte do contrato
O estado guarda capítulo e percentual. Isso não equivale a guardar um parágrafo exato: se a largura mudar, a renderização pode mudar também. Uma âncora independente do layout é uma questão para uma próxima versão, não uma funcionalidade existente.
A interface consome o núcleo
Bubble Tea cuida de teclado e layout; Glamour renderiza Markdown. As imagens do EPUB viram blocos ▀, com truecolor ou fallback de 256 cores. Essa representação perde detalhe, mas mantém texto e ilustração no mesmo ambiente.
O case técnico aponta a revisão do código, os testes executados e as capturas reais. Na revisão de outubro de 2026, a suíte passa, mas a primeira release e o arquivo de licença ainda estão pendentes.