Changelog
What shipped in Tiden since June 4, 2026, newest first. Pick a line to follow one part of the product.
Showing all 268 changes
November 2026
2 changes
go 0.2.0Feature
Go SDK reports a gRPC handler's error at the handler
CaptureExceptionAt(err, srv, method)intiden-telemetry-goadds the handler's source location as the last stack frame, so an error a gRPC handler returns points at that handler instead of the interceptor that reported it. The SDK still has no gRPC dependency: call it from your own unary and stream interceptors.
PlatformImprovement
Spec generation names components for what they do
Tiden surveys each repository of a new product first, then lays out the product's components in one pass over all of them and names each one for what it does, such as "Java test reporters". This applies to products created from now on, and existing components keep their names.
October 2026
127 changes
PlatformFeature
Disconnect a repository or remove a GitHub or GitLab account
A product's repositories can be unlinked during onboarding or under Repositories in product settings, and reconnected from the same list. Workspace admins can remove a connected GitHub or GitLab account after a confirmation that names the repositories losing their link, and uninstalling the GitHub App does the same. Both free Starter capacity, which counts linked repositories.
CLI 0.47.0Feature
tiden intent settleandtiden spec createcheck for similar specs firstBefore writing a new spec, both show up to 3 existing specs nearest to its text and refuse with exit 3 until each has a verdict (
same,part,sibling, ordifferent) and one sentence, which Tiden records. Lookups and the working contract mark Backlog and Review specs asplanned, and list the specs an objective names by key first.PlatformFix
A git branch name reaches the intent branch it belongs to
A write or read addressed by a git branch name, such as a test run or a test link, now lands on the open intent branch that carries that git branch, where the intent's specs can see it. Linking a test to a spec on a branch reports the link or the proposal with its status, refuses a branch that does not exist, and explains a test the branch cannot see.
CLI 0.47.0Improvement
tiden test link-specsays what it didIt prints the link made on main, or the branch proposal and its status (
proposed,accepted, orrejected), and notes when--branchreached an intent branch through its git branch. An unknown branch fails withBRANCH_NOT_FOUNDunless you pass--create-branch, andtiden test links --branchandtiden branch merge-previewlist the branch's link proposals.MCP server 0.13.0Improvement
link_specreturns what the server didlink_specreturnsstatus:linkedon main, or the branch proposal's status. It takescreate_branchto create a missing branch, which is otherwise an error, andget_merge_previewlists the test-to-spec links a merge adds inlinkProposals.CLI 0.47.0Fix
Runs keep git branch names with capitals or dots
tiden run execandtiden run createnow send a detected git branch with upper-case letters or dots, such asrelease/1.2.0, where before the run had no branch. Tiden matches the name to a branch and never creates one from it, and a CI tag build no longer sends the tag as its branch.PlatformFix
Re-anchoring spec sources keeps drift counting
Pointing spec sources at new code now records only where the anchors point, so drift keeps counting until someone checks the spec texts against the code. After a repository move, the new name can take over the old name's reconciled commit, and a GitHub rename onto a name Tiden already tracks no longer fails.
CLI 0.47.0Feature
tiden drift advance --reason reanchorrecords re-linked anchorsIt moves the anchors to
--toand leaves the reconciled commit alone, and--reason bootstrapnow does the same. After a repository move,--from-repocarries the old name's reconciled commit to the new one once it finds that commit in the new history.tiden drift statusshows anAnchoredcolumn while the texts lag behind the anchors.PlatformImprovement
Planned specs leave the coverage gap lists
A spec in Backlog or Review with no linked or proposed test no longer appears in
tiden coverage-gaps, and the working contract andtiden intent lookupshow it neither as a gap nor as covered. The Quality Gate already left such specs out.CLI 0.47.0Improvement
A blocked branch verdict names its next move
At a BLOCKED or NOT VERIFIED verdict, the Stop hook names the move that clears it, and
tiden intent closeaddstiden intent continue --intent <branch>. When only older specs outside the session's work keep the verdict red, close says the session's own work is verified.PlatformImprovement
Generation jobs and agent runs drop internal cost fields
Spec generation jobs in the API no longer return
errorSummary,spendCents,spendUnknownRuns, orattempts, whiledisplayReason,retryAllowed, andattemptsRemainingstill say why a run failed and whether it can run again. Agent runs dropllmCostUsdCentsand keep their token counts, and a run that stopped on Tiden's side says so in plain words.PlatformImprovement
Needs attention rows open from their titles
Each row title in the Overview's Needs attention queue links to the same page as its action button, and a branch row shows who created the branch and how long ago.
PlatformFeature
Deleted products and workspaces can be restored for 30 days
Deleting a product or a workspace removes it at once for every person, token, reporter, and agent. Admins find deleted products in workspace settings and deleted workspaces in organization settings, with who deleted each and the days left, and restoring a workspace brings back the products deleted with it. After 30 days Tiden removes the data in the background.
PlatformImprovement
A branch merge waits for the intent sessions open on it
Merging a branch by hand refuses while an intent session on it is still open, and the message names the session and
tiden intent close. An override merges anyway and is recorded on the merge. An intent's automatic merge is unchanged.CLI 0.46.0Improvement
tiden branch merge --allow-open-sessionMerges a branch while an intent session on it is still open, which Tiden otherwise refuses, and records the override. Close the session with
tiden intent closefirst when you can.CLI 0.46.0Feature
The
tiden-retrospectiveskill reviews a session's use of TidenRun
/tiden-retrospectivein Claude Code or$tiden-retrospectivein Codex to find failed or repeatedtidencommands, hook reminders that confused the agent, and guidance that misled it. It reports them in chat, most severe first, with evidence from the session, and changes no file and no Tiden state.tiden setupand the next CLI update install it.CLI 0.45.0Feature
tiden impactlists the specs a diff affectstiden impacttakes a diff (--base,--staged, paths, or your uncommitted changes) and lists the specs anchored to its files on main, with no session. In GitHub Actions and GitLab CI it finds the target branch itself,--format markdownwrites one updatable pull request comment, and--fail-on affected|uncovered|unanchoredexits 3 so CI can stop the merge.
PlatformFeature
A release's Quality Gate comes from its own build
A release announced with a build SHA gets a Quality Gate computed from the test results reported for that commit only, not a copy of main at that moment. Until the commit has results and its test runs finish, the gate reads as pending, and it is captured once they do. A release can be captured again with
tiden release captureor the API, and every capture is kept, the newest one current.CLI 0.44.0Feature
tiden release create --build-shaandtiden release capture--build-sharecords the full commit a release was built from, so its Quality Gate counts only that commit's results, andtiden release capturetakes a new capture, for example after the last suite reports.tiden run createandrun execreadTIDEN_BUILD_SHAbefore the checkout's HEAD, and therelease-wireupskill now sends the deployed commit.javascript 0.5.0Improvement
JavaScript runs carry the commit they tested
@tiden/playwright-reporter,@tiden/vitest-reporter, and@tiden/jest-reportersend the run'sbuildShafromTIDEN_BUILD_SHA, thentiden.run.buildSha, then the git HEAD of the checkout. A release announced with the same commit gets its Quality Gate from these runs.phpunit 0.3.0Improvement
PHPUnit runs carry the commit they tested
With neither
TIDEN_BUILD_SHAnorrun.buildShaset, the reporter reads the commit checked out under the root directory and sends it as the run'sbuildSha. A release announced with the same commit gets its Quality Gate from these runs.MCP server 0.12.0Improvement
Release verdicts say which capture they come from
A release verdict from
gate_checkorget_verdictcarriesreleaseCapture: its number, whether it came from the release's build SHA, and what took it. A release whose build has no settled results yet answersstatus: pendingwith anextActionthat namestiden release capture, instead of an error, andlist_releasesreturns each release'sbuildSha.PlatformFeature
Planned specs stop counting as coverage gaps
A spec in Backlog or Review describes work not built yet, so the Quality Gate and session progress no longer count it as missing a test, and the gate page says how many planned specs it left out. A failing linked test still counts. New products have this from the start, and Tiden moves a spec from Backlog to Active once a session settles it as built or a merged pull request builds it.
CLI 0.44.0Improvement
Planned specs no longer block
tiden intent closeA spec in Backlog or Review that the session did not settle and that only lacks a test shows as
plannedin the ledger, counted apart, and never blocks the close. A planned spec with a failing test stays graded. It needs a product with planned specs left out of the gate, and this CLI version: an older one keeps refusing.PlatformImprovement
A branch merge compares each spec field with where the branch began
A spec changed on a branch no longer conflicts with main just because main changed a different field, such as its status or its sources, in the meantime. The merge writes only the fields the branch changed and merges sources item by item, and Keep main or Keep branch now applies to the conflicting fields alone.
CLI 0.44.0Feature
The working contract shows parallel work on the same files
tiden intent lookup --pathand the working contract list other open sessions, and their pull requests, that change the same files, each with its branch, objective, and shared files. Session commands now report the files they change, so the overlap stays current, and a failed report never changes a command's result.CLI 0.44.0Improvement
tiden intent closeneeds a decision on every spec the diff touchesA session no longer closes while a spec its diff is anchored to has no text decision, and the refusal names each one. Settle
update-existingwhen the spec's text changed, or the newunchangedaction with a reason when it still holds.CLI 0.44.0Improvement
tiden intent settleworks on an abandoned sessionA session closed with
tiden intent close --abandoncan still record its settlement. The session stays closed, and the settlement lifts the block it put on a manual merge of its intent branch.PlatformFix
Merges in a renamed GitHub repository reach Tiden again
After a repository was renamed on GitHub, Tiden could not resolve it, so its merged pull requests were never described. Tiden now finds the repository by its GitHub ID and moves it to the new name. The pass that catches missed merges also gives each repository its own time limit, so one slow repository no longer holds up the others.
PlatformFix
A spec keeps its component and source IDs through branch edits
Merging a branch no longer clears a spec's component when the branch copy has none, and attributing changes across several components leaves a component already set alone. Editing or merging a spec's sources keeps the ID of every source whose anchor stays the same.
PlatformImprovement
Session progress and the spec list stay quick on large products
Session progress reads only the specs and tests it reports on, spec impact checks that the spec graph is current in one step, and the spec list pages with a cursor instead of counting and sorting the whole branch for every page. The answers are unchanged.
CLI 0.44.0Fix
tiden intent settlerecords items that target an existing specFor
update-existing,decision-into, andnon-goal-intoitems, settle sent the spec reference as typed and the server refused it, so the spec was written but the settlement item was lost. It now sends the main spec's own ID.CLI 0.44.0Fix
Release commands see past the newest 20 releases
tiden release listand every command that looks a release up by version saw only a product's newest 20 releases, because the page size went out in a form the server ignored. They now ask for 100 at a time, and lookups by version read further pages.CLI 0.44.0Fix
Session commands use your timeout
tiden intent settle,close, and the other session commands stopped every request after 30 seconds whatever the setting said. They now use--timeout,TIDEN_TIMEOUT, or thetimeoutsetting, 30 seconds by default, and refuse an invalid value before sending anything.MCP server 0.12.0Fix
list_releasesreturns every releaseIt returned only the first 20 releases of a product. It now reads every page.
PlatformFeature
A test case keeps one identity across renames, moves, and reporters
Reporters now send a test's language, repository, file or package, and name, and Tiden keys the case on them, keeping every older signature as an alias. Jest and Vitest, a reporter and a merged pull request, a moved file, or an added Tiden ID no longer make a second case. Duplicates already in a product were merged into the older case, and
tiden test unmergeundoes any merge.javascript 0.4.0Feature
JavaScript reporters send test identity, and Playwright projects share a case
Each result carries its repository, file, and describe and test titles, so adding a
(Tiden ID: N)marker no longer forks a test's history. The same Playwright test run underchromiumandfirefoxis one case with 2 executions. The repository comes fromTIDEN_REPOSITORY, the CI variables, or theoriginremote; without one, results are matched by signature as before.swift 0.1.0Feature
Swift reporter for Xcode tests
tiden-swiftreports Swift Testing and XCTest results, UI tests and attachments included, from an.xcresultbundle or by wrappingxcodebuild test. It runs on the Mac that runs the tests, with no third-party dependencies, and sends each test's identity so a case keeps its history. Build it from source with SwiftPM.MCP server 0.11.0Feature
Merge and unmerge test cases from the MCP server
merge_test_casesfolds one case into another when both are the same test,unmerge_test_casesundoes the newest merge in a chain, andlist_test_mergeslists them.get_testreturns every key a case is known by and the case it was merged into.CLI 0.43.0Feature
List open intent sessions and abandon one with a reason
tiden intent sessionslists a product's open sessions from the server, with branch, agent, last activity, and open promises.tiden intent close --session <id> --abandon --reason "..."closes one as abandoned from any machine, Tiden records the reason and who closed it, and the merge box says the session was abandoned without recording what it changed.CLI 0.43.0Improvement
Spec commands take a spec key or number
Every command that takes one spec ID, from
spec getandspec updatetotest link-specandcoverage gaps --feature, also accepts a key such asTIDEN-12or a number such as12. A reference that matches no spec exits 1 and says so.CLI 0.42.0Feature
tiden test mergefolds one test case into anothertiden test merge <from> --into <to>merges 2 cases that are the same test, such as a renamed test reported as new,tiden test unmerge <merge-id>takes a merge back, andtiden test mergeslists them.tiden test getnow shows every key a case is known by and the case it was merged into.CLI 0.42.0Feature
tiden run execandrun reportsend test identityEach result carries its language, repository, package or file, and test name, for Go and for JUnit XML from PHPUnit, go-junit-report, or gotestsum. A
// tiden:id Nline in a Go test's doc comment, or atiden_idproperty on a JUnit testcase, ties a renamed test to its case, and the run's repository is recognized on any git host.PlatformFix
A deleted test stops counting as coverage
A deleted test no longer counts in the traceability matrix, the Quality Gate, release captures, or the spec graph. Deleting a test or a suite, or merging a branch that deletes tests, removes their links in the same step, and links that earlier deletes left behind stopped counting at once.
PlatformFix
A test stays in its suite when another producer reports it
When a second producer reports a case another one created, such as Jest and Vitest, 2 Playwright projects, or PHPUnit and JUnit XML, the case stays in its creator's suite. The second producer no longer builds its own suite tree, so no empty suites are left behind.
PlatformImprovement
A merged pull request no longer waits on test conflicts
When a merged pull request's only conflicts with main are tests, Tiden re-bases them onto current main and merges, and pull requests already waiting on test conflicts resumed. On every branch a test now conflicts only when the branch and main changed the same field to different values, and reporter results never conflict.
PlatformImprovement
An untouched pull request no longer holds an intent open
A linked pull request with no activity on its code host, and none on the intent, for 7 days stops holding the intent: merged work merges, open promises move to a new intent, and an intent with nothing merged is abandoned. The merge box says until when it waits, and activity on the intent restarts the clock.
PlatformFeature
Close a branch without deleting it
Close, on the Branches page and in a branch's header, ends an open branch without merging it. The branch keeps its specs, links, review, and run history, stops its automatic merge, takes no more spec changes, and moves to the new Closed tab. Until now, ending a branch unmerged meant deleting it along with that history.
PlatformImprovement
The merge preview marks tests that already exist on main
A branch suite or case whose title path or signature matches one on main shows as a duplicate, with its own count and filter, and a note names the copy on main and how to keep just one. Merging still adds a duplicate as a second copy, so delete it on the branch first. A branch run whose tests all exist on main no longer leaves empty suites behind.
PlatformFeature
An issue's status can carry a reason
Resolving, ignoring, or reopening an issue takes an optional reason, such as the pull request that fixed it, and the issue page shows it beside the status. The reason belongs to the current status, so the next status change replaces or clears it, and so does an automatic reopen on regression. Set it through the API, the CLI, or the MCP server.
CLI 0.41.0Improvement
--briefprints only what changed in the working contracttiden intent start --briefandtiden intent refine --briefprint the sections that changed since the last contract the same conversation saw, in full, and name the rest. With no earlier contract, or for another conversation, the full contract prints, andtiden intent show --session <id> --fullprints the stored one any time. Claude Code's refine offer on each prompt passes--brief.CLI 0.41.0Improvement
tiden branch merge-previewmarks tests already on mainA branch suite or case that matches one on main prints as an
=row noted (already on main), the summary line counts them, and--format jsonadds thetestDuplicateslist. The merge still adds these tests as a second copy, so delete them on the branch first to keep main clean.CLI 0.41.0Improvement
tiden issue resolve,ignore, andreopentake--reasonRecord why an issue got its status, such as the fix pull request or commit, in up to 1000 characters, for one issue or several at once. A status change without
--reasonclears the previous reason.MCP server 0.10.0Improvement
set_issue_statustakes a reasonAn agent that resolves, ignores, or reopens an issue can say why, such as the fix pull request or commit, and the reason shows on the issue for whoever reviews it. A status change without a reason clears the previous one.
CLI 0.40.0Feature
tiden branch closeends a branch and keeps its historyA closed branch keeps its specs, links, review, and run history and takes no more spec changes, and
tiden branch update --descriptionfixes a stale description in place, so neither needs a delete.tiden intent continueandtiden intent holdrefuse a closed intent and point attiden intent start, which now picks the next free name instead of reusing a merged or closed branch.CLI 0.40.0Fix
tiden agent runsno longer fails on token and cost counterstiden agent runsandtiden agent run-statusfailed to decode the LLM token and cost counters, which the API sends as strings. They read them now, and the JSON thatagent runs,agent run, andagent run-statusprint shows the counters as strings, the same as the API.PlatformFix
GitHub merge queue runs report to the pull request's branch
A CI run on a merge queue ref no longer creates a Tiden branch named after it. Its results and test ingest go to the open branch linked to that pull request with
tiden intent link-pr, or to main when none is linked, so a test can name a spec that exists only on the pull request's branch. In a product with several repositories, the run must name its repository, astidenCLI runs do.PlatformFix
A failure on Tiden's side no longer reads as an invalid API token
When Tiden could not check an API token because of a fault on its side, the CLI, reporters, and other API clients were told the token was invalid or expired. They now get an error they can retry, and an unknown or expired token is refused as before.
PlatformFix
Test ingest follows a suite that moved under another parent
When a batch named a suite the branch already had under a different parent,
tiden test ingestfailed with an internal error. It now reuses that suite and moves it under the parent the batch names.PlatformFix
Describing merged code no longer fails on multi-byte characters
The agent that describes a merged pull request, and the pass that closes a finished intent, failed when a file, a pull request body, or an error text was cut in the middle of a multi-byte character. Cuts now end on a character boundary.
PlatformFix
Deleting a credential an agent still uses explains what to do
Deleting a credential that an agent configuration still uses is refused with a plain message: change or remove that configuration first. Before, the error showed raw database text.
PlatformImprovement
Coverage gaps load faster on large products
Each page of coverage gaps, which the working contract and
tiden coverage-gapsread, now costs only that page instead of the whole product. A request the client gives up on stops on the server too.phpunit 0.2.0Feature
PHPUnit reporter sends test identity and
#[TidenId]Each result carries its language, repository, file, and test name next to the unchanged signature, so Tiden can keep one case through renames and across producers.
#[TidenId(...)]on a test sends its case number. The repository comes fromTIDEN_REPOSITORY, the CI variables, or theoriginremote; without one, results are matched by signature as before.
CLI 0.39.0Feature
A coding agent can set up Tiden and onboard a repository
tiden setup --agentruns setup without prompts and waits for you to approve the browser sign-in, andtiden onboardlinks the repository through your GitHub App and starts the first spec draft. When a step needs a person, such as choosing a plan or installing the GitHub App, it prints one link and stops.tiden onboard statusreports the draft and the specs no test proves yet.PlatformFeature
Errors find their component by runtime path
A component can list the path prefixes its deployed code reports in stack frames, such as
messaging_service/, through the API ortiden component update --runtime-path. An error goes to the component with the longest matching path, starting at the crash frame, and existing issues are re-attributed when the paths or the components change.PlatformImprovement
The Quality Gate flags production errors with no component
On main and on a release, the Production issues check now warns when open production errors belong to no component, where it used to pass and hide them. The overall verdict is unchanged: a ready release names the check among its warnings.
PlatformFix
tiden test ingestkeeps the links people and agents madeIngest now replaces only the links it created itself. Links made by a person, an agent,
tiden test derive-links, orlink-coveragestay when a later ingest does not list them, and the spec graph marks the links ingest made as Reporter links.CLI 0.39.0Improvement
tiden test list --signaturefinds a test by its exact signatureRepeat
--signaturefor up to 200 tests, commas included, and the CLI reads every page itself. When a signature matches more than one case, the JSON names the one to link or says why it cannot, and--tag,--kind,--parent-id, and--top-levelfilter the listing too.CLI 0.39.0Fix
Session progress leaves out files merged in from the default branch
tiden intent progressandtiden intent closeno longer grade files that came in when you merged, pulled, or rebased onto the default branch during the session. A file the session changed stays in, even when the default branch touched it too.PlatformFix
Parallel test ingests that add the same tests both succeed
When 2 ingest batches declared the same new tests at the same time, the second one failed with an internal error. It now updates the rows the first one created.
PlatformFix
Live documentation records each test result once
A live documentation sync used to write a second copy of every result, and another on each retry. Each case now gets one execution per run, so execution trends for products that use live documentation drop to the true count from October 22.
PlatformFix
Dialogs taller than the window scroll
A dialog taller than the browser window now fits inside it and scrolls, so its buttons stay in reach. The recovery codes dialog also hides its close button until you confirm you saved the codes.
PlatformImprovement
Test ingest and link derivation are faster on large products
tiden test ingestwrites each batch in a few steps and skips tests whose content did not change, andtiden test derive-linksmatches anchors to tests through an index, so both keep up on products with tens of thousands of tests. What they produce is unchanged.
PlatformFeature
A finished intent merges itself into main
When every linked pull request has merged and the intent has been quiet for 24 hours, Tiden describes the merged code, judges each promise, and merges the intent branch into main. Partial work waits 7 days, then the shipped part merges and the open promises move to a new intent. The merge box shows when and why, a hold stops the timer, and a product setting turns it off.
CLI 0.38.0Improvement
Every command names the product with
--product-idThe intent commands and
spec attributetake--product-id, and--productstill works with a notice. Commands that address one record by its ID accept--product-idtoo and refuse a record of another product, andtrace,coverage-gaps, andgate featurefind the product fromTIDEN_PRODUCT_IDor the repository binding when the flag is left out.CLI 0.38.0Fix
tiden doctoronly reportsIn a checkout with no saved binding,
tiden doctorused to bind the repository, update~/.tiden/config.json, and sometimes ask you to pick a workspace. It now writes nothing and never asks: it names the command that would save the binding and the file that command would write.CLI 0.37.0Feature
The
release-wireupskill adds release announcements to your deploy pipelineYour coding agent finds the step after which each environment's rollout counts as done and adds a
curlstep that records the deploy as a Tiden release, with the version and environment your telemetry already sends. It asks when it cannot tell them, never fails a deploy, and leaves a diff for you to review without pushing or deploying. Install it withtiden skill install release-wireup.CLI 0.36.0Feature
tiden intent holdpauses an intent's automatic mergetiden intent hold --reasonholds the merge while more pull requests are coming, for 7 days or as long as--foror--untilsays, and--clearreleases it. An agent can hold an intent for up to 7 days and a person for up to 30, and the working contract asks the agent for a hold before the hand-back when more pull requests are planned.CLI 0.36.0Improvement
The working contract lists other intents that wait for a move
A new
## Attentionsection names up to 3 intents of the repository that are partly delivered, on hold, or abandoned, each with the command that moves it on. It is left out when nothing waits.CLI 0.36.0Fix
tiden intent continuecarries every promise the intent still owesA continuation carried only the promises of the intent's newest round, so one started from another machine could begin with none. It now reads every round, and a promise stays open until some round delivers or waives it.
MCP server 0.9.0Feature
hold_intentholds or releases an intent's automatic mergePass
branch_idand areasonwithfororuntil, orclear=trueto release the hold, and the tool shows the server's message when it refuses one.list_branchesandget_merge_previewnow returnautoMerge: where the merge stands, its latest hold, and any open promises.PlatformImprovement
Session progress counts the intent branch's own runs
The close gate,
tiden intent progress, and the session ledger take test evidence from the newest run on the session's intent branch. Runs on main or on another branch no longer change a session's result, and a CI pass on the intent branch counts as fresh.PlatformFix
Deleting a large product no longer times out
Deleting a product with a lot of data used to fail in the browser with a timeout. The delete now finishes quickly, and the browser waits up to 2 minutes for it.
PlatformSecurity
Outbound connections reject compromised certificates
The server and its agents run on Go 1.27.3, which fixes CVE-2026-111943: TLS verification on outbound calls now rejects compromised intermediate certificates.
PlatformFeature
Setup Tiden has an Announce releases step
Announce releases follows Generate specs and opens on a Coding agent tab: install the
release-wireupskill, copy the request for your agent, add theTIDEN_API_TOKENCI secret, and review the change the agent makes. GitHub Actions, CLI, and curl tabs show the same announce by hand, and a release announced without a release time gets the time of the announce.PlatformImprovement
Search and filter releases by environment and verdict
One bar above both panes of the Releases page filters by environment and Quality Gate verdict, searches release versions, and shows how many releases match. Filters live in the URL, and every release on the first page now shows its real verdict, not only the first 20.
PlatformImprovement
The spec graph is colored by area
In the Graph view each spec takes its area's color, its shape shows its type, a filled or hollow node shows whether tests cover it, and a red badge marks a failing test. A hover card, a details panel inside the graph, a legend, and zoom buttons come with it.
MCP server 0.8.0Improvement
list_specsreturns one page at a timelist_specsreturns 25 specs by default, up to 200, with apage_tokento continue, instead of the whole list, so update any prompt that expects every spec from one call.all=truerestores the full traversal, andget_specnow acceptsbranch.MCP server 0.8.0Improvement
Traceability and session progress fit in an agent's context
Without a filter,
get_traceabilityreturns a rollup per component with the specs that are not verified, andfeature_idor the newcomponent_idreturns one row per spec with its test counts.session_progresslists up to 20 failing tests per spec and 5 others with a count of the rest, andall_tests=truelists every one.CLI 0.35.0Feature
tiden tracehas a summary view and takes a spec reftiden trace --view summaryprints each spec's linked, passed, failed, and stale test counts instead of a cell per test.--featureaccepts a spec ref such asTIDEN-12as well as an id, and an unknown or ambiguous ref is an error instead of an empty table.CLI 0.35.0Improvement
Intent commands ask the server only for what they need
intent start,close,settle, andtiden test pushresolve the specs they name in one request instead of downloading the product's spec list, andintent journalreads session summaries, so a long journal no longer fails on the server's size limit. Against an older server they fall back to the previous way.CLI 0.35.0Fix
tiden test apply-pending-linksreaches every specIt read only the first 100 specs and skipped, without an error, every pending link to a spec past them. It now links a test to any spec on main.
CLI 0.34.0Improvement
tiden intent closerefuses a session with an open promiseEach promise has to be delivered through
tiden intent settleor waived withtiden intent waivefirst; until then the close exits with code 3 and the session stays open. It used to list the open promises and close anyway.PlatformFix
Releases first seen in telemetry get a Quality Gate verdict
A release Tiden first learns about from an error-tracking event now gets its Quality Gate capture and its activity entry, the same as a release posted through the API. Before, such a release showed Quality Gate not captured for good.
CLI 0.34.0Feature
tiden intent asidemarks a turn as discussionRun before a plain answer, it lets the Stop check skip that turn once, so a discussion no longer ends with the same answer sent twice. The mark lasts 30 minutes and only while no file changes, so a turn that edits code is checked as usual.
CLI 0.34.0Improvement
The CLI recognizes Azure Repos repositories
HTTPS, SSH, and legacy
visualstudio.comclone URLs of an Azure Repos repository all map to one id,dev.azure.com/<org>/<project>/<repo>, and names may contain spaces.tiden intent link-praccepts an Azure pull request URL.
CLI 0.33.0Feature
tiden uninstallremoves the CLI and what it set uptiden uninstallremoves thetidenbinary,~/.tiden, the agent hooks, the Claude Code permission rules, and the Tiden skills, plus a repository's.tiden/directory and hook blocks. It lists every file it will delete or edit and asks first:--dry-runprints the list and stops, and--keep-datakeeps~/.tiden. Lines you added yourself are left alone.PlatformFix
Gate verdicts and session progress hold up on large products
A gate verdict, in the app or from
tiden gate check, no longer times out while a large product's gate is being recomputed. Progress for a session that touches hundreds of specs no longer fails on the size of its answer.CLI 0.32.1Fix
Session progress no longer hits a rate limit on large test suites
tiden intent progress,tiden intent close, and the progress block oftiden run execread a bounded list of tests per spec with its true count, and print+N morefor the rest. They used to fail with an HTTP 429 when specs linked thousands of tests. How a spec counts as verified is unchanged.
PlatformImprovement
Requirements are now called specs
The Specs page, New spec, the spec tree and graph, notifications, emails, and Quality Gate notes all say spec, and requirements you keep in Jira or Linear are still called requirements. Old
/requirementslinks redirect to/specs. API paths and fields are unchanged, so existing API clients keep working.CLI 0.32.0Improvement
tiden requirementis nowtiden spec, and the old names still worktiden specreplacestiden requirement,tiden test link-specandunlink-specreplacelink-requirementandunlink-requirement, and help, output, and the bundled skills say spec. The old commands stay as aliases, and the old flags still work with a notice naming--spec-id,--ref-spec, or--max-specs.--format jsonoutput is unchanged.MCP server 0.7.0Improvement
MCP tools say spec, and the old tool names are gone
list_requirements,get_requirement,create_requirement,update_requirement, andlink_requirementare nowlist_specs,get_spec,create_spec,update_spec, andlink_spec, and arguments such asrequirement_idare nowspec_id. The old names are not kept as aliases, so update permission allowlists and any prompt or script that calls a tool by name. JSON results are unchanged.PlatformSecurity
Export organization activity to your SIEM
Organization admins can stream newly recorded activity to an HTTPS receiver or Splunk HEC from security settings, and test, pause, retry, or disconnect it there. Delivery survives failures and restarts, a paused destination keeps its queue, and the receiver token is stored encrypted.
PlatformImprovement
Setup Tiden lists every step, with a tab for each reporter
Setup Tiden sits in the sidebar after Settings and replaces the onboarding checklist. It shows every step and its commands whatever state your setup is in, creating an API token is part of installing the tooling, and Report a test run has a tab each for Playwright, Vitest, Jest, PHPUnit, Go, and Swift, plus JUnit XML for any other framework.
PlatformFix
Traceability loads on large products, and the overview stops waiting for it
On a large product the traceability view waits for a slow answer instead of showing an error while it is still on its way. The product overview shows its gate, latest run, and issues tiles, the Needs attention queue, and activity right away, and only the Coverage tile waits for traceability.
CLI 0.32.0Improvement
generate-product-requirementsanddiscover-componentsare removedTiden drafts a product's specs and components itself during onboarding, so
tiden skill installno longer offers these 2 skills, and the working contract,tiden drift status, andtiden setupno longer point at them. Copies installed earlier stay until you runtiden skill uninstall generate-product-requirements discover-components.CLI 0.32.0Fix
The CLI waits as long as a rate limit asks
On a 429, or a 5xx it retries, the CLI waits the time the server's
Retry-Afterheader asks for, up to 30 seconds, before it tries again. It used to retry on its own short backoff and could trip the limit again before it reset.
PlatformFeature
Onboarding drafts your specs from your code
After you pick repositories, onboarding reads them and drafts the product's components and specs. The progress step shows each stage with an estimate and can email you when it finishes, and the drafts land in the spec tree for you to review and edit. Creating another product later runs the same steps.
CLI 0.31.0Feature
tiden run reportreads JUnit XMLAny tool that writes JUnit XML (Surefire, pytest, gotestsum, jest-junit, Playwright, PHPUnit) reports into a run without a Tiden reporter: pass its files to
tiden run report, alone or next to JSON rows. Each<testcase>becomes one result with a param-free identity, and uploading the same file to the same run again adds nothing. A relativefileattribute becomes the result'sfields.file_path.CLI 0.31.0Fix
intent progressnever reports a pass the close would refuseWhen a session has a diff,
tiden intent progressruns the same checks astiden intent close, marks each open item, counts them in aClose gate: N openline and names the moves that cover them. It no longer shows PASS or RISK ACCEPTED, or points atintent close, on a diff the close would refuse.CLI 0.31.0Fix
tiden test pushworks on products with more than 20,000 testsPush reads only the existing tests it has to match against, all before its first write, so a large product no longer gets a refusal.
CLI 0.30.0Security
The updater checks a download before it runs it
Before a new release runs for the first time, the background updater checks that it is an executable for your OS and CPU and that it reports the version being installed, so a corrupt or wrong-platform download is never run. Updates stage as a visible
tiden.new-<n>file next to the binary, not a hidden one.
PlatformFeature
GitLab projects sync like GitHub repositories
Choose GitLab as the code host in onboarding or when you keep a repository in sync, authorize Tiden on gitlab.com once and pick the projects. Every merge request merged into the default branch reaches Tiden through a project webhook, with a check every 15 minutes for any it missed, and the specs it changes arrive on their own automatic branch.
CLI 0.29.0Feature
tiden setupcan allow Tiden's own commands in Claude CodeWith your consent, setup adds allow rules to
~/.claude/settings.jsonfor thetiden intentgroup, Tiden's read-only commands, and the writes its hooks need, so auto mode stops denying a step the loop needs.tiden run execandtiden branch mergestay with Claude Code's own checks.tiden permissionsadds, lists, or removes the rules later, and never edits yourdenyorasklists.
PlatformImprovement
Sign up with a 6-digit code from your email
Signup emails a 6-digit code instead of a link. Entering it in the tab where you started confirms your address, signs you in, and opens onboarding, and signing in to an unconfirmed account offers to send a new code.
PlatformFix
Browser errors keep one issue across deploys
Grouping ignores the host, build folders, query strings, and bundle content hashes in browser stack frames, so a deploy no longer opens a fresh copy of an existing issue. Server-side issues group as before. Open browser issues continue as a new issue once, so resolve or archive the old ones.
CLI 0.28.3Feature
The CLI updates itself in the background
Any
tidencommand checks for a newer release at most once an hour and installs it in a detached process, without slowing the command you ran, and the next command prints one line saying it updated. Turn it off withTIDEN_NO_AUTO_UPDATE=1ortiden config set autoUpdate off, and pin a version withtiden upgrade --version vX.Y.Z.PlatformImprovement
Specs from a merged pull request link to the tests that verify them
The agent that describes a merged pull request names which of its changed tests verify each spec it writes, and those become test links when the branch publishes. Every spec it writes cites at least 1 code file, and each link arrives beside its spec on the pull request's automatic branch, where you can review it.
CLI 0.28.3Improvement
The shell-start update prompt is removed
A new terminal prints nothing from
tiden. The CLI removes the block it added to your zsh, bash, fish, or PowerShell config on its own, touching only the lines between its markers, andtiden setupno longer offers it. An existingtiden shell-initline does nothing and can be deleted.
PlatformSecurity
Connecting GitHub checks what you can see first
Connecting GitHub signs you in to GitHub, then lets you pick an account or organization whose covered repositories you can all see. It works when the App is already installed, says plainly when an owner has to approve the install or the sign-in expired, and never attaches another workspace's installation.
PlatformImprovement
Large pull requests are described in full
The agent that describes a merged pull request reads the changed code through tools, so a large merge is described in full. It imports only the tests the pull request added or changed and checks each proposed test link against the test source before accepting it. Every automatic branch keeps its diff on the branch page for review.
laravel 1.2.0Feature
Laravel SDK captures queue job timeouts
tiden/telemetry-laravelcaptures a queue job that times out, which Laravel kills without reporting. SetTIDEN_LOGS_CAPTURE_EXCEPTIONS=trueto also capture exceptions your code only logs at error level, without sending any twice.laravel 1.1.0Improvement
Each Laravel queue job gets its own scope
A queue worker starts every job, and every top-level Artisan command, with a clean breadcrumb trail, so an event no longer carries the history of the jobs before it. SQL and log breadcrumbs are cut to 1024 bytes by default, and
max_breadcrumbs,before_send, andhttp_timeoutcan be set from the Laravel config.php 0.2.0Improvement
PHP SDK reports the events it could not send
tiden/telemetry-phppasses every undelivered event to anon_transport_failurecallback, takes anhttp_timeout, and pauses sending for 30 seconds after a connection error instead of timing out on every capture. An event over the size limit is trimmed, breadcrumbs first, before it is dropped.
PlatformImprovement
Merged pull requests stop waiting on unrelated work
An open intent branch holds back a merged pull request only when that pull request is linked to it, so touching the same files or specs no longer parks someone else's merge. A merge whose webhook never arrived is picked up within 15 minutes, oldest first, and an older merge is reconciled with newer main. If that fails, it waits under Needs review.
PlatformImprovement
Automatic branches are named after their pull request
Untracked merges and the branch page title each automatic branch by its pull request, with the author and a link to GitHub. In Product settings, a repository row shows only its name until the GitHub App can't see it, and then the one action that fixes it.
CLI 0.28.2Improvement
Session text sent to Tiden must be in English
tiden intent start,refine,continue,decide,waive, and the other commands that send free text refuse text outside the Latin script before any network call, and exit 3. The bundled skills have the agent translate your words into English rather than quote them.
September 2026
65 changes
PlatformSecurity
New accounts confirm their email address
A new email and password signup becomes an account only once its address is confirmed, and sign-in then continues through two-factor authentication as usual. Existing accounts keep their access.
PlatformFeature
Agent sessions record their decisions
A session can freeze its decisions at start, each with the quoted reason and the alternatives it rejected, and change or withdraw one only with a new quote. Settled decisions land on the spec as numbered records, shown on the branch page, in branch review, and on the spec page. Tiden judges a diff against them and records the verdict without blocking the merge.
CLI 0.28.0Feature
Sessions freeze decisions next to promises
tiden intent start,continue, andreopentake--scope-file, one JSON file that freezes a session's promises, decisions, and asks.tiden intent deciderecords a change with its quoted reason,tiden intent verify-decisionschecks the diff against them without blocking, andtiden intent settlewrites them onto their specs, wherebranch merge-preview --diffshows them.CLI 0.28.0Feature
intent closehands off a review card, and merging stays with youA closed session renders a review card: a gate chip, spec and verification counts, linked pull requests, and a read-only
branch merge-previewcommand. The close no longer tells the agent to merge, since merging is your decision, andtiden intent reportprints the stored card again, styled on a real terminal and plain when piped.PlatformImprovement
Specs written from a merged pull request link back to it
Each spec the merge agent writes or updates carries its pull request as a source, with a link and a short summary of why the change was made. The agent reads the description for the reason only, and every spec still anchors to the code it describes.
PlatformImprovement
One status switch on the Issues page
All, Unresolved, Spiking, New today, Regressed, Ignored, and Resolved sit in one switch with live counts, and each Sort option says what it sorts by. Severity levels and gate-blocking marks are gone from the list, and the public API refuses the retired
levelsfilter.PlatformFix
The spec graph opens on large products
The graph loads in pages and counts its progress while it does, so a large product no longer fails to open. Test nodes load the first time you turn on Tests.
PlatformImprovement
A higher-contrast spec graph
Every node and edge color is solid and stands out from the canvas in both themes. Focusing a node dims the rest to a fainter shade and keeps its labels, uncovered specs show as a grey hollow ring, and the product node links to its top-level specs again, with a Product links switch in the legend.
PlatformImprovement
Unresolve issues in bulk
Select resolved or ignored issues and set them back to unresolved in one action. An ignored issue's page offers Unresolve too, and the Issues toolbar drops its placeholder controls.
CLI 0.27.0Improvement
tiden issue list --levelis ignoredProduction issues are errors only, so the server no longer filters by level and rejects a level filter. The flag is still accepted with a deprecation notice, but an older CLI that passes
--levelfails, so upgrade.MCP server 0.6.0Improvement
list_issuesdrops itslevelsargumentProduction issues are errors only, so the server no longer filters by level. A call that still passes
levelsis refused as an unknown argument before any request goes out, and each issue still carries itslevelfield.CLI 0.26.0Improvement
CLI colors follow your terminal theme
Every color the CLI prints comes from your terminal's own palette, so output reads on a light theme as well as a dark one. The pairing code from
tiden auth loginandtiden setupis bold in your default text color, and piped output is unchanged.
CLI 0.25.0Fix
Test results stay with the repository they came from
tiden run execandtiden run createreport the GitHub repository a run came from, for any SSH or HTTPS remote. Identical tests in 2 repositories no longer take each other's results.CLI 0.24.0Improvement
Loop commands lead and end with the verdict
intent start,continue,progress,close, andgate checkopen with the verdict, 1 next command, and any standing obligations, and repeat the verdict as their last line, so truncated output still carries it. Long lists stop at 12 rows, andtiden intent showpages through the rest.CLI 0.24.0Improvement
A refusal that needs a move exits 3
A refused
intent closeand a failinggate checkexit 3, so a script or agent can tell work it still owes apart from a real error, which stays exit 1.CLI 0.23.0Feature
Log in to more than one workspace
~/.tiden/config.jsonkeeps a login per workspace, and the CLI finds the right one for each repository on its own, prompting only when it cannot.tiden workspace usebinds a repository to a workspace andtiden auth logoutremoves one login or all of them. Upgradetidenandtiden-mcp-servertogether: older binaries cannot read the new config.MCP server 0.5.0Improvement
The MCP server picks the workspace per repository
It reads the CLI's per-workspace config and resolves each repository's workspace in the same order the CLI does, without prompting or writing files. A repository it cannot resolve fails with the reason and the
tidencommand that fixes it.PlatformFix
Search matches the text you type
Search on Issues, Test Runs, run results, and organization members matches backslashes, underscores, and percent signs literally, ignoring case. A PHP exception name full of backslashes finds its issue, and an underscore no longer acts as a wildcard.
PlatformFeature
Fix an issue with Claude Code or Codex from the issue page
A Fix with agent menu opens the issue in a new Claude Code session or Codex thread, or copies the prompt. The agent pulls context with
tiden issue fix-contextand stops for your review before anything is committed or resolved.PlatformImprovement
A rebuilt account menu
The sidebar account menu holds Profile, a light, dark, or system appearance setting, workspace switching, documentation, keyboard shortcuts, and the changelog.
PlatformSecurity
SAML single sign-on
Organization admins configure, test, and turn on SAML sign-in from security settings. Existing members link their identity provider account once, and Tiden roles and two-factor authentication still apply.
PlatformSecurity
SCIM provisioning with group-to-team mapping
Connect a SCIM directory to provision and offboard users and map directory groups to teams. Offboarding removes access to that organization only, and the directory credential is shown once and can be rotated safely.
PlatformImprovement
Merged pull requests publish their requirements together
A pull request merged into a connected repository's main branch arrives through the GitHub App. Its requirements, imported tests, and links publish together on an automatic branch, work that belongs to an open intent is never published automatically, and All branches keeps anything unresolved in view.
PlatformImprovement
Settings reorganized into Product, Organization, and Profile
Each settings area has its own pages, sidebar, and search, and every setting has its own URL. Old settings links redirect to their new place.
CLI 0.22.0Feature
branch merge-preview --diffshows requirement changes as a diffEach changed requirement renders as a unified diff of main against the branch, including title, status, parent, and source anchors. Piped, the output is a plain patch for
delta,less -R, or a file, and branches that change only tests or components no longer report nothing to merge.PlatformFix
Ready to merge means GitHub reports the pull request clean
The branch page shows Ready to merge only when GitHub itself says the pull request can merge. Anything else shows as blocked.
CLI 0.21.0Feature
Open promises are counted wherever a session reports
tiden intent settle,progress,close, andjournalall say how many of a session's promises are still open, and name the 2 ways to discharge one: a settle item that carries its id, ortiden intent waive.intent progressnever prints a bare Ready while a promise is open.CLI 0.21.0Fix
intent closereports a close that never reached the serverA transient failure used to print Session closed while the session stayed open on both sides. The command now returns a typed error that carries the close result, in text and in JSON.
PlatformImprovement
Merged branches sort by merge date
Under the Merged filter, the Branches table sorts by when each branch merged, newest first, and the date column shows that same date.
PlatformImprovement
All branches, one click from the sidebar
The sidebar's Build section links straight to the full branches list. It used to be reachable only from the bottom of the branch dropdown.
PlatformFeature
A session close records what happened to its promises
An agent session can break its objective into checkable promises at start. When it closes, Tiden records which promises were delivered, which were waived, and which were dropped, so a round that abandons a commitment shows up in the record.
PlatformFix
Failed requirement authoring is retried
When the agent that describes a landed merge fails, the next sweep retries it. A merge refused for conflicts is marked blocked on its branch, and a repository's sync position follows what was actually delivered.
PlatformFeature
Installing the GitHub App connects your repositories
Install the Tiden GitHub App and a product's component repositories are registered in the same step. The App checks each one for landed merges every 15 minutes, and it needs nothing in your CI.
PlatformImprovement
One channel for repository sync
The GitHub App is now the only way a repository syncs with Tiden. The CI workflow, the OIDC token exchange, and link codes are gone.
PlatformFeature
Onboarding in 7 steps
Every new workspace starts with one guided flow: workspace, product, GitHub App, repositories, agent harness, teammates, ready. It ends with your code connected and your coding agent wired to Tiden.
PlatformFix
Agent-written branch copies no longer raise false conflicts
A branch copy is compared with main by content fingerprint. An agent that updates a requirement and then attributes files to it can merge without a person resolving conflicts that were never there.
CLI 0.20.0Improvement
tiden syncand thecicommand group are removedThe GitHub App polls your repositories directly, so the CI job that posted merged files has nothing left to do. Delete
.github/workflows/tiden.ymlif your repository still carries it. Until then the job stays green and does nothing.
PlatformImprovement
Large merges write their tests in one statement
Merging a branch that adds hundreds of test cases writes them in a single bulk statement, so large agent branches merge without timing out.
PlatformFix
Batched test merges keep their hierarchy and links
Suites keep their parents through a batched merge, and a test that was removed and re-added keeps its requirement links.
phpunit 0.1.3Fix
PHPUnit reporter retries a server error
A 500 from the API joins the retryable statuses, with backoff. One transient fault no longer costs a batch of results while the suite reports OK.
PlatformImprovement
Declared test links merge without a second approval
When an agent declares which requirement a test verifies, the branch merge validates and applies the link. The separate approval checklist is gone from the branch page. The merge stays the review point.
PlatformFix
The repository list never waits on GitHub
Repository status is computed in the background and served from cache. Pages that list repositories load immediately, including for a repository with hundreds of recent merges.
PlatformFeature
Landed merges are measured against the requirement tree
For each merge on your default branch, Tiden counts how many changed files a requirement already anchors and how many none does. An agent then describes the uncovered part as requirements. A large merge is classified and capped, and the run reports the cap.
PlatformImprovement
Machine-written requirements don't block the gate on arrival
A requirement written by the merge agent carries a machine-written marker. The Quality Gate leaves it out of the blocking set while it has no executed test, and reports the excluded count on the verdict. The marker clears when a linked test runs or a session settles against the requirement.
PlatformFeature
Live pull request status on the branch page
A linked pull request shows its draft, review, and check state with its own icon, refreshed by the server.
PlatformSecurity
Repositories are registered with proof of control
Connecting a repository requires proof that you control it, through the GitHub App installation. A repository name alone is never enough to receive its source.
phpunit 0.1.2Fix
PHPUnit reporter never loses a batch silently
Connections that drop before a status, and the transient statuses an edge proxy returns, are retried. Under ParaTest a delivery failure is written to
logs/tiden.log, and a reporter that is switched off writes nothing.
PlatformImprovement
The branch page reads as a timeline of rounds
Each agent session on a branch shows what its round was for and what it did. The gate panel states the next action in one line.
CLI 0.18.0Feature
Continuation rounds carry their own objective and promises
tiden intent continue --promiselets a follow-up round declare its own checkable items, and every round past the first records its own name.tiden intent journalmerges rounds recorded on the server with the local store.javascript 0.3.0Feature
Every JavaScript result carries its source file
@tiden/playwright-reporter,@tiden/vitest-reporter, and@tiden/jest-reportersend the repo-relative test file with each result. Tiden joins it against requirement code anchors, so JavaScript tests link to the requirements they verify. SetTIDEN_ROOT_DIRto the repository root when the runner starts somewhere else.
phpunit 0.1.0Feature
PHPUnit reporter
tiden/phpunit-reporteris on Packagist. It reads PHPUnit's event stream with no changes to test code, supports PHPUnit 10.5, 11, and 12 on PHP 8.2 and later, and keeps one run per invocation under ParaTest. Each logical test gets one stable identity across parametrized runs.
MCP server 0.4.0Feature
lookup_contextanswers plan questions in one callAn agent can resolve up to 8 independent plan questions in a batch, with repository-qualified anchors, a mapping per item, and explicit partial errors.
CLI 0.17.1Feature
Plan questions resolve in batches
tiden intent lookup --items-fileresolves independent plan questions in bounded batches and reports partial failures.tiden intent start --lookup-plankeeps that context with the session, and a continuation restores it.
PlatformFix
CI runs reach the branch that owns their git branch
A test run reported without an agent session, from CI or after a session closed, lands on the Tiden branch that claimed its git branch. Its results count toward that branch's verdict.
CLI 0.16.1Improvement
Bounded reads for large products
tiden test listfetches one page of 100 by default, with--page-sizeand--page-tokento continue.--view identityandtiden run results --summary-viewreturn compact, read-only projections for an agent that only needs to match.MCP server 0.3.2Improvement
Paged, compact reads for agents
list_tests,list_requirements, andget_run_resultstake bounded pages and an identity view, so an agent can match against a large product without pulling every body. An older server returns an error in place of a partial object.
PlatformImprovement
Faster reads across large products
The Quality Gate, traceability, test, and run pages select bounded pages in SQL and skip documents they don't display. Large JSON responses are gzip-compressed when the client accepts it.
PlatformSecurity
API tokens require a current session
Creating an API token checks that the human session behind it is still current. A session captured before a password change can't mint new credentials.
PlatformFix
Events are delivered in commit order
Platform events are consumed in transaction order, merge webhooks are stored durably before they're processed, and secrets inside string values are scrubbed from logs.
CLI 0.16.0Feature
Plans are written from what Tiden knows
In plan mode, the agent's plan draws on the product's requirements and their code anchors. Approving the plan sets the session's objective, so planning and intent capture are one step. You still approve the plan before anything runs.
CLI 0.15.0Feature
tiden upgradeupdates the CLI in placeOne command upgrades a binary, Homebrew, or
go installsetup, verifies the checksum, and refreshes installed skills and hooks.tiden shell-init --installadds an opt-in prompt that checks for updates at most once an hour.
PlatformImprovement
A branch verdict grades what the branch changed
The branch Quality Gate covers the requirements a branch asserted or anchored, plus one confident hop. A scope with no evidence behind it reads not verified. It never passes on absence.
CLI 0.14.0Improvement
Every status names the next move
Statuses the loop prints now carry the command that advances them.
tiden gate checkexits non-zero on not verified, andtiden run exec --require-sessionrefuses a run that would go out with no agent session.MCP server 0.3.0Improvement
Gate tools carry the full branch verdict
gate_checkandget_verdictreturn the verdict's next action, its accepted risks, and how the branch scope was derived. The tool descriptions name all 4 statuses: pass, blocked, not verified, and risk accepted.javascript 0.2.0Improvement
TIDEN_ROOT_DIR, and a reporter that says why it is offrootDir/TIDEN_ROOT_DIRmakes every producer measure test files from the same root. A reporter that disables itself, at startup or mid-run, logs the reason and the fix. The Vitest reporter's case identity now includes the spec file: read its migration note before upgrading a product with Vitest history.
August 2026
25 changes
PlatformFeature
Prometheus metrics and a Grafana dashboard
Self-hosted installs get a
/metricsendpoint on a private port that covers RPC, database, retrieval, and merge paths, plus a Grafana dashboard ready to import.PlatformImprovement
Requirement graph rebuilt on WebGL
The graph renders with sigma.js and lays out in a web worker. Toggling a filter keeps node positions, layouts persist between visits, and clusters follow the product's feature structure.
CLI 0.13.0Feature
A session's promises are frozen at start
tiden intent startrecords what the session promises as a write-once snapshot, and close answers each one. Declining to deliver a promise takes an explicit waiver with a criterion and a reason.
PlatformFeature
Immutable release captures
The product Quality Gate reflects the current state of main. Creating a release freezes that verdict and its traceability matrix, so later edits to requirements, links, or thresholds can't rewrite release history.
PlatformImprovement
JavaScript and TypeScript tests link to requirements by file
Automatic test-to-requirement linking matches JavaScript and TypeScript test files against requirement code anchors, the way it already did for Go.
PlatformImprovement
Pull requests are labeled in the merge panel
Linked pull requests get their own row with the repository name, and the row stays after the branch is merged or closed.
PlatformFeature
The branch page shows its agent sessions and what blocks a merge
One timeline per branch: the open session expanded with its cycles, runs, and writes, finished sessions collapsed to a line. The merge box lists every reason a merge is blocked, computed by the same code that refuses it.
PlatformFeature
Agent sessions are a server record
Every coding-agent session is stored with its objective, lifecycle, verdict, risk judgements, and settlement. A branch whose session changed requirements without recording a settlement can't merge until a person decides explicitly.
PlatformFeature
Merged branches keep their diff
A merged branch shows what the merge applied, reconstructed from the audit log, with field-level diffs.
CLI 0.10.0Feature
intent settle: one call writes a session's requirement changestiden intent candidatesreturns the requirements a session's final diff touches, andtiden intent settleapplies the agent's decisions in one call.tiden intent closerefuses a session that has a diff and no settlement.MCP server 0.2.0Feature
Issue, session, and risk tools
The MCP server adds 8 issue tools including
get_issue_fix_context,session_progressfor a session's readiness and next actions, andrecord_risk_acceptances. The gate tools can scope to a branch.
CLI 0.9.7Feature
tiden intent lookup: ask the product a question without opening a sessionA read-only lookup sits between starting an intent and skipping one. The
product-contextskill wraps it for agents.
PlatformImprovement
Branch rows say where the work stands
The Branches table shows whether a branch captured its intent, grew tests, passed its last run, and has a pull request. Only problems are loud.
CLI 0.9.4Feature
Continue an intent from a pull request or a ticket
tiden intent continue --pror--ticketpicks work back up from review comments, conflicts, or CI failures.tiden intent journalrecords why each round exists,tiden intent metricsreports intents per merged change, andtiden intent reopenreworks a delivered promise on a successor intent.
PlatformImprovement
Requirements find their component from code anchors
A requirement's component is derived from the files it anchors to, so component health covers requirements nobody assigned by hand.
PlatformFix
Component verdicts count the tests that verify their requirements
A component's tests are the tests linked to its requirements. Components no longer block on no executable tests while the traceability matrix beside them is green.
CLI 0.9.1Feature
An open session can't hide behind a hand-back
Claude Code and Codex get a one-shot Stop hook. If the agent claims completion while its session ledger is incomplete or unmeasured, it's asked to amend the reply.
CLI 0.9.0Feature
intent closeis a gateA session can't close over unverified work. Close computes the session verdict, and the only way past a red one is on the record: a risk acceptance that names the requirement and the reason, or a proposed test. Git branches and pull requests are recorded against the Tiden branch.
PlatformFeature
Branches link to their code
A Tiden branch records its git branches and pull requests, and a Code page lists them per product.
PlatformImprovement
Branch provenance
Every branch shows a readable description, its author, and the coding agent that opened it.
PlatformFeature
Accepted risks are a record a person reads
Risk acceptances and test deferrals from an agent session are validated and stored by the server, shown at merge, and visible to the next session.
CLI 0.8.6Feature
Drift detection and a framework-aware contract
The working contract knows when the repository is ahead of the requirement tree, and detects the checkout's test runner to give the right run command.
tiden intent closeis the session's terminal step and computes the Quality Gate.
CLI 0.8.5Feature
tiden intent progress: the agent sees its own verdictA session-scoped Quality Gate shows progress per requirement as tests run.
tiden run execstamps runs with the active session, andtiden gate check --branchpreviews a branch verdict.
PlatformFeature
Session-scoped Quality Gate
Branch verdicts use the runs reported against that branch, and an agent session can read the gate for the requirements it touched.
CLI 0.8.2Feature
A session-start prompt on every request
On Claude Code and Codex, a per-prompt hook asks the agent to open a Tiden session for product work or to record a skip.
tiden requirement list --allpages through the whole tree.
July 2026
28 changes
PlatformImprovement
Changed-file impact gives a ranked, scoped answer
Asking which requirements a change touches returns ranked results with hop distance, repository scope, and coverage tier, and tells its 3 kinds of empty answer apart.
CLI 0.8.1Improvement
requirement pushreconciles against the existing treeA push matches what's already in the product before it creates anything, so a second run extends the tree where the first left off.
CLI 0.8.0Feature
tiden issueand thetriage-issuesskilltiden issue fix-contextreturns an issue, its symbolicated frames, the files they implicate, and whether a test covers each affected requirement. Thetriage-issuesskill takes an agent from a production error to a fix with a regression test.CLI 0.8.0Feature
tiden run triage, and a quieterrun execrun triageanswers what broke and whether your change caused it, for any completed run including CI's.run exec --quietreduces a failing full-suite run to a digest, and--format jsonwrites exactly one document.CLI 0.8.0Improvement
Output adapts to the terminal
Styled text at an interactive terminal, JSON when piped. Pass
--format jsonanywhere output gets parsed.TIDEN_FORMATpins it.
PlatformImprovement
Multi-architecture images
All published images build natively for linux/amd64 and linux/arm64.
PlatformFeature
Issues are available to agents
Issue endpoints moved into the public API. The CLI and the MCP server can list issues, read events, and set status with an API token.
PlatformImprovement
Tests page redesign
Tests share the Requirements page anatomy: facet filters with saved views, tree and table modes, and a tabbed case document with details, history, and fields.
CLI 0.7.0Feature
Unattended intent distillation
tiden intent auto onchecks readiness and turns on automatic distillation of captured sessions into a branch for review. Session text and commit messages are redacted for secrets before they're stored, and capture hooks repair themselves.MCP server 0.1.0Feature
Tiden MCP server
A stdio MCP server exposes requirements, tests, branches, merge previews, releases, test runs, and Quality Gate verdicts as tools for any MCP-capable agent. The source is public on GitHub.
PlatformFeature
Remember this device for two-factor
An opt-in checkbox on every second-factor prompt trusts the browser for later logins from the same user and network. The grant is a hashed random token in an httpOnly cookie.
PlatformFeature
Reported results reach the Quality Gate
Tests reported from CI are linked to the requirements they verify by shared source files, across every repository of a product. Their results count toward coverage and the gate.
CLI 0.5.1Feature
tiden runand thediscover-componentsskillThe
runcommand group creates, reports, and completes test runs.discover-componentsmaps a codebase's components to repository and path scopes.browser 0.1.5Fix
Browser SDK serializes non-Error throws
A thrown string or object arrives with its content in place of
[object Object].
PlatformFeature
Activity stream
A durable log of what people and agents do across a workspace, attributed to the user, API token, or agent run behind each action. Org admins filter it by event type, actor, source, product, and date.
PlatformFeature
Releases page
Every release with its verdict on the left. On the right, the selected release's coverage, component breakdown, and issues.
PlatformFix
Merge conflicts compare values
A branch conflicts with main only when the values differ. Re-saving main with identical content no longer flags a conflict.
PlatformFeature
Weekly quality email
A weekly digest per product: pass rate and tests executed with week-over-week change, results per component, new failures, flaky and slow tests, and issue movement.
PlatformFeature
Branch review with a field-level diff
The branch page reads like a pull request: every changed requirement, test, and component with a diff of each field, and conflict resolution inline.
PlatformSecurity
Security review before launch
An audit of authentication, invite tokens, uploads, and deployment configuration, with every confirmed finding fixed.
PlatformImprovement
One design system across the product
Every page is rebuilt on a shared design system: denser tables, consistent status marks, and a requirement tree you can operate from the keyboard.
tiden-go 0.1.0Feature
Go test reporting
tiden-goparsesgo test -jsonoutput and gives each leaf subtest a stable, parameter-free identity.tiden run execuses it to report Go suites.
PlatformFeature
Teams
Group members into teams inside a workspace, and make a product visible only to its team plus workspace admins.
PlatformFeature
English and Spanish
The whole interface ships in English and Spanish, with locale-aware dates and numbers.
PlatformImprovement
Overview answers 3 questions
Can we ship, what needs me, what's been happening: a verdict for main, 4 signal tiles, and an activity feed.
PlatformFeature
Test runs and results
CI and local reporters post results to the Test Runs API. When a run completes, live documentation syncs the test repository from what actually ran. It's on by default and can be turned off per product.
PlatformImprovement
Issue status history
Every issue status change is recorded with its time and actor, so open and resolved trends per release can be reconstructed.
browser 0.1.4Improvement
Browser SDK drops network-fetch noise
Failed fetches caused by the network, which no code change fixes, are no longer reported by the global handlers.
June 2026
21 changes
PlatformFeature
Azure DevOps integration
Pull a project's Azure Boards work items onto a branch as a requirement tree. A person reviews and merges it.
PlatformFeature
Notion integration
Pick a Notion database or page and Tiden brings it onto a branch as a requirement subtree: one child per database row, or the page's own structure.
PlatformFeature
Linear integration
A Linear project becomes an epic requirement with its issues nested under it. Every node is matched against the existing tree, so a second run extends it.
PlatformFeature
Requirements from a GitHub repository
A new agent reads a repository and generates a requirement tree on a review branch. After each merged pull request it checks which requirements the change touches.
PlatformFix
Jira enrichment scales to large projects
The Jira agent decides candidate issues in small batches with a cap per run, so it completes on large projects.
PlatformFeature
Notifications
In-app and email notifications with a settings matrix per event, starting with requirement assignment and new releases.
PlatformFeature
Richer test metadata and custom fields
Tests carry reporter signatures, parameter groups, nested steps, attachments, and their latest execution. Product admins define typed custom fields in product settings.
PlatformImprovement
Issues list and issue detail, rebuilt for triage
The list gets a query bar, platform and period filters that live in the URL, facets, and bulk actions. The detail page puts severity, culprit, counts, environment, and release in the first screen, and lets you step through recent events.
PlatformSecurity
Security hardening
Avatar uploads are verified for size, type, and content before they're accepted, ingest endpoints carry size limits, and outbound fetches are guarded against SSRF.
sourcemaps 0.1.4Improvement
JavaScript SDKs ship as CommonJS and ESM
@tiden/telemetry-browserand@tiden/telemetry-sourcemapsbuild both module formats. The source-map plugin gainsfilesToDeleteAfterUpload, so maps don't ship to production.
PlatformFeature
Quality Gate
A go or no-go verdict per release, computed from requirements, their linked tests, the latest executions, risk per component, and open production issues. Every verdict is stored as an immutable snapshot with the breakdown per criterion, and a traceability page shows the matrix behind it. Your team sets the thresholds.
PlatformFeature
Structured requirement sources
A requirement records where it came from as structured sources. They survive branching and history restore, and they feed the context an agent gets when it generates tests.
CLI 0.3.0Feature
tiden setupandtiden gate checktiden setupopens a browser approval, stores the token, and wires your repository's hooks.tiden gate checkprints the verdict with a table per component and exits non-zero when blocked, so CI can stop on it.laravel 1.0.0Feature
Laravel SDK 1.0
tiden/telemetry-laravelsupports Laravel 12 and 13 on PHP 8.3 and later, with an auto-discovered provider and breadcrumbs for SQL, queues, and logs.
PlatformSecurity
Two-factor authentication and passkeys
TOTP with single-use recovery codes, passkeys through WebAuthn, and an organization setting that requires a second factor for every member.
CLI 0.1.0Feature
The
tidenCLIInstall with Homebrew,
curl -fsSL https://tiden.ai/install.sh | bash, or the PowerShell installer on Windows. The agent skills are embedded in the binary:tiden skill installneeds nothing else.
PlatformFeature
Branches page
Branching is a first-class surface. Components join requirements and tests in the copy-on-write model, and a Branches page replaces the merge dialog with a review of every change.
SDKs 0.1.0Feature
Error tracking SDKs
First-party SDKs for browser JavaScript, Go, Python, PHP, and Laravel, plus a build plugin that uploads source maps. They're on npm, PyPI, Packagist, and the Go module proxy, and share one DSN-based wire contract.
PlatformFeature
Error tracking
Runtime errors flow into an Issues view inside the product: grouped by fingerprint, counted, with first and last seen, release and environment, and symbolicated stack traces. Errors and tests live in the same product.
PlatformFeature
Environments and releases
An environment is a target that tests and agents run against. A release is a version record created from your deploy pipeline, identified by product, version, and environment.
PlatformFeature
Organizations
An organization groups workspaces. Org membership grants inherited access to every workspace under it, and members are managed in one place.