-
Notifications
You must be signed in to change notification settings - Fork 0
REPL_ARCHITECTURE
github-actions[bot] edited this page Jul 19, 2026
·
8 revisions
The interactive console is a local UI over the same application services used
by the one-shot CLI. This document defines the migration boundary before a
prompt_toolkit REPL replaces the legacy console.
- Input owns terminal reads, multiline editing, completion, history, and EOF. It never interprets shell syntax or accesses databases/providers directly.
- Session routing owns active-module state and non-secret saved options. It routes a parsed invocation to an executor and never renders terminal text.
- Command execution validates typed arguments and calls application services.
It returns serializable DTOs or stable
AncestryErrorinstances. - Services enforce consent, endpoint policy, immutable source handling, and
provider
noneoffline behavior. They do not import UI libraries. - Presentation renders DTOs, progress, and coded errors. Rich objects stay in this layer; JSON remains a serialization of the same DTOs.
- One-shot commands,
--jsonoutput, stable error codes, and documented exit codes remain supported throughout the migration. - The REPL cannot execute shell commands, Python, scripts, pipes, redirects, aliases, or macros.
- Secret entry is no-echo, secrets never enter history, and diagnostic output must redact registered sensitive values.
- Provider selection and consent stay explicit.
provider=noneremains network-free even when keys or provider SDKs are installed. - Long-running work reports structured progress and may run asynchronously, but cancellation must preserve atomic GEDCOM and workspace writes.
input -> routing -> execution -> services is the only execution direction.
Presentation receives results from execution but is never imported by services.
The one-shot CLI and REPL are sibling adapters over the same execution and
service contracts.
- Home
- CLI reference
- Interactive console guide
- Architecture ownership and dependency contracts
- Bounded file ingress
- Versioning and compatibility
- Continuous integration
- Release runbook
- Encrypted backup and recovery
- First-run storage diagnostics
- GEDCOM compatibility and release checks
- Built-in module authoring
- Privacy and consent
- Provider guide
- Local LLM benchmarks
- Local-first retrieval evaluation
- Wiki synchronization
- Wiki operations and recovery
- Security response checklist
- Electron and FastAPI desktop ADR
- Data-flow threat model and control matrix