Skip to content

TensorPM v1.27.0

Choose a tag to compare

@Neo552 Neo552 released this 25 Jul 22:59
· 47 commits to main since this release

Changelog - v1.27.0

πŸŽ‰ New Features

Projects Are Created in Your Language

When you describe a project in the onboarding, the brief that TensorPM hands to the
project generator is now written in your language instead of being translated to
English first.

  • βœ… Describe your project in German and get a German project back β€” goals, scope,
    deliverables, and risks included
  • βœ… Project titles keep their original wording; "Hausbau" stays "Hausbau" instead of
    arriving as "Construction"

πŸ› Bug Fixes

Project Fields No Longer Arrive Full of Escape Sequences

Some AI models returned their answers packed into a second layer of JSON. Project
descriptions, goals, scope, success criteria, and dependencies then landed in your
project with literal \n sequences, a stray ", "language": "en"} fragment at the
end, or the whole value wrapped in quotation marks.

  • βœ… Affected fields are cleaned up before they reach your project
  • βœ… Project names no longer arrive as "My Project", quotation marks and all
  • βœ… Text that legitimately contains backslashes or ends with a JSON example β€” a
    Windows path, a formatting instruction β€” is left exactly as written

The Selected AI Provider Stays Selected

Opening the AI settings could silently switch your provider. API key checks run in
the background, and while one was still pending the app briefly treated a perfectly
good provider as unavailable and moved you to a Claude Code or Codex login instead.

  • βœ… A stored key counts as usable until a check actually fails β€” in the settings,
    the model list, and the chat provider picker
  • βœ… A key check that fails because you are offline or rate-limited no longer counts
    against the provider
  • βœ… A temporary provider outage no longer disables that provider for the rest of the
    session; the check stays retryable
  • βœ… Periodic subscription refreshes stop re-testing keys that are already confirmed

The Distiller Works With Claude Code and Codex Logins

The Distiller's relevance pre-check ran on a timeout sized for a web request, while
a subscription runtime has to start a local process first. Every single pre-check
timed out on a Claude Code login, and the failure was logged as if you had cancelled it.

  • βœ… Subscription runtimes get a timeout that matches how they actually work
  • βœ… A pre-check timeout is reported as a timeout, not as "cancelled by user"
  • βœ… When the pre-check fails for technical reasons, the Distiller can no longer reject
    the signal on its own β€” it shows you what it found or leaves the signal pending for
    a later review

The Material Agent Finishes Its Work

The material agent could spend all its turns re-reading the same item list and end
without submitting a result, so completed work was not reported back.

  • βœ… On its last turn the agent can only submit, so finished work always gets reported
  • βœ… Repeatedly re-reading an unchanged item list is refused with a nudge to finish

πŸ—οΈ Improvements

Cloud Sync

This release upgrades the PowerSync SDK to v2 and fixes three sync issues that caused
unnecessary upload traffic:

  • βœ… End-to-end encrypted records are compared as plaintext, not as ciphertext. Because
    every encryption produces a different ciphertext, identical records were previously
    re-uploaded on every save
  • βœ… Deletions of budget, effort, and timer tracking now carry their workspace, so
    local-only workspaces stop leaking deletions into the sync queue
  • βœ… A sync restart triggered by changed bucket parameters waits for an upload that is
    already running instead of interrupting it

πŸ§ͺ Reliability

  • Added coverage for the tool-argument repair, including the cases it must not touch:
    Windows paths, escaped-quote instructions, and values ending in a JSON example
  • Added real-SQL coverage for encrypted change detection: identical re-saves, changed
    sensitive fields, key rotation, and both decryption failure modes
  • Added real-SQL coverage for the workspace on deletion records
  • Added coverage for the provider auto-switch, including the pending, failed, offline,
    and no-entitlement cases
  • Added coverage for the pre-check timeout path and for abort reasons that must not be
    relabelled as cancellations

πŸ“ Notes

  • No database migration is required for this release.
  • The onboarding fixes also apply to the guest onboarding, which runs through the
    TensorPM API β€” that deployment ships separately.
  • This release was cut without the Playwright end-to-end suite.

πŸ“… Release Info

  • Version: 1.27.0
  • Release Date: July 26, 2026
  • Previous Version: 1.26.0
  • Type: Minor Release