Changelog

What shipped in Tiden since June 4, 2026, newest first. Pick a line to follow one part of the product.

RSS feed

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) in tiden-telemetry-go adds 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 settle and tiden spec create check for similar specs first

      Before 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, or different) and one sentence, which Tiden records. Lookups and the working contract mark Backlog and Review specs as planned, 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-spec says what it did

      It prints the link made on main, or the branch proposal and its status (proposed, accepted, or rejected), and notes when --branch reached an intent branch through its git branch. An unknown branch fails with BRANCH_NOT_FOUND unless you pass --create-branch, and tiden test links --branch and tiden branch merge-preview list the branch's link proposals.

    • MCP server 0.13.0Improvement

      link_spec returns what the server did

      link_spec returns status: linked on main, or the branch proposal's status. It takes create_branch to create a missing branch, which is otherwise an error, and get_merge_preview lists the test-to-spec links a merge adds in linkProposals.

    • CLI 0.47.0Fix

      Runs keep git branch names with capitals or dots

      tiden run exec and tiden run create now send a detected git branch with upper-case letters or dots, such as release/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 reanchor records re-linked anchors

      It moves the anchors to --to and leaves the reconciled commit alone, and --reason bootstrap now does the same. After a repository move, --from-repo carries the old name's reconciled commit to the new one once it finds that commit in the new history. tiden drift status shows an Anchored column 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 and tiden intent lookup show 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 close adds tiden 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, or attempts, while displayReason, retryAllowed, and attemptsRemaining still say why a run failed and whether it can run again. Agent runs drop llmCostUsdCents and 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-session

      Merges 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 close first when you can.

    • CLI 0.46.0Feature

      The tiden-retrospective skill reviews a session's use of Tiden

      Run /tiden-retrospective in Claude Code or $tiden-retrospective in Codex to find failed or repeated tiden commands, 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 setup and the next CLI update install it.

    • CLI 0.45.0Feature

      tiden impact lists the specs a diff affects

      tiden impact takes 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 markdown writes one updatable pull request comment, and --fail-on affected|uncovered|unanchored exits 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 capture or the API, and every capture is kept, the newest one current.

    • CLI 0.44.0Feature

      tiden release create --build-sha and tiden release capture

      --build-sha records the full commit a release was built from, so its Quality Gate counts only that commit's results, and tiden release capture takes a new capture, for example after the last suite reports. tiden run create and run exec read TIDEN_BUILD_SHA before the checkout's HEAD, and the release-wireup skill 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-reporter send the run's buildSha from TIDEN_BUILD_SHA, then tiden.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_SHA nor run.buildSha set, the reporter reads the commit checked out under the root directory and sends it as the run's buildSha. 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_check or get_verdict carries releaseCapture: its number, whether it came from the release's build SHA, and what took it. A release whose build has no settled results yet answers status: pending with a nextAction that names tiden release capture, instead of an error, and list_releases returns each release's buildSha.

    • 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 close

      A spec in Backlog or Review that the session did not settle and that only lacks a test shows as planned in 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 --path and 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 close needs a decision on every spec the diff touches

      A session no longer closes while a spec its diff is anchored to has no text decision, and the refusal names each one. Settle update-existing when the spec's text changed, or the new unchanged action with a reason when it still holds.

    • CLI 0.44.0Improvement

      tiden intent settle works on an abandoned session

      A session closed with tiden intent close --abandon can 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 settle records items that target an existing spec

      For update-existing, decision-into, and non-goal-into items, 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 list and 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 the timeout setting, 30 seconds by default, and refuse an invalid value before sending anything.

    • MCP server 0.12.0Fix

      list_releases returns every release

      It 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 unmerge undoes 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 under chromium and firefox is one case with 2 executions. The repository comes from TIDEN_REPOSITORY, the CI variables, or the origin remote; without one, results are matched by signature as before.

    • swift 0.1.0Feature

      Swift reporter for Xcode tests

      tiden-swift reports Swift Testing and XCTest results, UI tests and attachments included, from an .xcresult bundle or by wrapping xcodebuild 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_cases folds one case into another when both are the same test, unmerge_test_cases undoes the newest merge in a chain, and list_test_merges lists them. get_test returns 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 sessions lists 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 get and spec update to test link-spec and coverage gaps --feature, also accepts a key such as TIDEN-12 or a number such as 12. A reference that matches no spec exits 1 and says so.

    • CLI 0.42.0Feature

      tiden test merge folds one test case into another

      tiden 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, and tiden test merges lists them. tiden test get now shows every key a case is known by and the case it was merged into.

    • CLI 0.42.0Feature

      tiden run exec and run report send test identity

      Each 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 N line in a Go test's doc comment, or a tiden_id property 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

      --brief prints only what changed in the working contract

      tiden intent start --brief and tiden intent refine --brief print 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, and tiden intent show --session <id> --full prints the stored one any time. Claude Code's refine offer on each prompt passes --brief.

    • CLI 0.41.0Improvement

      tiden branch merge-preview marks tests already on main

      A branch suite or case that matches one on main prints as an = row noted (already on main), the summary line counts them, and --format json adds the testDuplicates list. 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, and reopen take --reason

      Record 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 --reason clears the previous reason.

    • MCP server 0.10.0Improvement

      set_issue_status takes a reason

      An 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 close ends a branch and keeps its history

      A closed branch keeps its specs, links, review, and run history and takes no more spec changes, and tiden branch update --description fixes a stale description in place, so neither needs a delete. tiden intent continue and tiden intent hold refuse a closed intent and point at tiden intent start, which now picks the next free name instead of reusing a merged or closed branch.

    • CLI 0.40.0Fix

      tiden agent runs no longer fails on token and cost counters

      tiden agent runs and tiden agent run-status failed to decode the LLM token and cost counters, which the API sends as strings. They read them now, and the JSON that agent runs, agent run, and agent run-status print 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, as tiden CLI 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 ingest failed 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-gaps read, 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 from TIDEN_REPOSITORY, the CI variables, or the origin remote; 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 --agent runs setup without prompts and waits for you to approve the browser sign-in, and tiden onboard links 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 status reports 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 or tiden 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 ingest keeps the links people and agents made

      Ingest now replaces only the links it created itself. Links made by a person, an agent, tiden test derive-links, or link-coverage stay 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 --signature finds a test by its exact signature

      Repeat --signature for 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-level filter the listing too.

    • CLI 0.39.0Fix

      Session progress leaves out files merged in from the default branch

      tiden intent progress and tiden intent close no 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 ingest writes each batch in a few steps and skips tests whose content did not change, and tiden test derive-links matches 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-id

      The intent commands and spec attribute take --product-id, and --product still works with a notice. Commands that address one record by its ID accept --product-id too and refuse a record of another product, and trace, coverage-gaps, and gate feature find the product from TIDEN_PRODUCT_ID or the repository binding when the flag is left out.

    • CLI 0.38.0Fix

      tiden doctor only reports

      In a checkout with no saved binding, tiden doctor used 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-wireup skill adds release announcements to your deploy pipeline

      Your coding agent finds the step after which each environment's rollout counts as done and adds a curl step 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 with tiden skill install release-wireup.

    • CLI 0.36.0Feature

      tiden intent hold pauses an intent's automatic merge

      tiden intent hold --reason holds the merge while more pull requests are coming, for 7 days or as long as --for or --until says, and --clear releases 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 ## Attention section 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 continue carries every promise the intent still owes

      A 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_intent holds or releases an intent's automatic merge

      Pass branch_id and a reason with for or until, or clear=true to release the hold, and the tool shows the server's message when it refuses one. list_branches and get_merge_preview now return autoMerge: 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-wireup skill, copy the request for your agent, add the TIDEN_API_TOKEN CI 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_specs returns one page at a time

      list_specs returns 25 specs by default, up to 200, with a page_token to continue, instead of the whole list, so update any prompt that expects every spec from one call. all=true restores the full traversal, and get_spec now accepts branch.

    • MCP server 0.8.0Improvement

      Traceability and session progress fit in an agent's context

      Without a filter, get_traceability returns a rollup per component with the specs that are not verified, and feature_id or the new component_id returns one row per spec with its test counts. session_progress lists up to 20 failing tests per spec and 5 others with a count of the rest, and all_tests=true lists every one.

    • CLI 0.35.0Feature

      tiden trace has a summary view and takes a spec ref

      tiden trace --view summary prints each spec's linked, passed, failed, and stale test counts instead of a cell per test. --feature accepts a spec ref such as TIDEN-12 as 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, and tiden test push resolve the specs they name in one request instead of downloading the product's spec list, and intent journal reads 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-links reaches every spec

      It 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 close refuses a session with an open promise

      Each promise has to be delivered through tiden intent settle or waived with tiden intent waive first; 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 aside marks a turn as discussion

      Run 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.com clone 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-pr accepts an Azure pull request URL.

    • CLI 0.33.0Feature

      tiden uninstall removes the CLI and what it set up

      tiden uninstall removes the tiden binary, ~/.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-run prints the list and stops, and --keep-data keeps ~/.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 of tiden run exec read a bounded list of tests per spec with its true count, and print +N more for 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 /requirements links redirect to /specs. API paths and fields are unchanged, so existing API clients keep working.

    • CLI 0.32.0Improvement

      tiden requirement is now tiden spec, and the old names still work

      tiden spec replaces tiden requirement, tiden test link-spec and unlink-spec replace link-requirement and unlink-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 json output 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, and link_requirement are now list_specs, get_spec, create_spec, update_spec, and link_spec, and arguments such as requirement_id are now spec_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-requirements and discover-components are removed

      Tiden drafts a product's specs and components itself during onboarding, so tiden skill install no longer offers these 2 skills, and the working contract, tiden drift status, and tiden setup no longer point at them. Copies installed earlier stay until you run tiden 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-After header 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 report reads JUnit XML

      Any 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 relative file attribute becomes the result's fields.file_path.

    • CLI 0.31.0Fix

      intent progress never reports a pass the close would refuse

      When a session has a diff, tiden intent progress runs the same checks as tiden intent close, marks each open item, counts them in a Close gate: N open line and names the moves that cover them. It no longer shows PASS or RISK ACCEPTED, or points at intent close, on a diff the close would refuse.

    • CLI 0.31.0Fix

      tiden test push works on products with more than 20,000 tests

      Push 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 setup can allow Tiden's own commands in Claude Code

      With your consent, setup adds allow rules to ~/.claude/settings.json for the tiden intent group, Tiden's read-only commands, and the writes its hooks need, so auto mode stops denying a step the loop needs. tiden run exec and tiden branch merge stay with Claude Code's own checks. tiden permissions adds, lists, or removes the rules later, and never edits your deny or ask lists.

    • 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 tiden command 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 with TIDEN_NO_AUTO_UPDATE=1 or tiden config set autoUpdate off, and pin a version with tiden 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, and tiden setup no longer offers it. An existing tiden shell-init line 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-laravel captures a queue job that times out, which Laravel kills without reporting. Set TIDEN_LOGS_CAPTURE_EXCEPTIONS=true to 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, and http_timeout can be set from the Laravel config.

    • php 0.2.0Improvement

      PHP SDK reports the events it could not send

      tiden/telemetry-php passes every undelivered event to an on_transport_failure callback, takes an http_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, and reopen take --scope-file, one JSON file that freezes a session's promises, decisions, and asks. tiden intent decide records a change with its quoted reason, tiden intent verify-decisions checks the diff against them without blocking, and tiden intent settle writes them onto their specs, where branch merge-preview --diff shows them.

    • CLI 0.28.0Feature

      intent close hands off a review card, and merging stays with you

      A closed session renders a review card: a gate chip, spec and verification counts, linked pull requests, and a read-only branch merge-preview command. The close no longer tells the agent to merge, since merging is your decision, and tiden intent report prints 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 levels filter.

    • 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 --level is ignored

      Production 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 --level fails, so upgrade.

    • MCP server 0.6.0Improvement

      list_issues drops its levels argument

      Production issues are errors only, so the server no longer filters by level. A call that still passes levels is refused as an unknown argument before any request goes out, and each issue still carries its level field.

    • 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 login and tiden setup is 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 exec and tiden run create report 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, and gate check open 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, and tiden intent show pages through the rest.

    • CLI 0.24.0Improvement

      A refusal that needs a move exits 3

      A refused intent close and a failing gate check exit 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.json keeps a login per workspace, and the CLI finds the right one for each repository on its own, prompting only when it cannot. tiden workspace use binds a repository to a workspace and tiden auth logout removes one login or all of them. Upgrade tiden and tiden-mcp-server together: 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 tiden command 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-context and 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 --diff shows requirement changes as a diff

      Each 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, and journal all 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, or tiden intent waive. intent progress never prints a bare Ready while a promise is open.

    • CLI 0.21.0Fix

      intent close reports a close that never reached the server

      A 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 sync and the ci command group are removed

      The GitHub App polls your repositories directly, so the CI job that posted merged files has nothing left to do. Delete .github/workflows/tiden.yml if 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 --promise lets a follow-up round declare its own checkable items, and every round past the first records its own name. tiden intent journal merges 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-reporter send the repo-relative test file with each result. Tiden joins it against requirement code anchors, so JavaScript tests link to the requirements they verify. Set TIDEN_ROOT_DIR to the repository root when the runner starts somewhere else.

    • phpunit 0.1.0Feature

      PHPUnit reporter

      tiden/phpunit-reporter is 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_context answers plan questions in one call

      An 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-file resolves independent plan questions in bounded batches and reports partial failures. tiden intent start --lookup-plan keeps 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 list fetches one page of 100 by default, with --page-size and --page-token to continue. --view identity and tiden run results --summary-view return 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, and get_run_results take 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 upgrade updates the CLI in place

      One command upgrades a binary, Homebrew, or go install setup, verifies the checksum, and refreshes installed skills and hooks. tiden shell-init --install adds 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 check exits non-zero on not verified, and tiden run exec --require-session refuses a run that would go out with no agent session.

    • MCP server 0.3.0Improvement

      Gate tools carry the full branch verdict

      gate_check and get_verdict return 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 off

      rootDir / TIDEN_ROOT_DIR makes 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 /metrics endpoint 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 start records 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 changes

      tiden intent candidates returns the requirements a session's final diff touches, and tiden intent settle applies the agent's decisions in one call. tiden intent close refuses 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_progress for a session's readiness and next actions, and record_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 session

      A read-only lookup sits between starting an intent and skipping one. The product-context skill 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 --pr or --ticket picks work back up from review comments, conflicts, or CI failures. tiden intent journal records why each round exists, tiden intent metrics reports intents per merged change, and tiden intent reopen reworks 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 close is a gate

      A 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 close is the session's terminal step and computes the Quality Gate.

    • CLI 0.8.5Feature

      tiden intent progress: the agent sees its own verdict

      A session-scoped Quality Gate shows progress per requirement as tests run. tiden run exec stamps runs with the active session, and tiden gate check --branch previews 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 --all pages 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 push reconciles against the existing tree

      A 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 issue and the triage-issues skill

      tiden issue fix-context returns an issue, its symbolicated frames, the files they implicate, and whether a test covers each affected requirement. The triage-issues skill takes an agent from a production error to a fix with a regression test.

    • CLI 0.8.0Feature

      tiden run triage, and a quieter run exec

      run triage answers what broke and whether your change caused it, for any completed run including CI's. run exec --quiet reduces a failing full-suite run to a digest, and --format json writes exactly one document.

    • CLI 0.8.0Improvement

      Output adapts to the terminal

      Styled text at an interactive terminal, JSON when piped. Pass --format json anywhere output gets parsed. TIDEN_FORMAT pins 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 on checks 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 run and the discover-components skill

      The run command group creates, reports, and completes test runs. discover-components maps 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-go parses go test -json output and gives each leaf subtest a stable, parameter-free identity. tiden run exec uses 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-browser and @tiden/telemetry-sourcemaps build both module formats. The source-map plugin gains filesToDeleteAfterUpload, 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 setup and tiden gate check

      tiden setup opens a browser approval, stores the token, and wires your repository's hooks. tiden gate check prints 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-laravel supports 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 tiden CLI

      Install 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 install needs 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.