Skip to content
github-actions[bot] edited this page Jul 31, 2026 · 7 revisions

AncestryLLM 0.4.0

Status: Unreleased development candidate. These notes describe the implemented first slice of the 0.4.0 milestone; they are not a publication or release-readiness claim. Milestone 3 and release tracker #193 are authoritative for scope, current completion, acceptance criteria, and remaining gates.

Implemented boundary slice

  • RootsMagic now has declared public core, query, and export boundaries. RootsMagicService composes those concerns instead of owning SQL generation policy itself.
  • RootsMagicMapper.map() returns a typed, deterministic, JSON-safe RootsMagicGedcomDocument and structured loss report without exposing host paths or creating output/report files. Application-owned RootsMagicExporter.export() privately retains source verification state, validates the document before staging, and preserves rollback-capable pair publication behind the legacy exporter import.
  • GedcomService consumes the public parser, graph, identity, quality, serialization, and synchronization seams. Exact architecture gateways prevent services and unrelated modules from reaching through import-only compatibility façades to undeclared implementation details.
  • Public façade allowlists and representative prohibited-import tests make the dependency direction executable.
  • The immutable RootsMagic SQLite source and schema implementations now have physical source.py and schema.py ownership behind the public core façade. Query results include deterministic truncation metadata and tagged JSON-safe binary values, while legacy private import paths remain aliases.
  • The GEDCOM document model, physical-line parser, structural validator, and deterministic UTF-8-safe line serializer are physically separate from the compatibility engine. Supported parser and serialization façades preserve their existing symbols and diagnostics.
  • GEDCOM graph traversal, identity evidence and conservative merge, and immutable quality analysis/rendering are physically owned by their public operation modules. They preserve cancellation checkpoints and accept optional transport-neutral resolver ports without depending on UI, configuration, provider, keyring, or publication implementations.
  • Incremental synchronization now has a pure staged kernel with bounded, immutable DTOs for snapshots, comparisons, content-addressed plans, replayable decisions, coded loss reports, unpublished application, atomic commit, recovery, structural events, and terminal outcomes. The public sync façade connects shared decision, cancellation, and progress ports without introducing terminal, host-path, or provider dependencies.
  • The historical GEDCOM engine and incremental synchronizer are now import-only compatibility façades. Bounded ingress, loss-minimal serialization, atomic text staging, typed synchronization contracts, deterministic algorithms, manifest validation, generation publication and recovery, typed orchestration, and legacy argument translation have focused physical owners. Production callers use those owners through the supported service façades; one explicit test retains two direct compatibility imports to verify re-export identity.

Preserved compatibility and safety

The one-shot CLI and prompt-toolkit/Rich REPL remain the only implemented adapters. Command grammar, stable coded errors, immutable RootsMagic inputs, loss-minimal GEDCOM handling, explicit provider selection and consent, and network-free provider=none behavior are unchanged.

RootsMagic mapping reads one verified immutable snapshot. Publication retains the private source fingerprint, validates mapped content before creating staged artifacts, then revalidates the source while committing or rolling back the GEDCOM and sanitized report pair as one operation.

Remaining 0.4.0 work

The #166 extraction is implemented in this candidate without changing stable errors, cancellation/recovery semantics, deterministic output, loss-minimal GEDCOM handling, provider-none behavior, or atomic publication. Release evidence is still required for the broad non-person and multi-generation sync paths, external GEDCOM interoperability, and every other scoped tracker item.

Before 0.4.0 can be declared release-ready, every scoped issue and acceptance criterion in release tracker #193 must be complete and the canonical local and hosted release gates must pass. Project and lock metadata now identify the 0.4.0 development line; this is not permission to tag or publish it.

Clone this wiki locally