Skip to content

Releases: BleedingDev/dx-feature-tracker

dft 0.3.0

Choose a tag to compare

@BleedingDev BleedingDev released this 03 Oct 06:41

dft gives agents explicit control over what they read and change, with retained evidence for checking their results later.

New

  • Agent queries through the CLI and stdio MCP use dx.agent.v1, explicit acquisition and price policies, and limits on work and output. Retained analysis bases keep their selected observations, Git attribution, prices and interpretation versions for replay and comparison.
  • Reviewed operations use plan, apply, get and cancel calls, durable request keys, progress and verification receipts. The available operations are collect, configure, metadata export, delete, reset and restore.
  • Investigations and lessons keep evidence references, revision history and separate evaluations. Agents can resume an investigation and search retained lessons. The tool does not execute lesson text or treat an authored conclusion as measured savings.
  • The loopback dashboard shows agent queries and reviewed operations. CLI, MCP and dashboard calls share the same capability contracts.
  • Codex guidance installation preserves edited skills and unrelated files. Cursor guidance describes the agent query and operation workflow.

Upgrading

The local SQLite store migrates to schema 8 with additive agent tables and indexes. Existing observations remain intact. Existing human report commands remain available. MCP registration is manual.

Known limits

  • Agent-profile acquisition refresh and price refresh are unavailable. Use recorded observations and cached or pinned prices.
  • derive-usage, refresh-prices, live-start and live-stop operation kinds are reserved and disabled. Existing human live commands remain available.
  • Agent export contains metadata only. Missing measurements remain unavailable with a reason. Operation receipts do not promise universal exactly-once execution or prove causal savings.

Validation

The full check, test and build gate passed with 2,005 tests passed and three skipped. Commit hooks passed, and GitHub CI passed on this release commit.

The packed archive passed isolated CLI and MCP checks for retained replay, reviewed metadata export, durable retry and receipt recovery, and saved investigation retrieval. MCP emitted only JSON-RPC frames and no diagnostics on stdout.

Archive SHA256: 402216732f6903f8fa288f429019de9483317abe7978ae986d30e897bac8f70c. The versioned archive and dx-feature-tracker.tgz contain identical bytes.

dft 0.2.1

Choose a tag to compare

@BleedingDev BleedingDev released this 02 Oct 07:43

A fix release: numbers that were counted twice or put on the wrong branch, and secrets that could slip past redaction.

Fixed

  • Requests counted once. A DeepSeek Harness request read three or more times now counts once, as its newest reading. An OpenCode orchestrator message split again by a later sync replaces its earlier split instead of adding to it. With Codex OpenTelemetry on (dft install --telemetry), a session with no session file no longer shows one extra request from the warmup Codex sends when it starts.
  • dft analyze and dft history agree with dft usage. Codex cached input is no longer counted as fresh input there, and a DeepSeek Harness request that a later read replaced is no longer counted twice.
  • Detached HEAD is not a branch. Requests made after git checkout origin/main, a tag or git checkout --detach main no longer land on a branch named origin/main or main. They count toward the branch around them, also when a rebase left that checkout or git fetch --prune later removed the remote branch.
  • Removed Claude Code worktrees. Sessions from a worktree that was removed before dft first synced are kept when they show a commit the repo knows or name the repo's worktree folder, and they land on the branch Claude Code recorded. Requests that then move into the main worktree with cd stay in the repo instead of falling under "(no repo)".
  • Crashed Codex turns. A last turn that never finished is closed as unfinished after 30 quiet minutes, and a turn still waiting for its first model reply is no longer cut off by a long quiet spell.
  • Secret redaction. dft redacts more secrets in what it keeps: long setting names such as spring.datasource.password=, AWS_SECRET_ACCESS_KEY= and other names ending in _KEY, _TOKEN, _PAT or _PASSWORD, password: value with the value on the next line, password => 'value', --password value and --token value (also after a line continuation or a non-breaking space), mysql -p, sshpass -p, curl -u user:pass, user:pass@host in links and Google API keys. Whole values are hidden now, not just the part before a ; or ,. Ordinary words such as token_count, token_type and PWD paths are left alone. A command run through sudo -u root gh is recorded as gh.
  • Prices. OpenAI Batch cache reads are priced at the Batch input rate for models where OpenAI lists no Batch cached rate (gpt-4.1, gpt-4o and their minis, gpt-4.1-nano, o1, o3, o3-mini, o4-mini), dated ids such as gpt-4.1-2025-04-14 included. A dated OpenAI id such as o3-2025-04-16 uses its model's Fast rate instead of 2x, unless OpenAI lists that snapshot itself.
  • Tool versions. Pi and DeepSeek Harness rows now carry the installed tool version instead of none.
  • dft mcp. The MCP server reports its name as dft. dft usage --help lists every --by choice, including parentSession and agent.

Upgrading

Nothing to do. Your next dft sync derives stored usage again with the fixes above, so branch and request totals of older chats can change.

