Decisao de Separacao Python x Rust
Data da decisao: 2026-04-10.
Decisao
O Seshat tera repositorios separados por linguagem.
A implementacao Rust em ~/apps/jm/seshat-rs e a fonte de verdade para a versao Rust. A implementacao Python em ~/apps/jm/seshat permanece como repo separado para a versao Python. Este card nao exige editar, congelar ou arquivar o repo Python.
Racional
- A CLI Rust cobre os comandos publicos:
commit,config,init,fixeflow. - A matriz de paridade nao aponta mais lacunas funcionais internas sem decisao registrada.
- Os fluxos de Git, providers, tooling, JSONL, UI e GPG estao cobertos por testes Rust.
- Wrapper Python foi rejeitado porque misturaria responsabilidades entre repos.
- Congelar ou arquivar o repo Python foi rejeitado porque a estrategia e manter implementacoes separadas por linguagem.
- A escolha de qual binario
seshatfica noPATHe responsabilidade de instalacao/distribuicao, nao de alteracao do codigo Python.
Fonte de Verdade
- Codigo Rust:
~/apps/jm/seshat-rs. - Binario Rust:
seshat. - Documentacao Rust:
README.mdesite/docs/deste repo. - Backlog da migracao Rust:
site/docs/refactor-tasks/. - Matriz de paridade Rust:
site/docs/parity-matrix.md. - Codigo Python:
~/apps/jm/seshat, mantido como repo separado.
Politica de Corte
- Nao ha corte destrutivo da versao Python neste repo.
- Nao ha janela de rollback definida aqui para Python.
- Cada repo deve documentar instalacao, testes e release da sua propria implementacao.
- Ambientes que precisam escolher uma implementacao devem controlar isso por
PATH, pacote, alias ou gerenciador de versao.
Acoes Neste Repo
- README aponta este repo como fonte de verdade da versao Rust.
- Checklist de release registra a estrategia escolhida.
- Matriz de paridade registra que nao ha pendencia funcional Rust para corte Python.
- E2E Rust cobrem o comportamento de diff grande com e sem confirmacao.
Fora de Escopo
- Alterar codigo, README, issues ou CI do repo Python.
- Transformar Python em wrapper para Rust.
- Arquivar o repo Python.
- Definir politica de distribuicao global para todos os repos.
Validacao
cargo fmt -- --check
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo build --release
target/release/seshat --help
rg -n "Python|Rust|repo|install|seshat" README.md site/docs