Changelog

What changed, by day.

untactit has not cut a public release yet, so nothing here carries a version number. These are build entries — what actually landed, on the day it landed.

The product is in daily internal use and the entries below are build log lines, not release notes. Versioned entries, with migration paths, start at general availability.

The policy

How breaking changes will work.

Worth stating before there is anything to break. Nothing that works stops working without warning — that applies to the API, the SDKs, and the shape of exported data.

Entries will be written by whoever shipped the change, not rewritten afterward into marketing language. A changelog that reads like an announcement is not a changelog.

Announced 30 days ahead

Posted here and emailed to workspace admins, with the migration path spelled out.

Old version stays 12 months

API versions overlap for a year. You migrate on your schedule, not ours.

Additive changes ship silently

New fields and endpoints appear without notice. They never remove anything.

Nothing disappears quietly

No silent removals, no behavior changed under an unchanged version number.


Build log

Written the day it shipped.

Each line is the change itself, not a summary of it. The date is the day the code landed, not the day we decided to mention it.

2026-08-19

The blog reads in five languages
Posts are rewritten in Japanese, Korean, and both Chinese scripts — not machine-substituted. Titles, dates, and links follow the language you chose.
Language choice wins over browser language
A reader who picked Korean on a Japanese-language machine was routed to the Japanese posts. The explicit choice now takes priority.
Asset-ledger audit published
A 763-row ledger was counted against 21 platforms, ID by ID; about 400 rows were real. The three ways the ledger lied are written up on the blog.
Error pages keep their styling
The 404 page resolved its stylesheet relative to the missing URL, so on nested paths it rendered unstyled. Assets now resolve from the site root.

2026-08-18

Screens move to typed components
41 views now render from typed components, checked on every commit. The behavior is unchanged — that is the point.
Counts are checked against the platforms
Numbers shown in the app were hand-checked against each platform's own records. Where the two disagreed, the app's number lost.
Deploys pass a four-layer gate
Static checks, type checks, a sweep for values with no server source, and a behavior run — nothing reaches the app bundle without all four.

2026-08-17

The blog moved home
Four measured write-ups now live on this domain, and the copies on external platforms point here as the canonical version.
The security page lists what exists
Controls on the security page now map to code that ships, with planned work labeled as planned. A written information-security policy stands behind it.
Dependencies are scanned at the gate
Third-party packages are checked against known-vulnerability databases before release.
The blog has a feed
Subscribe at /feed.xml — new posts, no tracking.

2026-08-16

Localised interface restored
The dictionaries for English, Japanese and both Chinese scripts were returning 404, so every screen quietly fell back to Korean. They load again.
One-line install and extension updates
The install scripts and the browser extension's update manifest were unreachable. Both are served again, so a fixed extension now actually reaches the machines running it.
Route contract
Every server route is now declared and checked on each commit. The check that was meant to catch missing routes had itself stopped running; the gaps above are what it found once it worked.
Status page
The probe behind it was polling a port the service had moved off, so it reported an outage that was not happening. It now measures the running service.

2026-08-15

Coverage reads from the server
Asset coverage — what is placed where, and what each platform can carry — is now decided on the server. Two browsers looking at the same organisation see the same numbers.
Faster reloads
Read requests carry an ETag, so a reload that changed nothing transfers nothing instead of a couple of megabytes.
Numbers that were not real
A sweep across every screen looked for values the server never sent. What it found was removed rather than recalculated — a figure with no source behind it is worse than a blank.
Governance in one view
Approvals and the audit trail sit on one screen instead of two, because deciding and recording are the same moment.

2026-08-14

Gemini writes, not just reads
Gems are created and read back through the API, so a deployment no longer depends on someone driving the web app by hand.
Vendor export onboarding
The account exports that ChatGPT and Gemini hand you can be dropped straight in; the parser that was already on the server is now wired to the screen.
Export verified against every platform
Each destination was measured rather than assumed. Where a write reported success but nothing landed, that counts as a failure and is listed as one.

2026-08-12

Public REST API
Eleven resource groups behind a versioned path, cursor pagination, and an OpenAPI document served from the same build.
Outbound webhooks
Seven event types, signed with HMAC-SHA256, retried with backoff, and a delivery log that shows exactly what failed.
Multi-tenant store
Every read and write is scoped by organisation, with delta sync so a client catches up without refetching the whole library.
Stateless authentication
Tokens carry the organisation and the role. A client cannot widen its own scope by asking.
Website
Live product demos replaced the static screenshots, and every page now renders in five languages.

2026-08-11

Retention windows
Audit records held ninety days on the standard plan and a year on enterprise. A purge still leaves the audit trail behind it.
Client libraries
Python and Node clients are written and tested. They are not on PyPI or npm yet, so there is no install command we can honestly give you.
Production database path
The same data layer runs on SQLite locally and Postgres in production, with a migration that is safe to re-run.

2026-08-10

SIEM export
Audit records leave with actor, action, and target on every row, which is the minimum needed to correlate them against anything else.
Organisation model
Roles, membership, and approval policy moved to the server, so the browser stopped being the thing that decided.
Contract and load checks
A contract gate runs against the API on every change, so a broken response shape fails our build instead of your integration.

Still open

External uptime monitoring is not deployed, the client libraries are unpublished, and no security certification has been audited. Each of those is stated on the page it belongs to rather than left for you to discover.


In the meantime

Where the real state is written down.

Two pages carry the current picture, including the parts that are not finished.

To get release notes when they start, write to [email protected]. One message per release and nothing else.

Stop guessing what your agents are running.

Connect one workspace and see every skill, rule, and memory your team has in play — in about ten minutes.

Start free→ Talk to us

No credit card. Works with what you already run.