Known limits

The points still open are listed in harnesses.md.

dft 0.2.0

Choose a tag to compare

@BleedingDev BleedingDev released this 01 Oct 21:35

0.2.0

dft now tracks seven AI coding tools, not just Cursor: Cursor, Claude Code, Codex, OpenCode, Pi, OMP and DeepSeek Harness.

New

  • Every tool, one store. dft sync reads each tool's own session files (and Cursor's databases) read-only, and dft install adds capture for every tool it finds in this repo only: Claude Code and Codex hooks, an OpenCode plugin, Pi and OMP extensions, and DeepSeek Harness hooks. These files are kept out of git and never touch your teammates or your home folder. dft install --telemetry also turns on Claude Code and Codex OpenTelemetry to 127.0.0.1, shows the change first and keeps a backup.
  • dft usage. Tokens, requests and cost grouped by tool, model maker, gateway (via), model, effort, repo, branch, worktree, session or day, week or month, with filters for each and a time window. The same numbers reach the dashboard and the MCP server.
  • Three money figures, never added. The estimate is tokens times the model maker's public price, including cache tiers and fast or priority tiers. A tool's own cost figure (Claude Code, OMP, OpenCode, Cursor) is shown next to it as "tool's figure". Only real bills are called billed. Models without a known price show their tokens with "no price".
  • Branches per request. Each request lands on the branch it ran on: the branch the tool recorded, then a hook's branch, then the checkout history at that time, then the folder. A chat that switches branch is split at the switch. Subagents count on their own worktree's branch and stay under their parent in chat lists.
  • Chats from every tool. dft chats and the dashboard list chats across tools with titles, models and effort per turn, and subagent trees.
  • Dashboard. Filter chips, a group-by choice, a chart over time stacked by tool and a table with drilldown, all kept in the address. It also watches each tool's session folders, so a chat shows up without waiting for the next poll, even when the tool's hooks are not loaded.
  • Kept forever. Usage facts stay in ~/.dft after a tool deletes its transcripts. dft never stores prompt text.

Changed

  • dft status lists every tool with its sessions, project capture and last event.
  • dft history --all-repos names same-named repos by their parent folder.
  • dft status run outside a git repo says so instead of "detached HEAD".

Known limits

The open points are listed in harnesses.md. The checks behind this release are in 0.2.0 validation.

Upgrading

Node.js 24.18.0 or newer is still required. dft uninstall from this version also removes the Cursor skills that earlier versions copied.

dft 0.1.15

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:53

Install or update:

npm i -g https://github.com/BleedingDev/dx-feature-tracker/releases/latest/download/dx-feature-tracker.tgz
  • The estimate now covers Cursor Auto: Auto bills at the list price of the model it routes to, so dft uses Cursor's own list-price value for each Auto request (shown as "list price; Auto from Cursor")

dft 0.1.14

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:47

Install or update:

npm i -g https://github.com/BleedingDev/dx-feature-tracker/releases/latest/download/dx-feature-tracker.tgz
  • Billed cost and the estimate now land on the branch each request ran on, including merged and deleted branches (first run refetches your Cursor usage once to fix older rows)
  • Grok 4.7 fast models are priced
  • A short note shows Cursor requests that could not be matched to a branch
  • The dashboard intro stays open at the end with Replay and Close

dft 0.1.13

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:40

Install or update:

npm i -g https://github.com/BleedingDev/dx-feature-tracker/releases/latest/download/dx-feature-tracker.tgz
  • Replay the dashboard intro any time from the Intro item in the menu

dft 0.1.12

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:34

Install or update:

npm i -g https://github.com/BleedingDev/dx-feature-tracker/releases/latest/download/dx-feature-tracker.tgz
  • Short intro video when you first open dft dashboard
  • A contact line for company-wide use
  • No more npm install-scripts warning; old Node is still refused when you run dft
  • The live page never misses a change

dft 0.1.11

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:29

Install or update:

npm i -g https://github.com/BleedingDev/dx-feature-tracker/releases/latest/download/dx-feature-tracker.tgz
  • dft dashboard is now a live local page (127.0.0.1:7420) that updates by itself while you work; --one-time writes the static file
  • Merged and rebased branches show their real commit count; every local branch is counted
  • No more "(no branch)": work during a rebase goes to the branch being rebased, leftovers show as one "unassigned" row

dft 0.1.10

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:11

Install or update:

npm i -g https://github.com/BleedingDev/dx-feature-tracker/releases/latest/download/dx-feature-tracker.tgz
  • Exact tokens per request straight from Cursor's hooks (input, cached, cache write, output), no dashboard needed
  • The model of every turn is recorded from the hook
  • The same request seen in hooks, cursor-agent output and your Cursor usage still counts once

dft 0.1.9

Choose a tag to compare

@BleedingDev BleedingDev released this 30 Sep 15:10

Version bump only, no functional changes (the stop-hook token work was left out by mistake). Use v0.1.10 or later.