v0.1.10 — metadata backend + a slimmer install
·
89 commits
to main
since this release
v0.1.10 — metadata backend + a slimmer install
Released: 2026-07-21
Headline: tycoon gets dramatically smaller and more focused. The
ingestion rewrite's first milestone lands — a typed MetadataBackend
protocol behind all run history — and the FastAPI web UI, Dagster
orchestration, and Nao/ask AI agent are removed outright, dropping
the lockfile from 174 to 109 packages. The cycle plan is in
docs/proposals/v0.1.10-scope.md; the
rewrite's map is the new
ingestion architecture doc.
Landed
- MetadataBackend protocol + DuckDB file backend (#82, PRs #136/#137)
— run history now flows through typedRunStarted/RunCompleted/
RunFailedevents and a structural Protocol instead of raw SQL against
hardcoded table names. Every dlt dispatch emits lifecycle events
(best-effort — a metadata write never blocks a run), and
data history/data statusread through the backend. Alternative
backends (MotherDuck, Postgres, in-memory for tests) become an
implementation of the Protocol, not a fork of the capture path. - Server / Dagster / ask extras removed (#139, PR #147) — ~15 modules
deleted.tycoon askandtycoon register llmare gone (typer's
standard "no such command" error, no stubs). The init wizard is now
4 steps: ingestion → warehouse → dbt → rill.tycoon start/stop
manage exactly two servers: Rill dashboards (:9009) and the Quack
live warehouse (:9494). - Ingestion architecture doc (PR #149) — the plain-English map of
where ingestion is going: Runtime / Destination / MetadataBackend
protocols, the dlt tier model, and the milestone sequence for #81.
Upgrading from 0.1.9
- If you used
tycoon ask: the AI-agent surface is removed. Existing
ask:blocks andstack.orchestrator*keys intycoon.ymlare
ignored harmlessly — no migration needed, no file edits required.
An AI-assisted surface will be rethought as part of the rewrite (#78). - If you used the Dagster integration:
tycoon run <tool>still
forwards to any CLI in your environment, so a self-managed Dagster
(or Airflow, or cron viatycoon schedule) keeps working — tycoon
just no longer manages it. - If you installed extras:
pip install 'database-tycoon[server]',
[dagster], and[ask]no longer exist. A plain
pip install database-tycooncarries everything the CLI does.
Behind the scenes
- Real test coverage rose from ~65% to ~73% with the deletion of the
largely-untested server/orchestration code; the coverage floor moved
to 68% with the same drift headroom as before. pandasis now an explicit, pinned core dependency — nothing in
tycoon imports it, but dlt's on-demand filesystem source needs it for
CSV reading (optional-extra treatment tracked in #148).- All user-facing hints, docs pages, and wizard copy that referenced the
removed surface were swept, and the CLI-surface stale-string sentinel
now guardstycoon ask/register llm/ Nao references so this
class of drift fails tests.
What's next
The ingestion rewrite continues milestone by milestone — source catalog
manifest, Runtime protocol implementations, and the dlt tier model. See
the ingestion architecture doc and #81
for the sequence.