Changelog
What changed in each published release of the free build, newest first. Each entry is stated from the release's own programs and the documents shipped in its download.
1.0.31
- Your plan, your agents, one command away.
din statusand/din statusshow your plan, when it renews, and your agents: which one your field serves, which are set aside, or, on a paid plan, all of them live together, with the exact command to switch.din agent list,din agent add <agent>anddin agent remove <agent>wire Claude Code, Cursor or OpenCode after the install; removing an agent keeps its records. See Install. - Paid features without a restart. After
din activate, a running local dashboard turns the paid features on when you reload the page. It shows your plan, what it includes, your agents and your renewal date, and locked panels link to the plans. See Activate a paid licence. - Renewal that does not lapse. Each entitlement runs a few days past its billing date.
din activate --renewcarries a paid install into its new period with the saved key, silently when it works, anddin autostart onruns it for you daily. A paying install does not drop to free at a period boundary. - Messages name the command to type. The field's messages say
din field activate <agent>ordin activate <key>, never an API path. - Hosted DIN commands, for when hosting opens.
din hosted connect | push | status | recallpush this install's records to a hosted DIN console with an agent token and ask it. Capture and grading stay on your machine, with your own model key, and nothing is sent until you rundin hosted push(or turn ondin autostart on --with-push). No hosted plan is on sale yet. - Long sessions reach memory while still open. Capture writes a checkpoint record every 30 minutes of an open session (
DIN_CHECKPOINT_SECS,DIN_CHECKPOINT_TURNS;0turns it off). Each checkpoint replaces the last, and the final record replaces them all.din-capture statusshows open sessions not yet recorded. - Find a conversation by an exact phrase. The store keeps a redacted transcript beside each conversation record, and the personal-content filter runs over it before anything is written.
dinctrl-store backfill-transcriptsadds missing transcripts to an existing store, and--refilterre-checks the ones already written; both only report unless given--write. - Coverage in
/healthz. Acoverageblock reports records indexed, transcripts present, sessions captured, records stamped and project labels mapped, each as a number over a stated total, andcoverage_alarmslists any rate belowFIELD_COVERAGE_ALARM_PCT(default 90). - Organisations kept apart. A record can belong to several organisations (
FIELD_RECORD_ORGStakes a list),FIELD_RECORD_ORG_OVERRIDEScorrects ownership after a re-organisation, andstreamfieldd --org-reportlists unmapped project labels with suggested aliases, read-only. - Recall prefers the current decision. Decisions recorded in several versions are linked, and for "what do we use now" questions the newer version is preferred. On by default; each weight is a
FIELD_RECALL_*setting. No recall figures are quoted for this release until it is measured. - Also new:
din-import --retry-escalatedretries a run that stopped after your provider refused it repeatedly, anddin-record --projectsets a run's project. See the command-line reference.
1.0.30 (2026-09-30)
- One-line install.
curl -fsSL https://dinctrl.com/install | sh(on Windows,irm https://dinctrl.com/install.ps1 | iex). It checks the release checksum, and the signature too whenminisignis installed, refuses on any mismatch and never uses sudo. See Install. - Your field is up whenever you use DIN. Any
dincommand that needs the field, or a new Claude Code, Cursor or OpenCode session, starts it if it is not running. No service is installed, anddin field stopis respected until you rundin field start. Optional:din autostart onstarts it at login, per user, with no admin rights. - You are told when capture stops.
/din status,din statusand the local dashboard show when the last capture was, and warn when there has been none for 24 hours (DIN_CAPTURE_WARN_HOURSchanges that). - Pick your agent at install. The installer asks which agent to capture live: Claude Code, Cursor or OpenCode (
install.sh --agent claude-code|cursor|opencode, repeatable;install.ps1 -Agent cursor,opencodeon Windows). With no terminal and no flag it wires Claude Code, as before. Codex, Gemini CLI, Qwen, Cline and Grok are import-only, and the installer says so. See Install. - Each agent is its own source. Live capture and imports of each agent's history land in that agent's own field. On the free build (one AI at a time) your imported Claude Code history and your live Claude Code capture are one field.
- New in the download:
din-import-graphiti, which imports from a Graphiti or Zep endpoint you run. - Licence texts in the download.
NOTICEnow states exactly what ships: eight programs, which of them link third-party crates and which use only the Rust standard library, and the licence of each crate. A newTHIRD-PARTY-LICENSESfile at the root of both archives carries the full licence text of every third-party crate the programs are built from. The installers copyLICENSE,NOTICEandTHIRD-PARTY-LICENSEStoshare/doc/din/in the install prefix. - Upgrades stop the running field. If a field from the same install is running, the installer stops it with
din field stopbefore replacing the programs, then starts the new one (not with--no-start). If the field does not stop, nothing is replaced. See Upgrade DIN. - Recall finds more, and says when it cannot. On the operator's real 12k-record corpus (227 blind questions, compared with 1.0.29), the right answer is in the top five for 67.5% of answerable questions (was 44.2%), 77.5% of "why did we..." questions (was 50.0%), 63.6% of known-item lookups (was 39.8%) and 13 of 25 code questions (was 0), at a median 0.66 s. When nothing matches with confidence, recall answers "not in memory" instead of guessing. Every ranking weight can be set per query or in the field's environment.
- Health you can check.
/healthznow shows how many store files were indexed and why any were not, record counts by class, which machines have gone quiet, and how long a capture takes to reach memory. - More secrets removed before storage. Capture and
din importnow also strip private-key blocks (the whole key, not just its first line), OpenAI project, service and admin keys, Hugging Face, SendGrid, DigitalOcean and Slack app tokens, Azure storage keys, secret values in lowercase and JSON/YAML assignments (the name is kept, the value is removed), andAuthorization: Basiccredentials. din field stopchecks before it stops. It signals the recorded process only when that process is the field listening on the field's port. A stale pid file is cleaned up and nothing else is touched.- Any install location. The installer works with install prefixes and config directories that contain spaces or apostrophes.
- Shipped documents corrected. README, QUICKSTART, TIERS and UNINSTALL now say: plugin capture is graded
logged; the licence is verified when you rundin activateand renewed by running it again with the new key; the programs verify the signed entitlement;din importand the why-layer call your own model provider anddin activatecallsapi.dinctrl.com; Linux is the verified platform, Windows is unverified, macOS is not yet available.
1.0.29 (2026-09-26)
- New:
din activate. Turns a paid licence key into a signed entitlement: online withdin activate <KEY>(ordin activate -to read the key from stdin), or offline withdin activate --file <PATH>from a saved check-in reply. Nothing is written unless the entitlement verifies on the machine. See Activate a paid licence. - The entitlement is verified on your machine.
din, the field and the console check the signed entitlement against a public key built into the programs. A hand-edited file, another key's signature or a lapsed term is read as the free tier. - Quickstart: lists the working importers (
claude-code,codex,gemini-cli,qwen,cline,claude-mem,grok,upload,inbox) and documents Cursor and OpenCode capture, wired in with the scripts the plugin ships.
1.0.28 (2026-09-25)
- Every program answers
--version, and all eight report the release they shipped in. - Signed releases.
SHA256SUMSis signed with minisign and ships beside the archives asSHA256SUMS.minisig, with the public keyminisign.pub(key id36C9AB1B4CC4A458). The key is also printed in the README, the quickstart and the install page, with the verify steps. din-dep-auditships, the eighth program: dependency risk from the call graph crossed with the record, read-only.
1.0.27 (2026-09-16)
- The six-level tree: Global, Command, Org, Ops, Field, Node. Older level names still resolve. See The field and the tree.