Release notes
Notable changes to Tares, newest first. The project follows Semantic
Versioning ; earlier 0.0.x history is in the git log.
Entries below 1.0.0 name the commands and variables as they were at that release, when the project was called NavFlow. They are history, not current usage. See Upgrading from 0.x for the full mapping.
1.0.0-1.0.1: 2026-08-05
Changed
- NavFlow is now Tares. This release is breaking, with no compatibility layer. The package and
command are
tares, the daemon istaresd, the MCP proxy istares-mcp, and--navflowdis--taresd. EveryNAVFLOW_*environment variable is nowTARES_*, and the old names are not read. The image isghcr.io/glassflow/tares, the repository is glassflow/tares , and the Claude Code plugin istares@tares. - The database file is
tares.duckdb, previouslynavflow.duckdb, inside a data home that moved from~/.navflowto~/.tares.
Two guards instead of a fallback. Both renames above would otherwise fail quietly, coming up
healthy and empty while the real data sat untouched beside the new file. So the daemon refuses to
start if any NAVFLOW_* variable is still set, or if a pre-1.0 database sits next to a missing
tares.duckdb, and prints the rename or the mv you need. Full instructions:
Upgrading from 0.x.
0.2.0: 2026-07-26
Added
- Tares agents: a prompt attached to a trigger. When the trigger
fires, Tares reads the correlated timeline and writes a finding back onto the entity’s
timeline (a built-in
findingssource). Configured in the console (Agents) or the catalog (agents:); enabled ⟺ subscribed to its trigger; read-only (it concludes, it doesn’t act). The demo ships one that diagnoses the injected incident out of the box. navflow up --auth: one switch for authentication. Bare--authgenerates and persists a root token and prints a…/?token=…login URL each launch;--auth=<token>uses your own. Open by default (navflow up).- Per-source API keys: creating a push source on a secured instance mints an
ingest-scoped API key for it (shown once). The Security page groups Access, API keys, and the Anthropic key.
Changed
- Ingest is gated by auth like every route. Producers authenticate with scoped
ingestAPI keys (Authorization: Bearer <key>), not a shared token.
Removed
NAVFLOW_INGEST_TOKENandNAVFLOW_READONLY: folded into the one auth switch + scoped API keys.GITHUB_TOKENandNAVFLOW_VERCEL_VERIFYenv vars: GitHub tokens come from the source’stokenconfig; Vercel drain verification echoes Vercel’s own probe header.NAVFLOW_ANTHROPIC_KEY: useANTHROPIC_API_KEY(or the console-stored key).
0.1.36: 2026-07-23
Added
alertmanagerconnector: a push receiver for Alertmanager. Point awebhook_configs.urlat the source’s ingest endpoint; each routed alert becomes an event (keyed by a label, firing / resolved). The source page shows a copy-pastealertmanager.ymlreceiver block.
0.1.35: 2026-07-23
Added
prometheus_alertsconnector: polls Prometheus’s own/api/v1/alertsand emits one event per active alert (keyed by a label), plus aresolvedevent when it clears. Discover lists the configured rules with an optional severity filter.referenceconnector: documents (json / csv / md / txt) attached to an entity by their labels, always surfaced when correlating on that entity regardless of the read window.
Removed
alertsandstaticconnectors: superseded byprometheus_alerts/alertmanagerandreferencerespectively.
0.1.34: 2026-07-22
Changed
- Prometheus: pick the metrics, no PromQL. Discover now lists the
server’s metrics and labels; you pick what to ingest (by name or by label) and Tares writes the
query. The metric value is stored as a number-typed
valuelabel, so triggers can aggregate it. Added bearer / basic auth.
0.1.32-0.1.33, 2026-07-22
Changed
- Postgres: the connection URL (
dsn) is a required per-source config field, stored as a secret; the driver ships in the base package (no[postgres]extra); you can select which columns to pull. Droppedkey_column(the key is aprimarylabel) andcursor_type(inferred from the value).
0.1.4: 2026-07-03
Removed
changelogandconfigconnectors: dummy, demo-only connectors that had outlived their use. Also drops the demo api-server’s unused/admin/changelogand/admin/configendpoints and renames its fault switch/admin/inject→/demo/inject.
0.1.3: 2026-07-03
Added
include_payloadonread/query: opt-in flag that returns the full lossless stored record asrawon each row, alongside the summarytext. Exposed over HTTP and the MCPread/querytools; covers all connectors.
Fixed
- Claude Code plugin install: publish a root
marketplace.json(/plugin marketplace add glassflow/navflow) and fixplugin.jsonload errors on Claude Code 2.1 (duplicate hooks ref, missingingest_tokendefault,navflow_urlrequired flag hiding its default). - Double-ingest for
claude_code: the first pushed event flips a poll-mode source to push mode, so a source fed by the plugin no longer also tails files and ingests every event twice.
0.1.2: 2026-07-02
Added
navflow --version.
0.1.1: 2026-07-02
First public (soft-launch) release.
Added
read(selector, window)primitive: a correlated, time-ordered read across all sources matching a strict-AND conjunction oflabel=valueconstraints, with no view required. Exposed over HTTP (POST /read) and MCP (thereadtool). Views become an optional narrowing lens; triggers still attach to a view.- Console redesign: a selector-first Explore (pick an entity, add filters, read across every source, with a human/agent view toggle), a ⌘K Ask command palette, a three-act navigation, and separate Views / Triggers pages.
- Agents → Reads: a client filter (defaults to
mcp) over the read activity log.
Changed
- Package and CLI distribution renamed from
navflow-mvptonavflow.