Releases
v0.3.3 — April 20, 2026
Install
pipx install opentraces==0.3.3
# or
brew install JayFarei/opentraces/opentraces
Fixes
- Hugging Face dataset schema drift. The hand-maintained
dataset_infos.jsonfeatures map lagged behindTraceRecord, so rows withtask.repository_url,metrics.total_cache_read_tokens,metrics.total_cache_creation_tokens,generation_index, or richerattribution.*were rejected by HF's datasets-server withCastError/StreamingRowsError. The declared schema now derives from the Pydantic model on every push.
Added
- Push safety against remote version drift.
ot pushnow compares the remote dataset schema to your local client. If the remote is ahead you get a clear error withot setup upgrade; we never overwrite a newer declared schema with a narrower one. - Additive-evolution contract documented in
packages/opentraces-schema/VERSION-POLICY.md. MINOR and PATCH schema bumps are guaranteed additive so silent migration is always safe. - Migration guard.
detect_outdated_shards/migrate_outdated_shardsonly rewrite rows strictly older than your local schema; newer rows on the remote are preserved byte-identically. - Capture: away_summary recaps from Claude Code sessions are preserved as mid-session intent snapshots instead of being dropped.
- Agent discovery surface on the marketing site:
/sitemap.xml, Agent Skills discovery under/.well-known/agent-skills/, Web Bot Auth signing directory stub, Content-Signal preferences inrobots.txt, Link headers on the homepage, markdown content negotiation on/and/docs, a WebMCP tool surface, and explorer deep-links via?u=<username>. - Performance harness with regression smokes across CLI, TUI, viewer, watcher, web, and push paths.
Internal
make buildnow builds the full sdist → wheel chain locally (force-include the viewer bundle into the sdist).datasets>=2.16.0moved into the[dev]extra so the HF Features regression tests run under the documented dev setup.
No SCHEMA_VERSION or SECURITY_VERSION change (both remain 0.3.0).
See CHANGELOG.md for the full list.
v0.3.2 — April 17, 2026
Install
pipx install opentraces==0.3.2
# or
brew install JayFarei/opentraces/opentraces
Changes
-
opentraces initnow surfaces every HuggingFace dataset in your namespace, not just the opentraces-tagged ones. Previously the listing was filtered by a name/description search and silently hid tagged repos whose names did not contain "opentraces". -
Added an Enter repo name... option to
opentraces initthat probes HF: existing repos attach with inherited visibility and canonical casing; new names fall through to a confirm-and-create flow. -
opentraces webno longer falls back to synthetic sample traces when the inbox is empty — the empty state stays empty. -
Release notes on opentraces.ai now render fenced code blocks correctly (historical v0.3.1 and earlier fixed).
-
No schema changes —
SCHEMA_VERSIONstays at 0.3.0. -
No security-pipeline changes —
SECURITY_VERSIONstays at 0.3.0.
v0.3.1 — April 17, 2026
Install
pipx install opentraces==0.3.1
# or
brew install JayFarei/opentraces/opentraces
Changes
flaskandtextualare now base dependencies.opentraces webandopentraces tuiwork out of the box on a plainpip install opentraces, no[web]/[tui]extras required. The extras remain for backward compatibility.- Site: landing page terminal demo defaults to the
inittab instead ofreview. - No schema changes —
SCHEMA_VERSIONstays at 0.3.0. - No security-pipeline changes —
SECURITY_VERSIONstays at 0.3.0.
v0.3.0 — April 17, 2026
Install
pipx install opentraces==0.3.0
# or
brew install JayFarei/opentraces/opentraces
Changes
First public release of the CLI since 0.2.1. A coherent single bump that
folds together the internal development iterations from the past week:
a full git-style command restructure on the user-facing side, an internal
code reorganization on the maintainer-facing side, plus new attribution /
commit-correlation surfaces, BLOCKED-status enforcement, per-remote upload
tracking, and the security pipeline refresh described in security/version.py
(SECURITY_VERSION 0.2.0 → 0.3.0).
Added
Attribution and commit correlation
ot blame <file>:<line>resolves a file line to the trace + conversation that produced it, using murmur3 content hashes + per-range change_type metadata. Cross-refactor tracking survives formatter / linter rewrites.ot notes <ref>inspects therefs/notes/opentracesstore where the post-commit hook pins traces to revisions.ot setup gitinstalls the post-commit correlator + PostToolUse diff capture hooks for the current repo.ot list --by-commitgroups trace listings by their correlated revision.ot export --format agent-traceemits Agent Trace-compatible JSON for traces that carry attribution blocks.ot show --markdownrenders a prompt-injection-safe markdown transcript.
Command surface (git-style flat verbs + resource nouns)
ot add <ids>... | --allstages traces for push (mirrorsgit add). Variadic. RefusesBLOCKEDandREJECTEDtraces with a pointer to the unblocking verbs (ot redact,ot reject,ot reset).ot show <id>shows one trace (flat; replacesot trace show).ot list [--projects] [--remote <name>] [--by-commit]lists traces; with--projects, lists every directory that ranot init; with--remote <name>, filters to traces missing on that remote.ot reject <ids>...,ot reset <ids>...,ot discard <id>— per-trace curation, flat (replacesot trace ...).ot redact <id> <pattern> [--regex] [--field] [--step]— content-targeted find-and-replace. Replaces the old--step <n>-only blank-the-whole-step shape. Permanent, no undo.ot llm-review— Tier-2 LLM semantic review (renamed fromreview-llm; thellm-prefix keeps the machine-pass nature explicit vs the human review handled byreview_policy).ot remote add/set-url/rename/remove/use/list— git-parity verbs on the remote noun. URL acceptshf://user/repoor short formuser/repo(auto-expanded; HF is the default backend).ot auth login/logout/whoami— group equivalent of the flatot login/logout/whoami(which still work for back-compat).ot completions install | uninstall | [shell]— cf-style shell completions with dynamic delegation. Bareot completionsprints the script for$SHELL. Supports bash, zsh, fish.ot setup upgrade—ot upgradeis now a setup subcommand.ot config set <key> <value> [--append] [--project|--global]— proper key/value setter, replacing the previous append-only-with-flags shape. Legacy flags preserved for back-compat.--projectflag added tosetup trufflehog,setup review-llm,setup review-policyfor explicit per-project scope (mirrorsgit config --local).- gh-style help:
ot --helpis sectioned (CORE / INBOX / PROJECT / RESOURCE) with one-liner descriptions.
Pipeline behaviour
BLOCKEDis now a real, written status. TruffleHog findings move traces toBLOCKEDwith ablock_reason, surfacing inot statusand the inbox.ot addrefusesBLOCKEDtraces, making staging a true approval gate.- Per-remote upload tracking. Switching remotes and running
ot pushreplays the full local history to the new remote (mirrorsgit push <new-remote>). Driven by a newTraceStagingEntry.uploaded_to: dict[str, str]field.
Changed
Internal code layout (maintainer-facing; breaking imports)
Top-level package reorganization from 15 top-level items to 7:
agents/+parsers/+installers/+enrichment/git/post_commit.py→capture/exporters/+upload/→publish/- Top-level glue modules (
config,paths,state,workflow,inbox,pipeline,processors) →core/ - Business logic extracted from
clients/andcli.pyintocore/review.py+core/publish_flow.py cli.pysplit into acli/package
Removed
Breaking import paths (maintainer-facing)
opentraces.agents.*→opentraces.capture.*opentraces.parsers.*→opentraces.capture._baseoropentraces.quality.parse_gateopentraces.installers.*→opentraces.capture.*opentraces.exporters.*→opentraces.publish.*opentraces.upload.*→opentraces.publish.huggingface.*opentraces.state,opentraces.config,opentraces.paths,opentraces.workflow,opentraces.inbox,opentraces.pipeline,opentraces.processors→opentraces.core.*opentraces.enrichment.git.post_commit→opentraces.capture.git.post_commit
Security
SECURITY_VERSIONbumped0.2.0→0.3.0to reflect detection-rule changes made this cycle (regex patterns, entropy thresholds, classifier heuristics, anonymization rules). Traces emitted by this CLI carry the new version string inSecurityMetadata.classifier_version.
Schema migrations (auto, on first command after upgrade)
TraceStagingEntrygainsuploaded_to: dict[str, str]. Existingstatus=UPLOADEDtraces are backfilled withuploaded_to = {"origin": <existing uploaded_at>}.STATE_SCHEMA_VERSIONbumped to"2".ProjectConfiggainsremotes: dict[str, RemoteConfig]+active_remote: str | None+default_visibility: str. Legacy singleremote: str+visibility: strare migrated toremotes = {"origin": RemoteConfig(...)}andactive_remote = "origin". Marker version bumped 1 → 2.
Migration table (user-facing commands)
| Old | New |
|---|---|
ot commit | ot add |
ot trace commit | ot add |
ot trace list | ot list |
ot trace show <id> | ot show <id> |
ot trace reject <id> | ot reject <id> |
ot trace reset <id> | ot reset <id> |
ot trace redact <id> --step <n> | ot redact <id> <pattern> (new content-targeted shape) |
ot trace discard <id> | ot discard <id> |
ot login / logout / whoami | ot auth login / logout / whoami |
ot review-llm | ot llm-review |
ot upgrade | ot setup upgrade |
ot projects list | ot list --projects |
ot remote set <url> | ot remote add <name> <url> |
TraceStagingEntry.uploaded_at only | + uploaded_to: dict[str, str] (auto-migrated) |
ProjectConfig.remote + visibility | remotes + active_remote (auto-migrated) |
BLOCKED enum existed but never written | Now written by parse pipeline; ot add refuses |
The legacy flat verbs (ot login, ot upgrade, ot commit, ot trace ...,
etc.) still work for back-compat in 0.3.0; a future release will remove
them per a clean-break deprecation cycle.
Tests
+143 new tests covering schema migrations, per-remote tracking, git-parity
remote verbs, BLOCKED wiring, content-targeted redaction, auth group,
completions noun, gh-style help renderer, flat workflow verbs, the
ot add approval gate, config set scope semantics, and setup --project
flag. Test suite went from 1047 → 1198 passing, 2 pre-existing baseline
failures unchanged.
v0.2.1 — April 1, 2026
Install
pipx install opentraces==0.2.1
# or
brew install JayFarei/opentraces/opentraces
Changes
- fix:
web_server.pynow uses dynamicSCHEMA_VERSIONinstead of hardcoded"0.1.0"— web review UI was showing wrong schema version in trace previews - fix: bundled
skill/SKILL.mdnow includes exit code1(needs review / quality gate not passed) forimport-hfpartial failures - docs: post-release docs-update pass — viewer TypeScript types updated for v0.2.0 schema fields,
llms.txtregenerated from source,generate-llms-txt.shupdated with new workflow pages - ci:
update-homebrew.ymlnow hasworkflow_dispatchfor manual re-triggers; authenticated remote URL fix for push step
v0.2.0 — April 1, 2026
Install
pipx install opentraces==0.2.0
# or
brew install JayFarei/opentraces/opentraces
What's new
Runtime agent import
import-hf— pull traces from any HuggingFace dataset, parse via Hermes or generic adapter, and push to your own dataset- Hermes parser — first-class support for Hermes-format agent logs
- Claude Code hook integration —
on_stopandon_compacthooks enrich sessions with context window state, project metadata, and tool usage at session end
Assessment workflow
push --assess— run quality scoring immediately after pushassess --dataset— re-assess a remote HF dataset without hf-mount; fetches JSONL directly via datasets-server API- Scorecard badges — SVG badges for quality dimensions (training, RL, analytics, domain, conformance)
opentraces:statssentinel — machine-readable stats block in dataset README; parsed byexplorefor community aggregation
CLI improvements
upgradecommand — update opentraces in place- Agent-aware exit codes: 0 = success, 1 = needs review, 2 = blocked by gate
--machineflag for structured JSON output consumable by agents
Schema 0.2.0
execution_context: "devtime" | "runtime"— discriminator for code-editing vs task-execution agentsOutcome.terminal_state— how the trajectory ended (goal_reached, interrupted, error, abandoned)Outcome.rewardandOutcome.reward_source— RL environment reward signals- See opentraces-schema v0.2.0
Fixes
- Parser: harden
tool_inputextraction against malformed model outputs - Pipeline:
needs_reviewgates on scanner matches, not redaction count - Upload: regenerate dataset card from full remote aggregate on each push
- HF: fix datasets-server indexing for multi-shard datasets
- Security: allowlist path-structured
high_entropy_stringfalse positives
v0.1.1 — March 29, 2026
Install
pipx install opentraces
# or
brew install JayFarei/opentraces/opentraces
What's included
- Claude Code session parser with multi-agent adapter contract
- Context-aware security scanning and redaction
- Git signal enrichment and attribution
- Sharded JSONL upload to HuggingFace Hub
- Terminal UI (
lazytraces) and web review UI - Per-project review policy (auto/review)
Changes since v0.1.0
- Fix publish workflow to correctly target TestPyPI vs PyPI
- Use
pipxfor CLI install commands - Add Homebrew tap auto-update on release