Changelog
Track all updates, new features, and improvements to TensorPM. Stay informed about what's new in each release.
v1.37.1
LatestTensorPM v1.37.1
August 22, 2026
Changelog - v1.37.1
🐛 Bug Fixes
Pulse Cards Come Back Filled After a Restart
Project health and progress are loaded again when the app reopens the project it had open, instead of only when a project is opened or a tab is switched.
Since v1.37.0 the first Pulse column after every start showed No data yet on the health and progress cards, even for a project whose evaluations were already stored — and a card reporting no data collapses, which kept the very component that would have loaded them from ever running. The column recovered as soon as the project was reopened or another tab was visited, and stayed correct once a card had been expanded by hand, but a fresh start always began empty.
A Finished Evaluation Is No Longer Overwritten by an Older One
A stored status or progress row can no longer replace a newer evaluation that has just arrived. A read started before an evaluation finished used to resolve afterwards and write the pre-run state back over the fresh result, so a refreshed project could visibly renew its status and then snap back moments later.
Location and Address Details
- A project country is never stored without the address it belongs to
- A postal address consisting only of spaces is treated as no address instead of an empty block
📅 Release Info
- Version: 1.37.1
- Previous Version: 1.37.0
- Type: Patch Release
v1.37.0
TensorPM v1.37.0
August 22, 2026
Changelog - v1.37.0
🎉 New Features
Project Pulse
The project view now opens on Pulse: one status column that answers "what is going on in this project and what needs me?" instead of spreading the answer across separate tabs.
What Changed:
- ✅ Cards are ordered by what the project is actually signalling, not by a fixed layout
- ✅ Pin, reorder, collapse or hide any card — your own arrangement is remembered per device
- ✅ A card that moved on its own says why ("Pinned", "Moved up"), and a newer arrangement is offered as an explicit "Apply" rather than shifting under your cursor
- ✅ "Changed since your last visit" marks what is genuinely different from the last time you looked, measured once the project has finished loading
- ✅ Cards without data stay collapsed instead of taking up the column with an empty frame
User Benefit: The first screen of a project is a briefing, not a navigation problem.
Suggestions in One List
The Guidance tab's four-tab taxonomy is gone. Every open suggestion — context, strategic, coverage and execution — now lives in one ranked list on the Pulse column, where the generator type is a filter rather than a destination.
- ✅ Ranked by severity, whether the suggestion can be applied in one click, its link to a goal or criterion, and its age
- ✅ New suggestions since your last visit are marked, with a count in the header
- ✅ Answered suggestions stay reachable underneath, most recently answered first, so a mis-click is undone immediately
- ✅ Dismissing asks for a second click instead of a modal
Tracked Changes in the Trail
Trail entries are rendered as tracked changes: one stream of text with insertions and deletions marked in place, instead of an old block above a new block.
- ✅ Word-level marking, so a changed date in a long paragraph is a changed date, not a changed paragraph
- ✅ Unchanged passages are shortened so the change itself stays on screen
- ✅ Tables, action items and completion states each get the shape that fits them
PDF Reports With Real Pagination
Generated PDF reports now use a dedicated print pipeline.
- ✅ A print baseline stylesheet gives every report the same page-break behaviour — no headings stranded at the bottom, no single lines left behind
- ✅ Optional running footer with page numbers
- ✅ Pages are checked after rendering for content clipped at a page edge
- ✅ Page format, orientation and margins follow what was asked for
Addresses and Project Location
People can now carry a postal address, and a project records where it physically happens — site, venue, office — together with its country.
- ✅ The country is a typed value, because it decides the legal regime and how an address is written
- ✅ Both are picked up from your documents during extraction and onboarding
- ✅ Existing projects and people are untouched: an unknown address simply stays empty
🏗️ Improvements
Trail Timeline on Synced Projects
Trail entries are ordered and grouped by when they actually happened. On a synced project the sort key used to mix two timestamp formats, which put a decided proposal above genuinely newer entries and changed the visible order every time more entries were loaded. Pagination, cursor and view now share one normalized axis.
Active-Project Limit Before It Bites
The active-project badge now appears on every plan, Trial included. It previously stayed empty for Trial accounts, so the limit was first discovered when saving the second project failed.
Analysis Without Stale Work
Refreshing a project whose status, progress and guidance are all current now recomposes the project overview instead of returning an error.
🐛 Bug Fixes
- New-suggestion badge: the "new since your last visit" mark could never appear, because the first look never recorded a reference point. It does now.
- Suggestion history order: the answered list sorted by when the analysis ran rather than when you answered, so a just-dismissed suggestion could fall outside the undo window.
- Live suggestion updates: suggestions generated in the background now reach the open card and the sidebar count without leaving the project first.
- Goal-linked suggestions: suggestions tied to a project goal are ranked accordingly again.
- PDF margins: a report without page numbers keeps the bottom margin it asked for; the 14 mm footer reserve applies only when a footer is actually printed.
- PDF page format: reports using the print baseline follow the requested page format and orientation instead of being forced to A4 portrait.
- "Changed since your last visit": the mark was compared against not-yet-loaded data, so nearly every card carried it on the first visit to a project after starting the app.
- Workspace conversion: an expired session now produces a localized message instead of an English one, and the cloud-workspace hints no longer state a limit that does not exist.
v1.36.0
TensorPM v1.36.0
August 18, 2026
Changelog - v1.36.0
🎉 New Features
Clear Four-Level Priorities
Action-item priorities now use four explicit levels — Low, Medium, High, and Urgent — plus None for items that have not been prioritized yet.
What Changed:
- ✅ Pick a named level instead of estimating a number on a 1–100 scale
- ✅ Use the same levels in list, board, priority, filter, sorting, AI, MCP, and sync workflows
- ✅ Keep unprioritized work separate from genuinely low-priority work
- ✅ Preserve existing priorities by converting their former numeric bands automatically
User Benefit: Priorities are faster to set, easier to discuss, and consistent wherever an action item appears.
🏗️ Improvements
Transparent AI Usage and Billing
The AI Activity view now explains model usage and billing independently instead of hiding token counts behind a subscription or TensorPM tier label.
- Token counts remain visible for TensorPM AI, subscriptions, your own API keys, and failed calls that already consumed tokens
- Each activity shows whether it used TensorPM credits, a provider subscription, your own key, or a local model
- Cached input and reasoning usage are identified more clearly
- Tool calls use readable, localized names and distinguish active work from completed work
- Multi-model operations select the primary user-facing model more reliably
Gemini 3.7 Flash
Google AI connections and the TensorPM AI fallback now use Gemini 3.7 Flash in place of Gemini 3.6 Flash. Existing unsupported saved model selections fall back to the current provider catalog.
More Reliable Briefing Refreshes
Overlapping manual project-briefing requests now remain coordinated until every request has finished. A scheduled check-in can no longer start in the gap created when an older cancelled request settles before the newer request, preventing duplicate AI cost and stale content from overwriting the requested briefing.
🐛 Bug Fixes
Priority Sync and Migration Safety
- Invalid or future priority levels received from a synced workspace are safely cleared instead of causing the complete action item to be rejected
- Older clients continue to receive the preserved numeric priority representation
- Priority migrations keep sync timestamps and existing orphan diagnostics intact
- The migrated schema is validated against a fresh installation using real SQLite transactions
Priority Interaction Coverage
The Electron regression suite now exercises the actual priority level picker, its lock state, and level-based sorting instead of the retired numeric input.
🔒 Security
Document parsing now resolves to the patched PDF.js runtime used by TensorPM. Production dependencies have no known high-severity audit findings at release time.
📝 Notes
- Existing action-item priorities are migrated automatically; no manual cleanup is required.
- Shared workspaces remain compatible with clients that still use the previous priority format.
- The first request after updating an AI provider may rebuild its prompt cache once.
📅 Release Info
- Version: 1.36.0
- Release Date: 2026-08-17
- Previous Version: 1.35.7
- Type: Minor Release
v1.35.7
TensorPM v1.35.7
August 15, 2026
Changelog - v1.35.7
🐛 Bug Fixes
First Launch No Longer Fails With "AI Unavailable"
A brand-new installation started on a provider that requires your own API key. Since own-API-key access is a Business feature, every background AI call on first launch failed with an entitlement error — before you had picked a provider at all.
What Changed:
- ✅ Fresh installs now start on the TensorPM AI service, which is what Trial and Pro accounts use
- ✅ The same default applies whenever the stored preference cannot be read
- ✅ If you are not signed in yet, you now see the sign-in path instead of an error about a provider you never chose
User Benefit: The first thing a new user sees is an invitation to sign in, not a confusing entitlement error.
macOS App Icon Loaded Correctly
The packaged macOS app tried to hand a .icns file to a routine that only accepts PNG and JPEG,
so every start logged an image-loading failure. The Dock and Finder icon always looked right
(macOS paints those from the app bundle), which is why nobody noticed — but the error is gone now.
🏗️ Improvements
Consistent Internal Tool Naming
All of the AI agent's internal tools now follow one naming scheme. Your existing history is unaffected: conversations, trail entries, decision cards and connector permissions recorded under the previous names keep resolving to the correct labels and detail views, including the decision cards and people diffs in the project trail.
User Benefit: Nothing changes in what you see — the change removes a class of inconsistency that had started to produce mislabeled entries.
📝 Notes
- No database migration is included in this release.
- The first AI request after updating is slightly more expensive than usual, because the changed tool definitions invalidate the provider-side prompt cache once. Subsequent requests are back to normal.
📅 Release Info
- Version: 1.35.7
- Release Date: 2026-08-15
- Previous Version: 1.35.6
- Type: Patch Release
v1.35.6
TensorPM v1.35.6
August 13, 2026
Changelog - v1.35.6
🐛 Bug Fixes
- A second launch can no longer touch the installation state of the running app. Opening TensorPM again while it was already running — by double-click, by a link, or through the installer — let the second process run the version check against the same data directory, in rare cases entering the uninstall path. Only the instance that actually starts does this now.
- The project agent no longer receives its instructions twice. Relevance checks, wizard feedback and document analysis prepended their instructions to the request while the app also sent its general ones, which cost tokens and blurred the task. Each request now carries exactly one set of instructions.
- Claude- and Codex-subscription accounts get the right instructions again. On these two connection types the task-specific instructions for relevance checks, wizard feedback and document analysis were not applied.
- The daily automatic analysis no longer starts twice. Right after startup, while sign-in and entitlements were still settling, a second run could begin in parallel with the first.
- Updates download once instead of twice. Every update first attempted a partial download that could not succeed with our packages, logged an error, and then downloaded the full package anyway.
🏗️ Improvements
- Changing many work packages at once is now a single step. Shifting all due dates by a week previously produced one request per item — eighteen for a mid-sized project, each one repeated in every following round of the conversation. The agent now sends one request covering all items, including items that need different values. This is noticeably faster and consumes fewer AI credits.
- A single bad value no longer discards a whole batch. Valid changes are applied and the problematic ones are reported back, instead of throwing everything away and retrying.
- Wizard feedback prompts are shorter. The field under review was sent twice — once as the value to review and once as project context. On long descriptions this alone cost about 2,000 tokens per review.
📝 Notes
- No database migration is introduced by this release.
- Existing projects require no manual changes.
- No changes to sync, subscriptions or billing.
📅 Release Info
- Version: 1.35.6
- Release Date: 2026-08-13
- Previous Version: 1.35.5
- Type: Patch Release
v1.35.5
TensorPM v1.35.5
August 13, 2026
Changelog - v1.35.5
🐛 Bug Fixes
- Rewriting a bullet list no longer breaks follow-up edits. When the project agent rewrote a list, table, or other container, every item inside it silently lost its internal identity. A follow-up edit on one of those items then failed and triggered repeated repair attempts. Items now keep their identity across a rewrite.
- Adding content to a list produces a proper list item. Inserting next to a bullet point could place a plain paragraph inside the list, which turned into a bullet with a changed block type the next time the field was opened. Content is now placed as a real list item.
- Turning a paragraph into a bullet point keeps it editable by the agent. Using the bullet button on a paragraph the agent was working with no longer detaches it from the conversation.
- Replacing a heading with several paragraphs no longer corrupts the heading. The replacement paragraphs previously ended up nested inside the heading. They are now placed as proper sibling blocks, and the heading's position keeps its identity.
- Edits that cannot be applied are reported instead of silently emptying a field. Replacement content that could not be interpreted used to clear the section while reporting success; the field is now left untouched and the agent is told.
- Repeated edits in one request can no longer target the wrong block. When a single request inserted two blocks under the same temporary name, a later edit in that request could hit the wrong one. Ambiguous and already-deleted references are now rejected.
🏗️ Improvements
- Identifiers assigned to newly inserted blocks are now derived from the block itself, so they can be recovered if they are ever stripped — newly created sections stay addressable for the rest of the conversation.
- Section identity is now resolved consistently in the editor and in the backend, using the same rule about which blocks can carry an identity.
📝 Notes
- No database migration is introduced by this release.
- Existing projects and work-package descriptions require no manual changes.
- Completes the section-identity work started in v1.35.3 and v1.35.4.
📅 Release Info
- Version: 1.35.5
- Release Date: 2026-08-13
- Previous Version: 1.35.4
- Type: Patch Release
v1.35.4
TensorPM v1.35.4
August 13, 2026
Changelog - v1.35.4
🐛 Bug Fixes
- Editing a rich-text field by hand no longer confuses the project agent. Pressing Enter in the middle of a paragraph, or pasting a copy of a block, could give two blocks the same internal section identifier. A later AI edit then quietly changed only the first of them while reporting success. The editor now assigns the duplicate a new identity immediately, so manual edits and AI edits stay in agreement in the project description, goal, scope, dependencies, and work-package descriptions.
- Existing fields with duplicated identifiers repair themselves. Fields that already carry a duplicated section identifier — from an earlier version or from previous manual editing — are now cleaned up the next time they are read or saved, instead of staying ambiguous until an AI edit happened to touch them.
🏗️ Improvements
- Section identities are now guaranteed unique on every path that shows them to the project agent or writes them to disk, rather than only during AI-driven edits.
📝 Notes
- No database migration is introduced by this release.
- Existing projects and work-package descriptions require no manual changes. Affected fields are repaired automatically on first access; the repair is invisible and does not change any text.
- Follow-up to the section-identity work in v1.35.3.
📅 Release Info
- Version: 1.35.4
- Release Date: 2026-08-13
- Previous Version: 1.35.3
- Type: Patch Release
v1.35.3
TensorPM v1.35.3
August 13, 2026
Changelog - v1.35.3
🐛 Bug Fixes
- Reliable follow-up edits in rich-text project fields. Section identifiers now remain stable when content is inserted or removed, so the TensorPM agent can continue editing the same project description, goal, scope, dependency, or work-package section without losing its target.
- Safe handling of repeated AI edits. TensorPM now removes duplicated or model-supplied section identifiers before saving rich-text changes, preventing repeated repair attempts from duplicating headings or degrading field content.
- Correct line breaks in AI-authored content. Invalid closing tags for HTML line breaks are normalized so one requested line break no longer appears as an extra blank line.
🏗️ Improvements
- Newly inserted rich-text blocks return their authoritative identifiers to the project agent, allowing immediate follow-up updates in the same conversation.
- TipTap editors now preserve backend-assigned section identifiers during normal user edits while keeping those identifiers invisible and non-editable in the interface.
📝 Notes
- No database migration is introduced by this release.
- Existing projects and work-package descriptions require no manual changes.
📅 Release Info
- Version: 1.35.3
- Release Date: 2026-08-13
- Previous Version: 1.35.2
- Type: Patch Release
v1.35.2
TensorPM v1.35.2
August 13, 2026
Changelog - v1.35.2
🐛 Bug Fixes
- Reliable onboarding recovery. Failed background project generation no longer lets late profile responses reopen an inactive questionnaire or leave the onboarding screen without a usable retry action.
- Readable attached documents in onboarding chat. TensorPM now extracts attached document content and includes it in project-discovery conversations instead of sending only the file name.
- Cleaner display names. Quoted names returned by an AI provider are normalized before they appear in greetings or saved settings.
🏗️ Improvements
- Increased managed onboarding document capacity to the active model's context budget: up to 966,656 document tokens for text-only requests and 180,224 when images require the vision model.
- Increased managed onboarding completion capacity to 65,536 tokens so reasoning-heavy, document-based project generation can finish all structured project fields.
- Added drag-and-drop file attachment support to the onboarding project conversation.
- Updated the Microsoft 365 administrator guide to reflect TensorPM's verified publisher status.
📝 Notes
- No database migration is introduced by this release.
- Existing projects, connectors, and AI configurations require no manual changes.
📅 Release Info
- Version: 1.35.2
- Release Date: 2026-08-13
- Previous Version: 1.35.1
- Type: Patch Release
v1.35.1
TensorPM v1.35.1
August 9, 2026
Changelog - v1.35.1
🐛 Bug Fixes
- Localized chat welcome. The initial TensorPM greeting and subtitle now follow the selected application language in both English and German.
- More compact project status. Context, analysis, and guidance indicators use shorter labels and counts while preserving the complete status in their accessible descriptions and detail tooltips.
- Cleaner connector setup. Email, Microsoft 365, local mail, and local calendar forms now identify the selected connector clearly, stay readable on wide and narrow windows, and display numbered instructions correctly.
- Consistent local-AI selector styling. Local models now use the same clean selector chrome as other providers while retaining their icon accent.
🏗️ Improvements
- Added a portable documentation screenshot workflow for the desktop app and website documentation.
- Updated the construction demo seed path to the current demo workspace structure.
📝 Notes
- No database migration is introduced by this release.
- Existing projects, connectors, and local AI configurations require no manual changes.
📅 Release Info
- Version: 1.35.1
- Release Date: 2026-08-09
- Previous Version: 1.35.0
- Type: Patch Release
v1.35.0
TensorPM v1.35.0
August 9, 2026
Changelog - v1.35.0
✨ New Features
Local macOS calendars
TensorPM can now connect directly to a local macOS calendar through EventKit. Calendar events can be reviewed, created, updated, or discarded through the existing approval flow without storing OAuth credentials. Calendar access is optional, permission-gated, and limited to the signed main application.
More reliable Distiller reviews
Distiller now keeps analysis, review, feedback, and completion phases clearly separated. Project-routing decisions, deferred signals, repeated tool calls, and restored review sessions are handled more deterministically so an update does not repeat completed work or lose its current review context.
🐛 Bug Fixes
- Reliable onboarding transitions. Skipping project setup while the opening message is still streaming now stops the old reveal and streams the project tour question correctly.
- Current project-creation tutorial. Removed obsolete creation-mode steps, prevented stale tutorial highlights, and aligned the walkthrough with the unified project-creation flow.
- Readable document lists. Long attachment names are truncated with a tooltip while token and action columns remain visible without horizontal scrolling.
- Correct timeline cursors. Drag, resize, create, collapse, and pan cursors are now applied to the interaction layer that receives pointer events.
- Safer calendar proposals. Calendar proposals can be discarded explicitly, and recurring-event identities remain scoped to the selected occurrence.
🏗️ Improvements
- Simplified and refined the English and German onboarding copy and spacing.
- Consolidated shared context-menu, status, animation, AI-button, column-view, and guidance coverage styles with regression contracts for their consumers.
- Improved Mistral reasoning-response handling and kept thinking chunks out of visible assistant answers.
- Hardened the packaged MCP runtime configuration and installer behavior.
- Updated DOMPurify to 3.4.13.
📝 Notes
- No database migration is introduced by this release.
- Local calendar integration is available on macOS and requires explicit Calendar permission from the user.
- Existing projects and connector configurations require no manual changes.
📅 Release Info
- Version: 1.35.0
- Release Date: 2026-08-09
- Previous Version: 1.34.0
- Type: Minor Release
v1.34.0
TensorPM v1.34.0
August 8, 2026
Changelog - v1.34.0
✨ New Features
Review the complete email before sending
Mail approval cards now include an expandable preview of the exact message body that will be sent, together with To, CC, and BCC recipients and localized status labels. Approving or retrying a draft stays in the same card without exposing internal programmatic chat messages in the visible conversation.
More usable project views in narrow layouts
Action-item and Trail view controls now switch to compact, accessible icons when the AI panel reduces the available width. Material controls, strategic guidance cards, and budget metrics also adapt to narrow panels without clipping important content or controls.
🐛 Bug Fixes
- Mail approval matches delivery. When HTML and plain-text alternatives differ, the approval preview and SMTP fallback are derived from the HTML body that the mail transport prioritizes.
- Concise strategic action titles. AI-generated strategic action titles are limited to six words and 60 characters, while details remain in the action description.
- Cleaner approval conversations. Durable mail and calendar approval events remain available for model context and audit history but no longer appear as duplicate user-authored messages.
- Responsive budget overview. Budget metrics stack predictably at compact widths instead of crowding or overflowing their container.
🏗️ Improvements
- Localized mail-agent activity and approval states in English and German.
- Added responsive coverage for Action Items, Trail decisions, Guidance cards, Material controls, and Budget layouts.
- Added regression coverage for mail-body consistency and strategic title enforcement at the model-response boundary.
📝 Notes
- No database migration is introduced by this release.
- Existing projects, mail drafts, and synchronized workspaces require no manual changes.
📅 Release Info
- Version: 1.34.0
- Release Date: 2026-08-07
- Previous Version: 1.33.2
- Type: Minor Release
v1.33.2
TensorPM v1.33.2
August 6, 2026
Changelog - v1.33.2
🐛 Bug Fixes
Chat scrolling now respects where you are reading
The AI panel no longer pulls the conversation back to the bottom after you scroll up, including while Distiller is showing its processing placeholder. Automatic following resumes only after you deliberately return to the end of the conversation.
Resizing the AI panel keeps the visible card in place
When a narrower panel makes messages or Distiller cards taller, TensorPM now preserves the top visible card and its exact on-screen offset. Layout changes, collapsed content, and browser scroll adjustments no longer count as user scrolling or silently disable bottom following.
🏗️ Improvements
- Consistent chat restoration. Returning to a chat restores an intentionally detached reading position instead of treating a nearby position as the end.
- Smoother long conversations. Visible-card tracking is limited to one pass per animation frame and stops scanning once cards are below the viewport.
- Broader regression coverage. Tests cover Distiller placeholders, panel resizing, content shrinking, chat switching, exact-bottom reattachment, and anchor-tracking performance.
📝 Notes
- No database migration is introduced by this release.
- Existing projects and synchronized workspaces require no manual changes.
📅 Release Info
- Version: 1.33.2
- Release Date: 2026-08-06
- Previous Version: 1.33.1
- Type: Patch Release
v1.33.1
TensorPM v1.33.1
August 6, 2026
Changelog - v1.33.1
🐛 Bug Fixes
System emails now follow the desktop app language
Account verification, welcome, password-reset, and invitation emails triggered from the desktop app now use the selected TensorPM language. When the app is set to follow the system language, the operating-system locale is forwarded instead.
Distiller cards stay usable in narrow AI panels
Long German action labels could crowd or overflow relevance and proposal cards when the AI panel was narrow. The action row now switches to centered, icon-only controls when needed while preserving accessible labels and readable text in the secondary menu.
🏗️ Improvements
- Review the complete signal before deciding. Project-relevance cards can expand the original source content before a signal is accepted, rejected, or skipped.
- Stable proposal headers. Long source names remain clipped inside their header area instead of painting over the source action or field label.
- Responsive regression coverage. Electron tests now verify label modes, icon geometry, menu readability, and zero horizontal overflow across wide and narrow Distiller cards.
📝 Notes
- No database migration is introduced by this release.
- Existing projects and synchronized workspaces require no manual changes.
📅 Release Info
- Version: 1.33.1
- Release Date: 2026-08-06
- Previous Version: 1.33.0
- Type: Patch Release
v1.32.0
TensorPM v1.32.0
August 3, 2026
Changelog - v1.32.0
🎉 New Features
Choose a project folder per project
Each project can now use its own local folder instead of being tied to the default TensorPM project directory. The selected folder is visible and changeable both in Settings and at the end of the Wizard Overview.
What changed:
- ✅ Open, change, or reset the effective folder for the active project
- ✅ Keep custom project roots device-local, including paths with Unicode characters
- ✅ Rebind file watching, project skills, and uninstall metadata when the root changes
- ✅ Refresh file identities against the new root without moving or deleting user files
User benefit: Existing repositories and established folder structures can be used directly without copying them into TensorPM's default storage hierarchy.
🐛 Bug Fixes
- Safe multi-device folder changes. Selecting a local root no longer synchronizes local path invalidations to the user's other devices.
- Reliable watcher handover. A folder change now replaces watchers that are still starting, and an older failed start cannot clear the newer watcher's lifecycle state.
- Guaranteed root refresh. Project-root change events bypass short-window event deduplication so the renderer always rebuilds its file cache.
🏗️ Improvements
- Clearer AI operation results. Tool result labels now use localized, action-specific singular and plural wording instead of ambiguous generic counts.
- Safer project-folder recovery. Folder changes restore the previous root, watcher, skill registry, and uninstall metadata together if a lifecycle step fails.
📝 Notes
- No database migration is introduced by this release.
- A custom project folder is a device-local preference and does not relocate or delete existing files.
- Existing projects continue to use their conventional TensorPM folder until a custom folder is selected.
📅 Release Info
- Version: 1.32.0
- Release Date: 2026-08-03
- Previous Version: 1.31.1
- Type: Minor Release
v1.31.1
TensorPM v1.31.1
August 1, 2026
Changelog - v1.31.1
🐛 Bug Fixes
Project check-ins no longer disappear when a check cannot run
A skipped check (for example while no AI provider is available) could vanish from the dashboard completely. A failed check could also be hidden behind a newer analysis, leaving no visible retry action.
What changed:
- ✅ Skipped and failed checks stay visible with their actual status
- ✅ A retry remains available even when a newer dashboard analysis is shown
- ✅ A suggested next step is displayed when it is the check-in's only actionable content
Empty AI updates can no longer report success
Some model providers may send an update tool call with an empty operation list, even though the tool schema requires at least one operation. TensorPM now rejects that call before persistence instead of reporting a successful no-op.
🏗️ Improvements
- Stronger release checks. Formatting and renderer IPC boundaries now run in the normal release path, with explicit skip options still available for exceptional cases.
- Real package startup tests. Release builds now start the app directly from the macOS DMG and Linux AppImage, not only from the Windows installer.
- Safer database upgrades. Packaged macOS and Linux builds are started against a disposable, sync-shaped schema-49 database and must preserve its data while migrating to the current schema.
- Non-blocking security reporting. A scheduled report now covers root and E2E dependencies, secrets, and static security findings without turning advisory results into an automatic release block.
📝 Notes
- No new database migration is introduced by this release. The migration smoke test validates the existing upgrade path and never touches a real user database.
- Existing projects require no manual changes.
📅 Release Info
- Version: 1.31.1
- Release Date: 2026-08-01
- Previous Version: 1.31.0
- Type: Patch Release
v1.31.0
TensorPM v1.31.0
August 1, 2026
Changelog - v1.31.0
🎉 New Features
One place for "what happened while I was away"
Your project check-ins and the AI's own analysis now share a single slot at the top of the dashboard, ordered strictly newest-first — instead of a separate card competing with the briefing for your attention.
What changed:
- ✅ A check-in moves back automatically as soon as the analysis produces something newer
- ✅ Page back and forth through everything that happened, in one place
- ✅ The entry you are reading stays put when new results arrive in the background
- ✅ Dismissing an entry takes you to the neighbouring one, not back to the top
User benefit: The dashboard tells you one coherent story in time order, so you can catch up by reading downwards instead of comparing two panels.
The analysis stops repeating your check-ins
Recent check-ins are now part of what the AI sees when it writes the welcome analysis, with the explicit instruction to cover what they do not.
User benefit: Less duplication between the two halves of the dashboard, and the analysis spends its space on something you have not already read.
🐛 Bug Fixes
The AI no longer invents duplicates of entries it just created
Reported as TPM-0022. After adding a risk, the assistant could announce that it had "accidentally created a duplicate" and then spend several steps hunting for a second entry that never existed.
What was wrong: When a table was updated, the assistant got the full updated table back with no indication of which rows were new. Reading that as "here is the state of the project", it found its own freshly added row and concluded the entry must have been there all along.
What changed:
- ✅ Tool results now name exactly which rows or criteria a step created, changed, or removed
- ✅ The updated table is explicitly labelled as the state after the change
"Applied" now means applied
An update that could not be carried out — a reference to a row or cell that no longer exists, for instance — was logged internally and dropped, while the assistant was still told the operation had succeeded.
What changed:
- ✅ Only changes that actually landed are counted
- ✅ Anything skipped is reported back with the reason, so the assistant can correct itself instead of building on a change that never happened
- ✅ A step where nothing at all could be applied now fails openly
"Discuss with AI" no longer drops the suggested next step
A check-in whose only actionable content was its suggested next step arrived in the chat without it.
🏗️ Improvements
- Sandbox code guidance. The assistant is now told that your project data is already available to it and is kept current, so it stops running code just to re-read information it already has. When it does run code, it has the exact function signatures instead of guessing — previously a wrong guess could silently report "0 risks" for a project full of them.
- Cheaper test runs. Internal smoke tests now use each provider's most economical model tier.
📝 Notes
- No database migration in this release; upgrading does not touch your project data.
- Behaviour for existing projects is unchanged apart from the fixes above. The dashboard's top slot looks different, but nothing needs to be re-created or re-configured.
📅 Release Info
- Version: 1.31.0
- Release Date: 2026-08-01
- Previous Version: 1.30.0
- Type: Minor Release
v1.30.0
TensorPM v1.30.0
July 31, 2026
Changelog - v1.30.0
🎉 New Features
Local Email Connector
TensorPM can now read the email your mail app already stores on this device — no password, no IMAP server, no account credentials.
What Changed:
- ✅ New Local email connector, starting with Apple Mail on macOS
- ✅ Three-step setup: detected account → folder selection → project assignment
- ✅ Folder-level control — only the folders you pick are read, and you can change the selection at any time
- ✅ Guided macOS permission flow: if the mail folder is blocked, TensorPM shows exactly which "Full Disk Access" toggle to switch on
- ✅ Deduplication by email address, so the same message is not imported twice if you later also connect the mailbox via IMAP or Microsoft 365
User Benefit: If your mail already lives in a desktop mail app, you can feed it into the Distiller without handing TensorPM a mailbox password or opening a server connection. Nothing leaves your machine.
🏗️ Improvements
Consistent Settings Icons
Every gear icon in the app now uses the same glyph, the same stroke weight, and the same muted grey — previously the app mixed three different icon sets, and one gear rendered bright white in dark mode while its neighbours were grey.
Clearer Audit Trail Sources
Trail entries now name their real source instead of a generic "Chat" label. Clicking a source opens a popover with the person and the exact message behind the change, plus a direct "open in chat" jump.
Connector Overview
The connector setup screens got a reworked overview panel and clearer logos, so it is easier to see at a glance which connectors are configured and which still need attention.
Smoother Intake List
Row heights in the pending-signals list are now derived exactly from the stylesheet instead of estimated. Long lists no longer flicker or overlap while scrolling.
Polished Toggles
Sliding tab and mode switchers animate consistently across the app.
🐛 Bug Fixes
- Fixed the action-list settings gear rendering in near-white in dark mode instead of the muted grey used everywhere else
- Fixed pending intake rows briefly overlapping while the list measured itself
📝 Notes
- No database schema change in this release — upgrading requires no migration
- The local email connector currently supports Apple Mail on macOS. The connector only appears on platforms where a supported mail store exists, so it is not offered on Windows or Linux yet. Outlook (Windows) and Thunderbird are planned for a later release.
📅 Release Info
- Version: 1.30.0
- Release Date: 2026-07-31
- Previous Version: 1.29.2
- Type: Minor Release
v1.29.2
TensorPM v1.29.2
July 31, 2026
Changelog - v1.29.2
🐛 Bug Fixes
Local AI models are no longer slowed down artificially
TensorPM applied its own request throttling to local AI endpoints (Ollama, llama.cpp, LM Studio). Because a local server manages its own capacity anyway, this only added forced waits — in the worst case a turn stalled for almost a minute in the middle of a response.
What Changed:
- ✅ Local AI providers are fully exempt from client-side rate limiting
- ✅ Cloud providers keep their existing protection unchanged
User Benefit: Local models now run as fast as your machine allows — no artificial pauses mid-conversation.
Invalid AI edit instructions can no longer report false success
When an AI model sent a malformed instruction for table, criteria, or reordering updates, the app could silently ignore it and still report the change as applied. The project looked updated, but nothing had happened.
What Changed:
- ✅ Every decoded edit instruction is now checked against the tool's allowed operations before it runs
- ✅ Invalid instructions fail immediately with a precise error the AI can correct itself from
- ✅ Category and task reordering rejects malformed ID lists instead of producing broken references
User Benefit: "Updated successfully" now always means the update really happened — and models recover from their own formatting mistakes instead of leaving silent gaps.
📅 Release Info
- Version: 1.29.2
- Release Date: 2026-07-31
- Previous Version: 1.29.1
- Type: Patch Release
v1.29.1
TensorPM v1.29.1
July 28, 2026
Changelog - v1.29.1
🐛 Bug Fixes
Every distiller proposal reaches your review again
When the AI prepared several proposals for the same project field — for example ten action items from one email — some of them could silently disappear before you ever saw them. Up to nine of ten proposals were dropped from the review, without any error message.
What Changed:
- ✅ Every presented proposal now gets its own review card, even when the AI numbers them inconsistently
- ✅ Proposals for different fields with the same number no longer overwrite each other
User Benefit: What the AI proposes is what you get to decide on. Nothing is dropped on the way to the review.
Approving some proposals and rejecting others now works as expected
Reviewing a batch is rarely all-or-nothing: you approve two action items, reject a third, and append a fourth. Previously that mix was treated as a contradiction — the whole field was skipped, nothing was applied, and the AI re-presented the entire batch.
What Changed:
- ✅ Mixed decisions on one field are applied per card, exactly as you decided
- ✅ Approve and append work side by side on the same field
- ✅ Genuinely ambiguous input (the same card decided twice, in opposite ways) is still flagged for a fresh look
User Benefit: Your review sticks the first time. No more repeated batches asking you to decide the same thing again.
Completing a distiller update no longer fails at the last step
The final step of a distiller run could end in a "Missing local tool results" error — after all the work was already done. The successful turn was killed right at the finish line.
User Benefit: Updates complete reliably, including with local and subscription-based AI models.
Presentation and document creation recovers from malformed AI output
When an AI model returned a slide plan in a slightly wrong format, deck and document creation failed after several expensive, identical retries — the model was never told what was actually wrong.
What Changed:
- ✅ Recoverable format errors are corrected automatically
- ✅ Otherwise the model gets one focused retry that names the exact problem and shows what it sent
- ✅ Never more than one retry, so a failure stays cheap and fast
User Benefit: Fewer failed deck and document runs, and noticeably less waiting (and fewer AI credits) when a model slips up.
Project creation keeps all the details it extracted
When creating a project from a prompt, success criteria, people, timeframe, and budget could be lost if the AI packed them in an unexpected format. The project was created — just emptier than it should have been.
User Benefit: Projects generated from a prompt or a document arrive complete.
🏗️ Improvements
Better bug reports without sharing your content
Support bundles now include a technical fingerprint of recent tool calls: which tools ran, and what data type each argument had. No argument values are included, and all identifiers are hashed.
User Benefit: A whole class of AI formatting bugs can now be diagnosed from your report alone — without you having to share project content or reproduce the problem.
📝 Notes
No migration or configuration is required. Existing projects, reviews, and settings are unaffected.
📅 Release Info
- Version: 1.29.1
- Release Date: 2026-07-28
- Previous Version: 1.29.0
- Type: Patch Release
v1.29.0
TensorPM v1.29.0
July 27, 2026
Changelog - v1.29.0
🎉 New Features
See Exactly Which Chat Message Changed Your Project
Every entry in the Trail that came from a chat now carries a source chip instead of the generic "Chat" label. Click it and you see who wrote the message and what it said — the change and its cause side by side.
- ✅ The popover shows the person behind the change and the original wording
- ✅ Open in chat jumps straight to that message and highlights it, so you land in the full conversation instead of a snippet
- ✅ Older Trail entries keep working — entries written before this release still resolve to their chat where the information exists
🐛 Bug Fixes
Cloud Sync No Longer Gets Stuck Until You Restart the App
If the connection to the sync server hung — a slow network, a server that did not answer — sync could freeze in a state where stopping, starting, and restarting it all did nothing. The only way out was quitting and reopening TensorPM.
- ✅ A connection attempt that does not answer is given up on instead of blocking everything behind it; the sync client keeps reconnecting in the background
- ✅ Stop, start, restart, and switching cloud workspaces work again while a connection is still hanging
- ✅ The status no longer claims "Live" when there is no confirmed connection, and a connection that fails after the fact is reported instead of failing silently
- ✅ Switching workspaces shows "connecting" for the transition rather than the "sync off" icon
- ✅ The status indicator stops spinning forever: after a minute in a stalled state it falls back to the normal offline view, where the restart action is available
Trail Details
- ✅ The chat highlight from Open in chat stays visible for its full duration instead of disappearing immediately
- ✅ Pressing Enter or Space on the source chip no longer collapses the Trail entry behind it
🏗️ Improvements
- The task list's status column uses the shared color token again, so it matches the rest of the list in both light and dark mode.
- Dependency updates:
officeparserand three development dependencies.
📝 Notes
- No database migration ships with this release.
📅 Release Info
- Version: 1.29.0
- Release Date: 2026-07-27
- Previous Version: 1.28.0
- Type: Minor Release
v1.28.0
TensorPM v1.28.0
July 26, 2026
Changelog - v1.28.0
🎉 New Features
Keep Typing While the AI Is Still Answering
You no longer have to wait for a response to finish before writing your next message. Anything you send during a running response is collected in a queue above the input field and sent automatically once the current answer is done.
- ✅ Queued messages are listed above the composer, in the order they will be sent
- ✅ Edit or remove a queued message as long as it hasn't gone out yet
- ✅ Interrupting a response, or a response that fails, pauses the queue instead of firing your follow-ups into a broken turn — one click resumes it
- ✅ Switching projects while a response is running no longer loses the follow-ups you queued for it
Steer a Running Response
Some follow-ups shouldn't wait. Next to every queued message there is now a Steer action that hands your message to the response that is already running, at the next point where it can safely take it.
- ✅ Redirect the AI mid-answer — "actually, focus on the budget instead" — without cancelling and starting over
- ✅ Messages with attachments are always sent after the current response finishes, and say so
One "+" Menu for Everything You Give the AI
The controls below the chat input have been consolidated into a single + menu: upload a file from your computer, search and attach a project file, and reach the quick actions.
- ✅ Project file search opens as a page inside the same menu, with a back button
- ✅ The browser agent appears only when it is actually available to you, instead of showing an entry that cannot be used
- ✅ The composer is now the same card everywhere — project dashboard and chat panel alike
Task IDs Are Visible Without Edit Mode
Task IDs used to appear only while the list was in edit mode. They are now shown permanently, stacked above the status bubble.
- ✅ Read the ID of any task straight from the list — useful for emails, calls, and handing a task reference to someone else
- ✅ The ID stays in the same place when you switch between edit mode and normal view
🐛 Bug Fixes
Dropdowns No Longer Swallow Key Presses
Dropdown menus stopped responding to the keyboard whenever the surrounding screen refreshed in the background. Pressing Escape on an open provider dropdown in the AI settings did nothing, because that tab refreshes while it checks your AI connections.
- ✅ Escape, arrow keys, and Enter now work reliably in every dropdown, no matter what is refreshing behind it
🏗️ Improvements
- The disabled send button now looks the same across the project dashboard and the chat panel; it was too pale to read in dark mode on the dashboard.
- The task list's status column is slightly wider to make room for the task ID.
📝 Notes
- No database migration ships with this release.
- The chat tutorial's three separate steps for attaching files, searching files, and quick actions are now a single step covering the new + menu.
📅 Release Info
- Version: 1.28.0
- Release Date: 2026-07-26
- Previous Version: 1.27.0
- Type: Minor Release
v1.27.0
TensorPM v1.27.0
July 25, 2026
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
v1.26.0
TensorPM v1.26.0
July 24, 2026
Changelog - v1.26.0
🎉 New Features
Work the File Explorer Without a Mouse
The file explorer is now fully operable from the keyboard, in both grid and list view.
- ✅ Move between files and folders with the arrow keys, Home, and End
- ✅ Open a file or enter a folder with Enter, select with Space, go up with Backspace
- ✅ Open the context menu with Shift+F10 or the context-menu key, right where the item is
- ✅ Rename with F2, and step through menu entries with the arrow keys, Home, End, and Escape
- ✅ Sort by column from the keyboard — the column headers are now real buttons and announce the active sort direction to screen readers
Focus stays where you expect it: after entering a folder or closing a menu it returns to the list instead of dropping you back to the start of the page.
Find Decisions in Search — and Land on Them
Global search now includes the decisions of the active project, matching their text, rationale, and source.
- ✅ See decisions in the result list with their status and date
- ✅ Jump straight to the decision: TensorPM switches to Trail → Decisions, scrolls to it, and highlights it briefly
- ✅ Reach decisions that your saved status or source filter would otherwise hide — the filter is widened for you instead of leaving you on an empty list
Compact Trail Entries Say What They Changed
The compact trail view used to show only a field name, a status, and a time. Each row now carries a one-line summary that identifies the actual change.
- ✅ Recognize entries at a glance: the affected task, person, or decision by name
- ✅ See concrete value changes, for example a budget going from one figure to another
- ✅ Spot entries with several changes at once through a "+N more" marker
Guidance in Your Language
Smart action cards were previously stored in English and shown in English, whatever the interface language.
- ✅ Read observations, impacts, and suggestions in German or English
- ✅ Get correct singular and plural forms, including the number of affected tasks
- ✅ Keep existing cards working — entries created before this release are translated too
Smart Action Cards as an Accordion
The stacked card pile has been replaced by a plain list in which one card is open at a time.
- ✅ See every card in the stack instead of only the top of the pile
- ✅ Open and close cards by keyboard, with proper expanded/collapsed state
- ✅ Read cards without them overlapping each other
A Distinct Mark for Local AI Models
- ✅ Recognize local models by a crisp vector mark that no longer depends on a system font
- ✅ Tell your local models apart through a stable per-model color accent
- ✅ See the mark correctly in dark mode
Smaller Additions
- ✅ Completed tasks on the board show their completion date instead of a due-date warning
- ✅ Failed project check-ins can be retried directly from the dashboard card
- ✅ Browser-use setup explains in plain language what is missing, with the technical diagnostics moved behind a "Details" toggle
🐛 Bug Fixes
Project Structure Generation with a ChatGPT Subscription
Generating a project structure through a ChatGPT subscription stopped after the first field, because the turn ended while waiting for a tool result.
- ✅ Every submitted field of a generated project structure is captured
- ✅ The turn completes normally instead of ending early
Dates and Times in the Interface Language
- ✅ Relative times ("3 days ago") now follow the interface language instead of always being English
- ✅ Chat history groups and scheduled times are translated
- ✅ A timestamp between roughly eleven and twelve months old is no longer reported as belonging to the current year — this also affected the age of the previous evaluation passed to the AI
People
- ✅ People without an email address no longer show a dead email action
- ✅ Person actions are reachable by keyboard and visible on touch devices instead of appearing only on mouse hover
- ✅ The person context menu can be operated with the keyboard and returns focus where it came from when closed
Smaller Fixes
- ✅ Refreshing guidance now picks up changed rule data instead of keeping a stale card
- ✅ Skill entries in the file context menu are translated in the German interface
- ✅ A failed check shown above an older project check-in report no longer reads as if that report had failed
🏗️ Improvements
Accessibility
This release brings the file explorer, the people area, and the guidance cards closer to keyboard and screen-reader parity with the rest of the app: a single tab stop per list, announced selection and sort state, real menus with real menu entries, and visible focus rings that no longer get distorted by global button styling.
🧪 Reliability
- Added regression coverage for keyboard navigation, menu focus handling, and roving tab order in the file explorer
- Added coverage for the person context menu when its entries change with the person's data
- Added coverage for the decision deep link, including the case where the target is hidden by a saved filter
- Added coverage for the compact trail summary across its different change sources
- Added a boundary test for relative dates that guards every unit handover, not just the one that broke
📝 Notes
- No database migration and no server-side deployment are required for this release.
- Existing guidance cards are translated when displayed; the stored text is unchanged, so nothing is lost if you switch languages.
📅 Release Info
- Version: 1.26.0
- Release Date: July 25, 2026
- Previous Version: 1.25.7
- Type: Minor Release
v1.25.7
TensorPM v1.25.7
July 24, 2026
Changelog - v1.25.7
🎉 New Features
Gemini 3.6 Flash Support
TensorPM now uses Gemini 3.6 Flash as the default Google model and Gemini 3.5 Flash-Lite for lightweight tasks.
- ✅ Use the latest Gemini Flash generation for Google BYOK and the managed fallback
- ✅ Preserve tool calls, reasoning signatures, and images returned from tools
- ✅ Keep model limits and selectable model names consistent across the app
Clearer Project Steering at a Glance
The project welcome area now distinguishes current, stale, missing, blocked, and loading information more accurately.
- ✅ See whether status, progress, context, and guidance are ready or need attention
- ✅ Refresh newly available guidance in the same operation after project context improves
- ✅ Receive remotely synced status, progress, guidance, and intake updates without reopening the project
🐛 Bug Fixes
More Reliable Local AI Tool Calls
OpenAI-compatible local endpoints that silently end a stream can now retry once without streaming when no visible response was produced.
- ✅ Recover tool-call responses from endpoints with incomplete streaming support
- ✅ Avoid duplicate retries after visible text has already been streamed
- ✅ Account for both attempts in rate limiting and usage reporting
Accurate Dashboard Loading States
Generating guidance no longer makes the project status row appear to be loading. Status indicators now react only to status and progress generation.
Stable Settings and Responsive Controls
- ✅ Prevent external-agent toggles from animating through an incorrect startup state
- ✅ Keep localized guidance buttons and header controls readable at their natural width
- ✅ Improve compact-sidebar footer spacing without changing the normal sidebar
🏗️ Improvements
Smoother Onboarding
The guided onboarding conversation now reveals text at a more comfortable reading pace and presents account setup choices more cleanly.
Clearer Managed-AI Privacy Information
Documentation now distinguishes TensorPM's Germany/EU-hosted account and sync services from the global processing paths used by managed AI providers.
🧪 Reliability
- Added regression coverage for Gemini tool-result images and wire-format compatibility
- Added refresh dependency tests for context, strategy, coverage, and execution guidance
- Added checks for local-endpoint fallback accounting and project status loading behavior
- Added CSS contract tests for compact-sidebar spacing and localized guidance controls
📝 Notes
- Existing Google API keys continue to work; the default model changes to Gemini 3.6 Flash.
- Managed AI remains optional. BYOK providers and fully local Ollama models remain available.
- Vertex AI Gemini 3.6 Flash uses Google's global location and does not provide an EU ML-processing-location or data-residency guarantee.
📅 Release Info
- Version: 1.25.7
- Release Date: July 24, 2026
- Previous Version: 1.25.6
- Type: Patch Release
v1.25.6
TensorPM v1.25.6
July 23, 2026
Changelog - v1.25.6
🐛 Bug Fixes
Reliable ChatGPT Subscription Startup with NVM
TensorPM can now start a Codex installation managed by NVM even when the desktop
app was launched with a minimal system PATH.
- ✅ Prevent the ChatGPT app server from failing because its Node.js runtime could not be found
- ✅ Apply the corrected runtime environment to model discovery and browser sign-in
- ✅ Keep API-key variables isolated from subscription-based Codex sessions
Login Actions Only When the Required Tool Is Available
Claude and ChatGPT subscription sign-in is now offered only when Claude Code or Codex is actually installed on the device.
- ✅ Hide unusable sign-in buttons when the matching local tool is missing
- ✅ Show a subtle Not installed status with a concise explanation
- ✅ Keep installed, signed-in, and model-discovery states separate and accurate
🏗️ Improvements
Clearer Subscription and Agent Controls
The combined Subscriptions & Agents settings are more compact and easier to scan.
- ✅ Group each coding agent's runtime options into a clear compact card
- ✅ Label headless and permission controls explicitly
- ✅ Keep connected and unavailable states aligned consistently
Refined Control Shapes
Dropdowns and project search controls now use shapes that better match their purpose.
- ✅ Keep dropdowns lightly rounded instead of pill-shaped
- ✅ Use a circular collapsed project-search button
- ✅ Use a rounded expanded search field for a smoother transition
📝 Notes
- Claude subscription sign-in requires Claude Code to be installed locally.
- ChatGPT subscription sign-in requires Codex to be installed locally.
- Existing local provider credentials remain unchanged.
📅 Release Info
- Version: 1.25.6
- Release Date: July 24, 2026
- Previous Version: 1.25.5
- Type: Patch Release
v1.25.5
TensorPM v1.25.5
July 22, 2026
Changelog - v1.25.5
🐛 Bug Fixes
Reliable Codex Detection after App Updates
TensorPM now finds Codex installations managed by NVM even when the desktop app
is launched from Finder or restarted by the updater without the user's terminal
PATH.
- ✅ Recognize an existing ChatGPT subscription login again after an app restart
- ✅ Discover the models available through the locally installed Codex runtime
- ✅ Support both
NVM_BINand Codex installations in the NVM version store - ✅ Keep the TensorPM download small by continuing to use the user's local Codex installation
🏗️ Improvements
Cleaner Subscription and Agent Settings
Subscription connections and external coding-agent controls are now grouped in one compact Subscriptions & Agents section.
- ✅ Find Claude, ChatGPT, Claude Code, and Codex connections in one place
- ✅ Open concise explanations through accessible information tooltips
- ✅ Hide redundant login actions for accounts that are already connected
- ✅ Use a more compact layout for agent runtime and permission controls
📝 Notes
- ChatGPT subscription support still requires Codex to be installed locally.
- This release does not bundle the Codex binary or change existing credentials.
📅 Release Info
- Version: 1.25.5
- Release Date: July 22, 2026
- Previous Version: 1.25.4
- Type: Patch Release
v1.25.4
TensorPM v1.25.4
July 21, 2026
Changelog - v1.25.4
🎉 New Features
Connect Claude and ChatGPT Subscriptions from Settings
TensorPM can now start the official browser sign-in flow for locally installed Claude Code and Codex runtimes directly from the AI provider settings.
- ✅ Connect or reconnect Claude and ChatGPT subscription accounts without using a terminal
- ✅ Automatically refresh the available account models after successful sign-in
- ✅ See clear, localized guidance when a runtime is missing, sign-in is cancelled, or authentication cannot be detected
- ✅ Keep credentials in the providers' official local credential stores
🐛 Bug Fixes
Reliable Distiller Signal Completion
Fixed a case where an email could immediately reappear in the Distiller queue after review when an AI provider reported the signal with the wrong source type.
- ✅ Signal identity and source now come from TensorPM's active intake record
- ✅ Completion is verified against the actual backing email, document, or file
- ✅ Distiller trail entries retain the correct source information
Stable Project-Relevance Review
Improved the Distiller flow when an incoming signal may belong to another project.
- ✅ Unclear assignments always show an actionable relevance card
- ✅ Free-text clarifications are evaluated again instead of reusing a stale result
- ✅ Signals assigned to another project are removed from the current review queue
- ✅ Ambiguous replies no longer leave the Distiller in a repeated text-only loop
🏗️ Reliability Improvements
- Added real-database regression coverage for incorrectly labelled email signals
- Added safeguards against concurrent subscription sign-in attempts
- Added focused coverage for relevance-card retries and subscription connection states
📝 Notes
- Subscription sign-in requires the corresponding Claude Code or Codex runtime to be installed locally.
- No project data is changed until the user confirms the Distiller proposal or relevance decision.
📅 Release Info
- Version: 1.25.4
- Release Date: July 21, 2026
- Previous Version: 1.25.3
- Type: Patch Release
v1.25.3
TensorPM v1.25.3
July 21, 2026
Changelog - v1.25.3
🐛 Critical Bug Fix
Reliable Startup After Updating
Fixed a database migration that could prevent TensorPM from opening after an update when older synchronized AI activity records referenced projects, workspaces, or chats that were no longer present locally.
- ✅ Preserves all historical AI activity and token-usage data during migration
- ✅ Safely removes only invalid parent references while retaining their records
- ✅ Handles long-lived synchronized databases with incomplete legacy references
- ✅ Adds production-shaped SQLite regression coverage for future migrations
🏗️ Reliability Improvements
- Database migration tests now execute in the same transaction shape as the packaged application
- Migration rules now require orphan-reference coverage and validation against a disposable copy of a long-lived synchronized database before release
📝 Notes
- No project, activity, or token-usage records are deleted by this fix.
- This hotfix is intended for users whose database remained on schema version 49 after the failed v1.25.1 or v1.25.2 startup migration.
📅 Release Info
- Version: 1.25.3
- Release Date: July 21, 2026
- Previous Version: 1.25.2
- Type: Critical Hotfix Release
v1.25.2
TensorPM v1.25.2
July 21, 2026
Changelog - v1.25.2
🔒 Security
Dependency Hardening
- ✅ Updated
brace-expansionto 5.0.7 to prevent exponential-time denial of service - ✅ Updated
shell-quoteto 1.9.0 to prevent quadratic-complexity denial of service - ✅ Updated
protobufjsto 7.6.5 to prevent an infinite loop while parsing malformed.protooptions
📝 Notes
- This patch contains dependency security updates only; no application behavior or data schema changed.
- The AI activity ledger, Claude health validation, guidance timeout fix, and Sync migration shipped in v1.25.1 remain unchanged.
📅 Release Info
- Version: 1.25.2
- Release Date: July 21, 2026
- Previous Version: 1.25.1
- Type: Security Patch Release
v1.25.1
TensorPM v1.25.1
July 21, 2026
Changelog - v1.25.1
🎉 New Features
Auditable AI Activity and Token Usage
TensorPM now provides a complete activity history for AI-assisted work and records individual model requests separately from the user-facing operation.
- ✅ Review AI operations, status changes, providers, models, and token usage in one history
- ✅ Track input, output, cached, and reasoning tokens without double-counting subset values
- ✅ Correlate chat, onboarding, guidance, background, and retry activity with the underlying model calls
- ✅ Preserve completed, failed, cancelled, and recovered calls for reliable accounting
🐛 Bug Fixes
Reliable Claude Health and Guidance Workflows
- ✅ Reject malformed structured tool arguments and let Claude correct them within the same request
- ✅ Require complete, non-empty project-health reasoning before accepting an evaluation
- ✅ End forced-tool single-shot requests immediately after the valid result instead of waiting for a redundant follow-up turn
- ✅ Prevent execution guidance from running into the fixed 180-second limit after its result is already available
Complete Failure Accounting
- ✅ Record failed provider requests even when the provider did not start its own request log entry
- ✅ Preserve partial token usage for timed-out or failed requests when the runtime reported it
- ✅ Recover stale processing entries on startup so interrupted calls no longer remain permanently active
- ✅ Keep cancellation terminal across provider and retry boundaries
Sync and Provider Reliability
- ✅ Sync the new per-request AI ledger across workspaces
- ✅ Normalize provider errors and quota messages consistently across API-key and subscription runtimes
- ✅ Improve OpenAI prompt-cache compatibility and provider usage metadata
- ✅ Preserve operation correlation for background, onboarding, guidance, and chat-title generation
🏗️ Improvements
Clearer AI Activity History
- ✅ Improved filtering, grouping, status presentation, and usage details
- ✅ Unified activity totals from persisted model-call records
- ✅ Added live updates for processing, completed, failed, and cancelled operations
- ✅ Expanded database, provider, IPC, frontend, and real-runtime regression coverage
📝 Notes
- The activity history distinguishes a logical AI operation from its individual provider requests and retries.
- Cache and reasoning token values are included as usage details and are not added a second time to total tokens.
- Claude and ChatGPT subscription runtimes continue to use the locally signed-in account without API-key fallback.
📅 Release Info
- Version: 1.25.1
- Release Date: July 21, 2026
- Previous Version: 1.25.0
- Type: Patch Release
v1.25.0
TensorPM v1.25.0
July 20, 2026
Changelog - v1.25.0
🎉 New Features
Use Your Claude or ChatGPT Subscription Directly
TensorPM can now use locally authenticated Claude Code and Codex runtimes as full AI providers.
- ✅ Choose Claude Subscription or ChatGPT Subscription in AI settings
- ✅ Use your existing local Claude or ChatGPT login without adding an API key
- ✅ Keep TensorPM's project tools, approvals, and execution boundaries in control
- ✅ Stream answers, reasoning updates, tool calls, images, and token usage through the same chat experience as other providers
Dynamic Subscription Model Selection
Available subscription models are discovered from the signed-in runtime instead of being maintained as a fixed list.
- ✅ Claude models show clear versioned names such as Claude Sonnet 5 and Claude Haiku 4.5
- ✅ ChatGPT exposes the supported GPT-5.6 Sol, Terra, and Luna choices
- ✅ Model availability automatically reflects the active subscription account
- ✅ The same model choices appear consistently in Settings and chat model selectors
🐛 Bug Fixes
Reliable Multi-Step AI Tool Workflows
- ✅ Removed the artificial Claude turn limit that could interrupt tool-based tasks
- ✅ Fixed category generation for subscription-backed providers
- ✅ Improved continuation handling for multi-step tool calls and tool results
- ✅ Preserved images through chat and tool-result continuations
- ✅ Surface incomplete or failed responses as errors instead of silently accepting truncated output
More Reliable Local and OpenAI Responses
- ✅ Fixed token reservation for long multi-tool continuations to reduce mid-turn rate-limit failures
- ✅ Preserved encrypted reasoning state when using private, non-stored response flows
- ✅ Added safer handling for incomplete and malformed response payloads
- ✅ Improved Local AI image analysis and Responses-compatible tool execution
Development Runtime Stability
- ✅ Prevented corrupted Chromium shared-dictionary cache data from repeatedly breaking development startup
- ✅ Isolated subscription runtime caches and configuration from TensorPM provider sessions
🏗️ Improvements
Unified Responses Architecture
OpenAI and modern Local AI endpoints now use the Responses-style conversation structure throughout TensorPM.
- ✅ Consistent streaming, reasoning, tool calls, images, and continuation history
- ✅ Private requests remain non-stored where supported
- ✅ Cleaner provider behavior with fewer legacy compatibility branches
- ✅ Expanded provider contract tests and real-runtime integration coverage
Complete Provider Capability Parity
Claude and ChatGPT subscription providers now support TensorPM's core AI workflows, including:
- Project chat and project-aware tools
- Action item and category generation
- Guidance, project health, and progress evaluation
- Action item re-evaluation and splitting
- Image analysis and image-aware project generation
- Document-to-project and prompt-to-project workflows
- TensorPM Skills through
describe_skilland sandboxedexecute_code
Application Reliability
- ✅ Improved post-login synchronization through deep links
- ✅ Refreshed application and tray menus when runtime state changes
- ✅ Strengthened circular-dependency checks and release validation
- ✅ Updated production and development dependencies
📝 Notes
- Claude and ChatGPT subscription providers require their respective local runtimes to be installed and signed in.
- Subscription runtime sessions do not silently fall back to API-key providers.
- TensorPM Skills continue to run inside TensorPM's permission-controlled local sandbox.
- Full Playwright E2E tests were intentionally skipped for this release; type checking, linting, dependency-cycle checks, unit tests, import validation, and the release AI smoke test remain enabled.
📅 Release Info
- Version: 1.25.0
- Release Date: July 20, 2026
- Previous Version: 1.24.0
- Type: Minor Release
v1.24.0
TensorPM v1.24.0
July 18, 2026
Changelog - v1.24.0
TensorPM 1.24.0 introduces proactive project check-ins, gives the onboarding flow richer document and image context, and makes AI-driven action-item updates more dependable.
🎉 New Features
Proactive Project Check-ins
TensorPM can now review active projects on a schedule and notify you when something deserves your attention.
- Enable check-ins for Pro or Business from General Settings and choose twice daily, daily, every two days, or weekly scheduling at the times that suit you.
- Run a manual check-in at any time without changing the schedule.
- Relevant guidance arrives through native system notifications and appears on the project dashboard with its severity, suggested next step, and related action items.
- Open a referenced action item directly, dismiss individual observations, or continue the report in AI chat with Discuss with AI.
- Quiet checks remain visible as a simple status instead of interrupting you unnecessarily.
Richer project setup from documents and images
The first-run project setup is more visual and gives the AI better source material from the start.
- Attach both documents and images while creating a project. Images are sent as vision input when the selected model supports them, while documents keep their normal preview and token handling.
- Clear document, image, and token limits prevent oversized setup requests before generation starts.
- Improved progress and error states make it easier to understand what TensorPM is processing and recover when an attachment cannot be read.
🏗️ Improvements
- Vision-capable AI providers can now consider images embedded in project fields across more chat, guidance, planning, and publication workflows.
- AI-created action items now preserve validated planning effort and budget fields instead of dropping them during intake processing.
- Budget amounts without an explicit currency follow the project's display currency before being converted for storage, keeping AI updates consistent with manual edits.
- AI prompts now describe only the tools that are actually available in the current context, avoiding references to unavailable mail actions and keeping token estimates accurate.
- Skipped timer-managed action-item fields are reported as warnings instead of being silently ignored.
🐛 Bug Fixes
- AI action-item updates no longer claim that requested values already matched when an update was skipped or had no effect.
- Onboarding attachment limits are enforced before project generation, preventing excess files from being silently omitted downstream.
- Image payloads are resized and capped consistently so supported project images stay aligned with their references in AI prompts.
📝 Notes
- Proactive Project Check-ins are disabled by default and are available with Pro and Business.
- Each scheduled check-in makes one AI request per active project and sends project context to the selected AI provider.
- Check-in settings and history are stored on the current device. Native notification delivery depends on the operating system's notification permissions.
- This is a desktop release. No server, sync, or account migration is required.
📅 Release Info
- Version: 1.24.0
- Release Date: 2026-07-18
- Previous Version: 1.23.0
- Type: Minor Release
v1.23.0
TensorPM v1.23.0
July 17, 2026
Changelog - v1.23.0
TensorPM 1.23.0 lets you pick any model your local AI endpoint offers, keeps the row table visible while you work in WBS mode on the Timeline, and refreshes the connector setup screen.
🎉 New Features
Choose any model from your local AI endpoint
If your local or self-hosted endpoint (Ollama, LM Studio, vLLM, or a compatible server) serves more than one model, you can now switch between all of them right from the model picker — no more editing a single model name by hand.
- Every model reported by the endpoint appears in the model selector next to the chat input, in the message toolbar, in the header selector, and in the Settings AI tab.
- The list is remembered per endpoint, so your models stay selectable after a restart. Testing the connection or auto-detecting a server refreshes the list; changing the endpoint clears the models that belonged to the old one.
- The model you had configured always stays selectable, even when the endpoint lists it under a
slightly different name (for example
llama3versusllama3:latest). - Switching models refreshes that model's context and output limits from the endpoint, so long prompts are sized against the model you are actually using.
Row table stays visible in WBS mode on the Timeline
Working with your Work Breakdown Structure on the Timeline is clearer:
- The left-hand row table now stays visible in WBS mode instead of disappearing.
- Undated work packages are listed in that table rather than as floating labels on the canvas, keeping the Gantt surface uncluttered while still showing every item.
Refreshed connector setup
- The connector list and overview panel have a cleaner, more consistent look.
- Success messages now clear themselves after a moment, while errors stay on screen until your next action so you don't miss them.
🏗️ Improvements
- The active local model now stays in sync across every model selector and the Settings AI tab, so what you pick in one place is reflected everywhere.
- Stale token limits from a previous model or endpoint are cleared immediately on a switch, so the very next request is never sized against the wrong model.
📝 Notes
- This release is desktop-only. Local AI settings are stored on your device; there are no server, sync, or account changes, and no action is required for existing projects.
- Multiple local models from a single endpoint are supported; configuring several separate local endpoints at once is not part of this release.
📅 Release Info
- Version: 1.23.0
- Release Date: 2026-07-17
- Previous Version: 1.22.0
- Type: Minor Release
v1.22.0
TensorPM v1.22.0
July 16, 2026
Changelog - v1.22.0
TensorPM 1.22.0 brings the Work Breakdown Structure into the Timeline, makes it easier to rearrange visually, gives local AI models a clearer identity, and removes a duplicate AI setup detour from the project explorer.
🎉 New Features
WBS hierarchy in the Timeline
The Timeline now mirrors the real Work Breakdown Structure instead of flattening every task into a single list.
- Structure nodes, work packages, categories, and tasks appear in their canonical parent-child order with WBS codes and clear indentation.
- Expand or collapse a branch directly in the Timeline. The state is shared with the List and WBS views, so the hierarchy stays consistent as you move between views.
- Structure bars roll up the planned date range and progress of their descendants, giving you a compact overview of an entire branch.
- Work-package bars can be created, moved, and resized directly on the Timeline to update their planned start and end dates. Rollup bars update with the live drag preview.
Drag-and-drop in the WBS chart
The graphical Work Breakdown Structure (the top-down org-chart view) is now fully interactive in edit mode, matching the table view.
- Drag any node to reorder it among its siblings or to move it under a different parent.
- Drop onto the center of a structure node to nest a node inside it; drop near the left or right edge to place it before or after.
- While you drag near the left or right edge of a wide chart, the view now scrolls automatically so you can reach off-screen branches without letting go.
- Invalid drops (for example, into a work package, or a move that would create a loop) are shown as blocked before you release.
Model colors for local AI
Each local or self-hosted model now carries its own subtle, consistent accent color across the model picker, chat input, and messages.
- The color is derived from the model name, so the same model always looks the same and different models are easy to tell apart at a glance.
- Accents apply only to your own local models and never change the established colors of the hosted provider logos.
Clearer local AI setup
Configuring a local or self-hosted endpoint is smoother in both Settings and the onboarding wizard.
- Press Enter in the API key field to validate and save in one step.
- The connection is checked before an API key is stored, with a clear Validating / Valid / Invalid status.
- When an endpoint is reachable but reports no models, you are prompted to add a model name instead of being left without guidance.
🐛 Bug Fixes
- The AI sees every work package under a structure node. After you reorganized work packages under a structure node in the WBS, the AI project agent could sometimes recognize only one of them. It now reliably sees all of them when reading or updating your work breakdown structure.
- Your uncategorized inbox stays put. In the WBS chart, the "General" inbox can be reordered among the top-level nodes but can no longer be accidentally dropped inside a structure node, which previously would have folded all of your uncategorized items into that structure's progress.
- Your chosen model is respected. Testing or saving a local endpoint no longer silently swaps
the model you configured for a different one, even when the endpoint lists the model under a
slightly different name (for example
llama3versusllama3:latest). - No more misleading "success". In onboarding, saving a key for an endpoint that returns no models no longer reports a plain success and then fails later — it now guides you to add a model.
- Accurate connection status. A green "Valid" badge no longer lingers next to the API key after a later connection test fails.
- Steadier key saving. Pressing Enter can no longer start a second connection check while one is already running.
- Correct model coloring. The model accent no longer appears for a disabled local-AI configuration or an empty model name.
- More reliable spreadsheet artifacts. XLSX generation now accepts compatible typed-array views when packaging workbook data instead of misreading them as nested paths.
🏗️ Improvements
- Dragging in the WBS chart is smoother on large projects, with no per-move rendering cost.
- Edge auto-scroll stops immediately when the pointer leaves the window instead of scrolling on its own.
- Internal cleanups to how local model lists and accents are handled, keeping Settings and onboarding consistent.
- The project explorer no longer contains a second AI login/API-key setup screen. Account access remains in the header, while provider keys and local AI remain in Settings. Workspace and Connectors are now grouped together on the right without the old gap.
📝 Notes
- The "General" / uncategorized inbox is intentionally kept at the top level of the WBS. You can reorder it among the top-level nodes, but it cannot be nested inside another node.
- This release is desktop-only. There are no server, sync, or account changes, and no action is required for existing projects.
📅 Release Info
- Version: 1.22.0
- Release Date: 2026-07-16
- Previous Version: 1.21.1
- Type: Minor Release
v1.21.1
TensorPM v1.21.1
July 13, 2026
Changelog - v1.21.1
TensorPM 1.21.1 improves connectivity in managed enterprise networks and adds secure, optional authentication for local or self-hosted AI endpoints.
🎉 New Features
Enterprise certificate support
TensorPM backend connections now honor trusted enterprise root certificates installed by the operating system, including certificates used for TLS inspection and company-internal PKI.
- Corporate root certificates installed on Windows or macOS are recognized by TensorPM.
- HTTPS inspection environments, including deployments using Zscaler, can connect without disabling certificate validation.
- Windows trusts certificates from both the current-user and local-machine root stores while continuing to reject certificates placed in the Windows Disallowed stores.
- Public certificate authorities and explicitly configured additional certificates remain available, preserving existing connectivity.
- Support packages report certificate trust sources and counts without exporting certificate contents.
Optional API keys for local AI endpoints
Local and self-hosted OpenAI-compatible endpoints can now be configured with just a URL, model, and optional API key. No provider selection is required.
- API keys are sent as Bearer authentication to the configured endpoint.
- Keys are encrypted with the operating system's secure credential storage and are never displayed again after saving.
- Each key is bound to its endpoint and can be replaced or removed from Settings.
- API keys are allowed over HTTPS and over HTTP only for loopback addresses such as
localhost. - Existing Ollama and other no-key configurations continue to work without changes.
🔒 Security Improvements
- API keys are encrypted using operating-system-backed secure storage and bound to their configured endpoint.
- Stored keys are never returned to the interface after saving.
- Credentials are sent only over HTTPS, with HTTP permitted only for loopback addresses such as
localhost. - TensorPM refuses to persist a key when secure operating-system encryption is unavailable.
- Windows certificates that are explicitly distrusted remain rejected.
- Explicit per-request certificate policies remain restrictive and are not widened by the new operating-system trust integration.
- Support packages now redact a wider range of API-key, authorization, token, password, and credential formats.
📝 Notes
- Install the company or Zscaler root certificate as a trusted operating-system root and restart TensorPM after adding, removing, trusting, or distrusting it.
- The enterprise certificate support covers server trust and HTTPS inspection. Client certificates and mutual TLS are not introduced in this release.
- No database migration or configuration change is required for existing users.
📅 Release Info
- Version: 1.21.1
- Release Date: July 13, 2026
- Previous Version: 1.21.0
- Type: Patch Release
v1.21.0
TensorPM v1.21.0
July 12, 2026
Changelog - v1.21.0
TensorPM 1.21.0 streamlines project creation, shows the state of project context and guidance more clearly, and strengthens the local-first save, AI, and integration paths throughout the app.
🎉 New Features
Streamlined project creation uploads
The existing combined description-and-attachment workflow is now visible directly on the new-project screen.
- Use one surface for the project description and optional documents or images.
- Drag documents and images directly onto the creation screen or choose them with the native file picker.
- Review the attachment list and document token details before starting generation.
- The empty-project path is described more clearly when every input is left blank.
TensorPM now keeps compatible selections when files are added in quick succession, ignores duplicates, and explains when a file is unsupported, unreadable, still being analyzed, or exceeds the document limit.
Daily reference exchange-rate updates with explicit opt-in
General Settings now includes Update Exchange Rates Automatically.
- When enabled, TensorPM requests daily reference rates from the free Frankfurter service and caches them locally for 24 hours.
- No account or API key is required, and only the selected currency codes are sent.
- The option is off by default; the existing built-in reference rates remain available for offline use or when external updates are disabled.
- A manual refresh reports failures without discarding the last usable rates.
Clear Context → Analysis → Guidance status
The project dashboard now shows three separate, inspectable stages instead of combining them into one synthetic context-quality score.
- Context shows whether the current project state is confirmed or still has incoming signals waiting for review.
- Analysis shows the freshness of project status, progress, context analysis, and goal-coverage analysis.
- Guidance shows the freshness of strategic and execution recommendations.
- Detailed tooltips explain every stage and mark analyses that are not yet applicable instead of presenting them as missing or stale.
This makes it easier to distinguish unconfirmed signals from confirmed context, and analysis from the guidance derived from it.
More readable before-and-after changes
Trail entries and Distiller proposals now use a shared change-row design.
- Changed values are displayed consistently as before → after.
- Text changes include word-level highlighting.
- Long values can be expanded without overwhelming the review surface.
- Status and change-type labels are normalized across the affected views.
Compact project history
The Trail now offers a compact history mode that is remembered per project.
- Entries can be expanded only when their details are needed.
- Changes are grouped by Today, Yesterday, or the appropriate local date.
- The compact and detailed views share the same readable change-row presentation.
🐛 Bug Fixes
Rapid project edits no longer overwrite one another
Project, project-profile, and wizard saves now reconcile responses against edits made while a request was in flight.
- An older save response can no longer roll back a newer local edit to lists, tables, priorities, goals, or other project fields.
- The renderer that made a save no longer processes a redundant copy of its own update, while genuine changes from other sources still propagate normally.
- File-system refreshes wait for pending local saves instead of replacing optimistic edits with an older committed snapshot.
- Failed debounced wizard saves stay queued for retry, with newer field edits taking precedence.
Safer document and image handling during project creation
- Unsupported file types are rejected before they enter generation state.
- A failed document preview removes only the affected file and shows a clear warning.
- Late preview responses cannot restore files that were removed or overwrite a newer preview.
- Concurrent picker and drag-and-drop actions preserve all valid selections while still enforcing the image cap.
- Document generation waits until every preview is ready.
- The document token limit now applies only to documents; the prompt estimate is shown separately.
- File paths from drag-and-drop are resolved through the approved Electron preload API boundary.
More reliable account and AI-provider state
- Subscription monitoring now stays active for the application lifetime instead of depending on a model-label component being mounted.
- Business API-key availability is revalidated after Business authentication and subscription state are restored, avoiding both stale invalid states and duplicate startup checks.
- The onboarding connectivity check now completes reliably under React lifecycle replay instead of leaving the first-project flow stuck on Checking your connection….
- The managed TensorPM model is labeled consistently as TensorPM AI, avoiding misleading Lite/Pro model names.
- Gemini forced-tool flows now retain the correct provider identity in activity and error output.
Stronger integration and data boundaries
- MCP mutation responses are validated without turning an already-successful write into a failed tool call merely because optional response metadata changed, avoiding unsafe retries and duplicate mutations.
- Malformed MCP and A2A payloads are rejected at their boundaries with clearer errors.
- Action-item batches submitted through MCP are deduplicated within the batch, and MCP/A2A now share dependency parsing and canonical action-item serialization.
- Project settings use the same validation contract in the frontend and backend.
- Action-item database, sync, backup, and project-setting boundaries now preserve their real nullable and structured data contracts instead of relying on unsafe assumptions.
- User-scoped server file aliases now converge on the canonical local file row, including related references, remote tombstones, and hard-delete reconciliation.
- Local sync diagnostics are isolated per account, and an in-flight sync operation retains the account scope with which it started even if the signed-in account changes.
- Malformed backup metadata, update metadata, and cached payloads are rejected instead of being accepted as trusted application data.
- Shared timeout, SQL, workspace lookup, and PowerSync helpers reduce inconsistent edge-case handling across repositories and services.
🏗️ Improvements
Clearer project-agent language
The interface now uses concrete project-management terms in place of the former “Dreaming” metaphor.
- Project review describes the daily reassessment of status, progress, and risks.
- Incoming signals, proposed changes, and confirmed changes clarify the human review boundary in the Distiller and Trail.
- Onboarding now explains the three activity levels as on-request review, daily status review, or daily review plus automatic AI prioritization.
- Context analysis, coverage analysis, strategic guidance, and execution guidance are named consistently throughout the app.
Better visibility and accessibility
- Presentation, Word, PDF, and calendar tool activity now uses readable localized progress labels.
- Tooltips open from keyboard focus and expose their relationship to assistive technologies.
- The managed-model, Business API-key, onboarding, account, and connector descriptions now explain behavior and privacy more precisely.
- Random pop-culture onboarding greetings were replaced by one clear introduction to TensorPM as an AI project agent.
Broad reliability and maintainability work
- AI-provider request, tool-flow, validation, and error-handling logic is more consistent across OpenAI, Anthropic, Gemini, Mistral, local AI, and TensorPM-managed AI.
- Runtime type guards and response schemas now protect more MCP, database, sync, backup, and project-data boundaries.
- Repository, validation, and integration utilities were consolidated to remove duplicate behavior and make future fixes apply consistently.
- Regression coverage was expanded for exchange rates, change rendering, subscription lifecycle, project saves, file selection, token limits, preload boundaries, and Electron wizard flows.
📝 Notes
- The new exchange-rate preference is added through an automatic local database migration; no manual action is required.
- Sync diagnostics are upgraded automatically to account-scoped storage; ambiguous legacy diagnostics are closed safely and will be recreated under the correct account if they recur.
- Existing projects and locally cached exchange rates remain compatible.
- External exchange-rate requests remain disabled unless the user explicitly enables them.
📅 Release Info
- Version: 1.21.0
- Release Date: July 12, 2026
- Previous Version: 1.20.3
- Type: Minor Release
v1.20.3
TensorPM v1.20.3
July 10, 2026
Changelog - v1.20.3
TensorPM 1.20.3 refreshes the OpenAI model lineup and improves release reliability on macOS.
🤖 Updated OpenAI models
- GPT-5.6 Terra is now the balanced default for everyday project work.
- GPT-5.6 Sol is available for the most demanding analysis and reasoning tasks.
- GPT-5.6 Luna provides a faster, more cost-efficient option and powers lightweight AI tasks.
- All three models support images, PDF inputs, tools, and streaming with the same large context and output limits, so existing TensorPM workflows continue to work without provider changes.
- Saved preferences that still reference a retired OpenAI model now fall back safely to GPT-5.6 Terra instead of sending an unsupported model ID to the API.
🛠️ Release reliability
- macOS packaging now reuses the signing keychain prepared by the release workflow instead of creating a second temporary keychain.
- The signing identity is unlocked and verified immediately before packaging, producing an early, clear failure if the certificate is unavailable and avoiding intermittent keychain-passphrase errors during release builds.
📅 Release Info
- Version: 1.20.3
- Release Date: July 11, 2026
- Type: Patch Release
v1.19.0
TensorPM v1.19.0
July 6, 2026
Changelog - v1.19.0
🎉 New Features
Presentation Deck Authoring
TensorPM can now generate and revise PowerPoint presentations directly from the current project.
What Changed:
- Added the new
deck_authortool for creating project-based PowerPoint decks. - Added
deck_author_editso decks created by TensorPM can be updated later with natural-language instructions. - Added a planner, design director, layout authoring, sandbox rendering, automatic repair, and PPTX integrity checks.
- Decks are exported into the project under
exports/presentation-deck/.
User Benefit: Users can ask TensorPM for status decks, steering committee decks, proposals, reviews, and project overviews without manually orchestrating code execution or PowerPoint layout steps.
🏗️ Improvements
Skill-Based Deck Tool Access
Deck authoring is unlocked by the presentation-deck project skill. TensorPM only exposes the deck tools when that skill is installed and trusted for the active project.
Safer Tool Availability Checks
TensorPM now re-checks tool availability at execution time, not only when the tool list is shown to the AI. This prevents stale or direct tool calls from bypassing project-specific availability gates.
PowerPoint Skill Catalog Cleanup
The legacy manual PowerPoint guide has been replaced by the new presentation-deck skill flow in the desktop skill catalog.
📝 Notes
- The release intentionally skips the full Playwright E2E suite.
- The standard typecheck, lint, unit test, ESM import verification, and release smoke gates remain part of the release process unless explicitly skipped by the release command.
📅 Release Info
- Version: 1.19.0
- Release Date: 2026-07-06
- Previous Version: 1.18.2
- Type: Minor Release
v1.18.2
TensorPM v1.18.2
July 4, 2026
Changelog - v1.18.2
New Features
Better guidance for generated Office documents
TensorPM's AI can now load detailed skill reference material only when it is needed for a document task.
What Changed:
- PowerPoint, Excel, Word, PDF, and artifact review skills can expose focused reference guides without bloating normal chats
- The AI can load one specific guide, such as a design contract or spreadsheet quality gate, when a polished deliverable needs it
- Skill authors can keep core instructions short while keeping heavier document-generation guidance in separate reference files
User Benefit: Generated decks, workbooks, reports, and PDFs can follow stronger document quality rules while everyday project chats stay fast and focused.
Bug Fixes
Skill references respect approval state immediately
TensorPM now revalidates a skill's approved content before exposing bundled reference files to the AI.
What Changed:
- If a skill is edited after approval, TensorPM blocks reference reads until the skill is approved again
- This closes the short timing window between a local file edit and the FileExplorer trust badge refresh
User Benefit: The AI only sees reference material from the exact skill contents you approved.
Multi-day milestone dates are clearer
When a milestone date range is entered into the single-date column, TensorPM still normalizes the date cell to the first day, but now returns an explicit warning.
What Changed:
- ISO date ranges such as
2026-10-08 bis 2026-10-09normalize to2026-10-08 - TensorPM now tells the AI to preserve the full range in the milestone description when it represents a multi-day event
User Benefit: Milestone tables stay compatible with single-date timelines without silently losing the end date.
Improvements
- Cleaner skill authoring docs: the generated
skills/README.mdnow explains how to use deferred reference files for heavier guidance - Office artifact eval fixtures: the desktop skill catalog now includes trigger and quality rubrics for document-generation skills
Notes
This is a patch release focused on skill reference loading, document-generation quality guidance, and safer milestone date normalization. No migration or manual user action is required.
📅 Release Info
- Version: 1.18.2
- Release Date: 2026-07-04
- Previous Version: 1.18.1
- Type: Patch Release
v1.18.1
TensorPM v1.18.1
July 3, 2026
Changelog - v1.18.1
Bug Fixes
Trail updates are easier to read
TensorPM now shows more precise Trail entries when project context or action items are updated.
What Changed:
- Similar text edits now highlight the changed words instead of marking the whole sentence as removed and re-added
- Action item updates that do not actually change anything are shown as "No effective changes" instead of looking like a real edit
- If a long action item update trace is shortened internally, TensorPM still shows the requested field changes wherever possible
User Benefit: You can review AI-assisted updates faster and see what really changed without being distracted by noisy red/green blocks.
Improvements
- Cleaner action item history: edited action items use a calmer visual style, so important changes stand out more clearly
- Better change badges: unchanged action item updates now get their own neutral status instead of being grouped with edits
Notes
This is a focused patch release for Trail readability and action item update history. No migration or manual user action is required.
📅 Release Info
- Version: 1.18.1
- Release Date: 2026-07-04
- Previous Version: 1.18.0
- Type: Patch Release
v1.18.0
TensorPM v1.18.0
July 3, 2026
Changelog - v1.18.0
New Features
Redeem Pro vouchers right in the app
If you received a TensorPM Pro voucher, you can now redeem it without leaving the desktop app.
What Changed:
- New "Redeem voucher" option in your account settings (visible on the free Trial plan)
- Enter your code and your Pro plan activates immediately — the app shows your new plan and expiry date right away, no restart needed
- Clear messages if a code is mistyped, expired, or already used
User Benefit: From voucher code to active Pro in seconds — no website detour, no waiting.
The AI can work with your project files in code runs
When the AI runs code for you (reports, exports, calculations), it can now bring selected project files into the run.
What Changed:
- The AI can stage files from your project into a code run and read them there — for example a spreadsheet it should analyze or a document it should convert
- Files are copied read-only into the run's workspace; the run still can't touch anything outside its sandbox
- Sensible limits on file count and size keep runs fast and safe
User Benefit: "Analyze this file and build me a report" now works end to end — the AI no longer has to work around missing file access in code runs.
Bug Fixes
Stopping a response no longer duplicates it
Aborting an AI response could occasionally leave the answer in the chat twice after a reload. Stopped responses are now stored exactly once.
Edited messages are no longer lost
Editing and resending a chat message while a response was still running could lose your edit. The edited message is now saved before the new response starts, so your wording always survives.
Long multi-step AI tasks stay on track
On long turns with many tool steps, the AI's working history could swell with repeated content, degrading answers and burning credits. The history each step sees is now tightly bounded, and the AI keeps its focus — and your original question — all the way to the final answer.
Improvements
- More reliable AI sessions: new internal consistency checks watch every chat turn and surface problems early, backed by replay tests built from real-world sessions
- Better support diagnostics: support bundles now include anonymous chat health counters, helping us resolve reports faster — no chat content is added
📅 Release Info
- Version: 1.18.0
- Release Date: 2026-07-03
- Previous Version: 1.17.3
- Type: Minor Release
v1.17.3
TensorPM v1.17.3
July 3, 2026
Changelog - v1.17.3
🏗️ Improvements
More Reliable Releases
This maintenance release hardens the TensorPM build pipeline so that packaging problems are caught before an installer is ever produced.
What Changed:
- ✅ Every release build now verifies that the packaged app contains all modules it needs to run — a missing module now stops the build within seconds instead of surfacing as a startup crash
- ✅ A new automated test guards the packaging configuration itself, so future size optimizations can never accidentally remove files the app depends on
- ✅ Build infrastructure improvements for faster, more consistent macOS releases
User Benefit: Updates arrive with an extra layer of safety checks — the class of packaging error that delayed recent updates can no longer reach your machine.
📝 Notes
- This release contains no functional or visual changes. If you are on v1.17.2, updating is optional; auto-update will pick it up as usual.
📅 Release Info
- Version: 1.17.3
- Release Date: 2026-07-03
- Previous Version: 1.17.2
- Type: Patch Release
v1.17.2
TensorPM v1.17.2
July 3, 2026
Changelog - v1.17.2
🎉 New Features
Run Skills Directly from a File's Context Menu
Skills can now offer one-click actions on matching project files. Right-click a file in the File Explorer and run the skill on it — deterministically, without involving the AI.
What Changed:
- ✅ Skills declare which file types they handle; TensorPM shows their action in the context menu of matching files
- ✅ The skill runs instantly in the secure sandbox and its results land in the project's
exports/folder - ✅ Only skills you have explicitly trusted can offer context-menu actions
User Benefit: Process files with a single click and get exact, reproducible results — the same file always produces the same output.
Ready for GAEB Bills of Quantities (Leistungsverzeichnisse)
Construction professionals can now bring German GAEB tender data (.x81/.x83/.x84) into TensorPM.
What Changed:
- ✅ Material items support an external position reference (GAEB OZ, e.g. "03.02.0040") and a unit price
- ✅ The new gaeb-import skill parses GAEB DA XML 3.1–3.3 files exactly — positions, quantities, unit prices, and totals are read from the file, never retyped by the AI
- ✅ Bid files (X84) are merged onto the original tender (X83) automatically by position number
- ✅ Right-click any GAEB file in the
gaeb/folder to get an instant overview: structure, position counts, totals, and anomalies - ✅ The TensorPM agent can stage parsed positions as material items for your review
User Benefit: Import a complete Leistungsverzeichnis in seconds with every number exactly as tendered — no manual transcription, no AI transcription errors.
🏗️ Improvements
Code-Execution Runtime Ships with the App Again
The sandbox runtime used by Skills is bundled and code-signed with every installer again.
What Changed:
- ✅ Skills work immediately after installation — no first-run download required
- ✅ The runtime binary is signed together with the app on macOS and Windows
- ✅ Works fully offline from the first minute
User Benefit: Skills are available instantly and verifiably signed, even on machines without internet access or behind strict firewalls.
🐛 Bug Fixes
- Fixed material items losing their position reference and unit price when the AI assistant updated another field on the same item
- Negative unit prices from GAEB discount positions (Nachlässe) are preserved in the item notes instead of being silently zeroed
📝 Notes
- The gaeb-import skill will be published to the in-app skill catalog separately; the platform support in this release works with any skill that declares file triggers
- Database schema migration 042 runs automatically on first start
📅 Release Info
- Version: 1.17.2
- Release Date: 2026-07-03
- Previous Version: 1.16.0 (v1.17.0/v1.17.1 were tagged but never published)
- Type: Minor Release (published as patch tag)
v1.15.1
TensorPM v1.15.1
July 2, 2026
Changelog - v1.15.1
This patch release tightens AI prompt context handling after v1.15.0 and fixes quoted display names in greetings and settings.
Bug Fixes
Cleaner AI Context for Action Item Generation
Action item generation and re-evaluation now avoid sending the same project data multiple times in one prompt. Existing action items, people, and budget details are kept in their dedicated prompt sections instead of being duplicated inside the project JSON.
This reduces prompt size and helps the AI focus on the current planning task.
Correct Categories and Assignees in Already Prepared Project Context
Some AI paths received project data that had already been prepared for AI use.
Preparing it a second time could degrade existing action items to an
Unknown category and drop assignee context. Prepared projects are now detected
and passed through safely.
Agent assignees are also preserved as readable labels in AI context instead of being silently omitted.
More Accurate Token Counting
Internal generation metadata is now stripped before token counting, matching what is actually sent to the model. This prevents the app from overestimating context size because of hidden internal snapshots and reduces unnecessary compression or truncation.
Display Names No Longer Keep Wrapping Quotes
Names stored as "Thomas" or similar quoted variants are normalized before
they reach greetings, chat, settings, and local storage updates. Apostrophes in
names such as O'Brien are preserved.
Notes
- No database migration.
- No sync protocol change.
- Release quality gates still run, except the Playwright E2E suite is skipped for this release by request.
Release Info
- Version: 1.15.1
- Release Date: 2026-07-02
- Previous Version: 1.15.0
- Type: Patch Release
v1.15.0
TensorPM v1.15.0
July 2, 2026
Changelog - v1.15.0
This release adds a faster way to bring project files into the AI chat, makes AI guidance respond in your language, fixes several long-standing data-accuracy bugs, and significantly speeds up sync recovery after large incidents. Under the hood, the database layer is now covered by hundreds of tests that run real SQL — the same queries the app runs in production.
🎉 New Features
Attach Files to the Chat Straight from the File Explorer
You can now right-click any project file in the File Explorer and choose "Attach to Chat".
What Changed:
- New context menu entry attaches the file to the AI side panel chat and opens the panel so you immediately see the attachment chip.
- The same rules as in the chat itself apply: up to 5 attachments, duplicates are detected, and clear notifications tell you what happened.
User Benefit: No more switching to the chat, hunting for the file picker, and navigating to the file again — discuss any document with the AI in two clicks.
🐛 Bug Fixes
AI Guidance Now Answers in Your Language
Guidance cards, coverage analysis, and smart action suggestions previously came back in English regardless of your language preference. They now follow the same language setting as the rest of the AI features.
Agent Assignees No Longer Lose Their Identity During Sync
Removing an agent assignee (e.g. a Codex or Claude Code agent) from an action item could sync an incomplete identifier, leaving stale assignment data on other devices. Agent identifiers are now handled correctly end to end.
Correct Timer History in List Views
Action item timer data loaded through the batch path was mapped twice, which could show empty or wrong start/end times in list views. Timer history is now mapped exactly once, the same way everywhere.
Accurate Status and Budget History
Status history and budget history queries returned raw database column names in some paths, which silently broke the "changes since last evaluation" summary the AI uses and dropped the budget type from budget history entries. Both now return consistent, fully populated records.
Original Creation Dates Preserved in Cloud Sync
Editing an action item no longer overwrites its original creation date on the server — the creation timestamp now travels with every sync update.
Material Hierarchy Integrity on Upgraded Installations
Installations upgraded from older versions were missing a database-level guarantee for the material item hierarchy (fresh installations already had it). A one-time migration rebuilds the material list storage so parent/child links behave identically on every installation, including cleanup when a parent item is deleted.
🏗️ Improvements
Much Faster Sync Recovery After Incidents
After a large sync incident, the app previously re-checked its issue list once per record during recovery — on big projects this could freeze the app for minutes at startup.
What Changed:
- A new database index makes per-record issue lookups instant.
- Recovery now checks the open-issue list once per table instead of once per record.
- Old resolved issues are cleaned up automatically when sync starts, so the issue list can't grow into a slowdown again.
User Benefit: Startup after a sync incident takes seconds instead of minutes, with no UI freeze.
Sturdier Foundations: Real-SQL Test Coverage
The database layer is now verified by hundreds of tests that execute the app's actual SQL against a real database engine, plus a migration parity test that replays every upgrade path and compares it to a fresh installation. This class of testing already caught the bugs fixed in this release before they could reach more users.
📝 Notes
- This release includes two automatic database migrations (schema version 39 → 41). They run on first launch after the update; no action is required.
- No changes to the sync protocol or server — all changes are client-side.
📅 Release Info
- Version: 1.15.0
- Release Date: 2026-07-02
- Previous Version: 1.14.3
- Type: Minor Release
v1.14.3
TensorPM v1.14.3
July 1, 2026
Changelog - v1.14.3
This stable patch release makes cloud sync recovery more robust, fixes a confusing situation with files added on another device, and polishes the Distiller and macOS fullscreen experience.
🐛 Bug Fixes
Files Added on Another Device No Longer Block the Distiller
File contents intentionally stay on the device where you added them — only the project metadata syncs. Previously, a file added on your other device still showed up in this device's intake queue, and asking the Distiller to review it produced empty or misleading results.
What Changed:
- The Distiller only queues files that actually exist on the current device.
- In the intake list, such files are greyed out with a hint that they live on another device — review them there, or ignore them here (ignoring syncs and clears the signal everywhere).
- The pending-updates badge now counts only what you can actually review on this device.
User Benefit: No more empty AI reviews or stuck-looking intake items when you work across multiple devices.
More Reliable Recovery for Quarantined Sync Records
Retrying a quarantined encrypted record from the sync issues list is now properly coordinated with background sync activity.
What Changed:
- A manual retry can no longer run at the same time as a background download, which previously could make both fail with confusing errors.
- If the retry fails, it now reports the actual error instead of showing success.
- Records that were already up to date locally now clear their quarantine entry correctly, instead of staying stuck in the issues list forever.
- A harmless nightly server maintenance job no longer floods the logs with thousands of false "potential replay" security warnings.
User Benefit: Sync issues you retry now either resolve for real or tell you clearly what went wrong.
macOS: Fullscreen Header Spacing
In fullscreen mode, macOS hides the window traffic-light buttons — but the header still reserved space for them, leaving an odd gap next to the logo.
What Changed:
- The header margins now collapse while in fullscreen and come back when you leave it.
User Benefit: A cleaner, better-aligned header in fullscreen on macOS.
🏗️ Improvements
Smoother Distiller Card Transitions
The Distiller proposal carousel now follows the height of the card you are looking at, instead of staying as tall as the biggest card you have seen.
What Changed:
- Switching to a shorter proposal card no longer leaves an empty gap below it.
- After you finish reviewing a batch, the chat smoothly reflows upward instead of jumping.
User Benefit: Reviewing AI proposals feels calmer and wastes less screen space.
📝 Notes
- The matching sync-backend update (stricter batch rate limiting and faster failure handling for expired sessions) was deployed ahead of this release.
- Local-first behavior is unchanged: your work is never blocked by connectivity.
📅 Release Info
- Version: 1.14.3
- Release Date: 2026-07-02
- Previous Version: 1.14.2
- Type: Patch Release (Stable)
v1.14.2
TensorPM v1.14.2
June 30, 2026
Changelog - v1.14.2
This stable patch release makes cloud sync faster and lighter, with no changes to how your projects look or behave.
🏗️ Improvements
Faster, More Efficient Cloud Sync
Cloud workspaces now upload local changes in batches and avoid re-sending data that hasn't actually changed.
What Changed:
- Pending changes are grouped and uploaded together instead of one request per change, reducing round-trips on busy edits.
- Unchanged rows no longer trigger a redundant server write, which keeps the sync history smaller and initial sync fast for new devices.
- Server-side database indexes were added so sync queries stay quick as workspaces grow.
- If batched upload isn't available for any reason, sync automatically falls back to the previous per-change path, so reliability is unaffected.
User Benefit: Cloud sync uses less bandwidth and feels snappier, especially when making many edits at once or setting up TensorPM on a new device.
📝 Notes
- These changes are internal to the cloud sync engine; local-first behavior is unchanged and your work is never blocked by connectivity.
- The matching sync-backend update (batch endpoint + performance indexes) was deployed ahead of this release.
- Full Playwright E2E tests were intentionally skipped for this focused patch. TypeScript checks, ESLint, the full unit suite, and the PowerSync sync integration tests all passed.
📅 Release Info
- Version: 1.14.2
- Release Date: 2026-07-01
- Previous Version: 1.14.1
- Type: Patch Release (Stable)
v1.14.1
TensorPM v1.14.1
June 30, 2026
Changelog - v1.14.1
This stable patch release fixes a startup crash that could affect users upgrading to v1.14.0 with older local file-reference data.
🐛 Bug Fixes
Startup Migration Recovery
TensorPM now handles orphaned legacy file-reference rows during the v39 file-ID convergence migration.
What Changed:
- Local orphaned file-link rows are removed before the migration rewrites dashed file IDs to canonical 32-hex IDs.
- The cleanup is local-only and does not create pending server deletes.
- Valid file metadata and physical project files are left untouched.
User Benefit: Users with older local databases can launch TensorPM normally after upgrading, instead of hitting a foreign-key migration crash on startup.
📝 Notes
- This is a focused hotfix for the v1.14.0 stable release.
- Full Playwright E2E tests were intentionally skipped for this patch release.
- Unit migration coverage, TypeScript checks, and local production-app startup validation were completed.
📅 Release Info
- Version: 1.14.1
- Release Date: 2026-06-30
- Previous Version: 1.14.0
- Type: Patch Release (Stable)
v1.13.2
TensorPM v1.13.2
June 29, 2026
Changelog - v1.13.2
This stable patch release improves file reliability in cloud workspaces and makes the Intake and File Explorer surfaces more consistent after sync.
🐛 Bug Fixes
Reliable File References After Sync
TensorPM now repairs legacy file references that used older dashed identifiers.
What Changed:
- File links in project files, action item attachments, recurring item files, and expense attachments are normalized to the canonical file ID, and are resolved reliably everywhere they are read.
- Existing duplicate project-file links are merged so paths and AI evaluation state are preserved while only one active file entry remains visible.
- Download sync now rewrites incoming legacy dashed file references before generating local synthetic IDs.
User Benefit: Files no longer appear as duplicates or lose their attachment relationship after syncing older workspace data.
Accurate File Status Indicators
File Explorer status badges now match file activity by stable file ID while remaining compatible with legacy history entries.
What Changed:
- Summarization and distillation status now prefer file IDs instead of only file names.
- Legacy activity history rows with dashed file IDs are normalized during migration and matched defensively in the UI.
User Benefit: Files with the same name show the correct processing or summary status, and old history entries keep working after the file-ID cleanup.
Idempotent Intake Ignores
Ignoring the same intake source more than once no longer creates sync conflicts.
What Changed:
- Repeated ignore actions for the same project, source, visibility scope, and owner now update the existing ignore row instead of inserting a duplicate.
User Benefit: Dismissed files, emails, and updates stay dismissed without noisy duplicate-row errors.
🏗️ Improvements
Safer File Path Reactivation
Re-adding a file path now reactivates the existing project-file row when one is available.
User Benefit: Files that were previously hidden or removed can return to the File Explorer cleanly when they are detected again.
📝 Notes
- This is a stable patch release for the 1.13.x line.
- The database schema version is updated to 38 to run the file reference cleanup.
- E2E tests were not part of this focused patch validation.
📅 Release Info
- Version: 1.13.2
- Release Date: 2026-06-30
- Previous Version: 1.13.0
- Type: Patch Release (Stable)
v1.13.0
TensorPM v1.13.0
June 29, 2026
Changelog - v1.13.0
The first stable release on the 1.13.0 line. It brings the new subscription model to everyone on the stable channel, adds an in-app update-channel switch, makes chat file attachments more transparent and reliable, and rolls up the stability and dependency work from the 1.13.0 beta.
🎉 New Features
New Subscription Plans: Trial, Pro & Business
TensorPM moves to a simpler, clearer plan lineup that matches the pricing live on tensorpm.com.
What Changed:
- Free is now Trial — the same local-first power, with a one-time allowance of 2,000,000 AI credits and no time limit. Trial never expires; you use the credits at your own pace.
- Pro — cloud sync plus 10,000,000 AI credits every month, €99/month or €990/year. Pro keeps 1 active project open, with unlimited archived projects.
- Business — for teams: a shared credit pool, cloud sync, and the option to use your own AI provider keys (BYOK).
User Benefit: Fewer choices to make, a clearer upgrade path, and a free Trial that is never blocked by a countdown — only by how much hosted AI you use.
Bring-Your-Own-Key Is Now a Business Feature
Using your own provider API keys (OpenAI, Anthropic, …) is now part of the Business plan.
What Changed:
- API-key entry is available on Business only; Trial and Pro use TensorPM's hosted AI.
- The AI settings clearly reflect which providers are available for your plan.
User Benefit: A more predictable, supported AI experience on Trial and Pro, with full BYOK flexibility reserved for Business teams.
Choose Your Update Channel
You can now pick how TensorPM updates itself, directly in Settings → General.
What Changed:
- A new Update Channel option lets you stay on Stable (production-ready releases only) or opt into Beta (early features, may include rough edges).
- An inline tooltip explains exactly what each channel delivers.
User Benefit: Stay rock-solid on Stable, or jump to Beta when you want to try new features early — your choice, no reinstall required.
See What Happens to Your Chat Attachments
Files you attach to a chat now show their processing state inline.
What Changed:
- Chat attachments display a clear processing / summarized / failed status while TensorPM reads and summarizes them.
User Benefit: You can tell at a glance whether an attached document or image has been understood by the assistant before you rely on it.
🐛 Bug Fixes
Attached images are reliably seen by the assistant
In some cases an image attached in chat was not delivered to the AI — the assistant replied that it could not see any image, even though the file was clearly attached (TPM-0012).
What was happening:
- When an image's local file record had no resolvable path for the current project (for example after content-deduplication on a cloud workspace), the attachment was silently dropped from the request, so no provider — hosted or your own — ever received the picture.
What's fixed:
- ✅ The image is now loaded from its actual location in the project folder as a fallback, so it reaches every vision-capable provider.
- ✅ If a file genuinely is not on disk, it is skipped cleanly instead of producing a misleading "no image" answer.
User Benefit: Drop an image into the chat and the assistant actually sees it.
🏗️ Improvements
Clearer Pro Project Limit
Pro now shows "1 of 1 active project" the same way Business shows its limit. Archive a project to free up the slot — archived projects stay unlimited, and reactivating one is only possible when it keeps you within the limit.
Simpler In-App Billing
Credit top-ups, auto-top-up, and paid seat purchases have been removed from in-app billing. Pro is the single self-service subscription (monthly or yearly).
Cloud Sync Reconnects Cleanly When Switching Workspaces
Switching between cloud workspaces now restarts PowerSync and refreshes the sync status, so your sync state is always accurate after a switch.
Stability, accuracy & dependencies
- More accurate update-status handling behind the new channel switch.
- Internal install/identity and sync-entitlement handling hardened for the new plan model (legacy plan values continue to be treated safely as Trial).
- Refreshed production and development dependencies for security and stability.
📝 Notes
- This is a stable minor release that promotes the 1.13.0 line — including the new subscription model — to the stable channel, in sync with the updated pricing and account area on tensorpm.com.
- Pro vouchers (for redeeming pre-paid Pro time) are entered in your account area on the website.
- Unknown or legacy plan values are treated safely as Trial until your account token refreshes.
📅 Release Info
- Version: 1.13.0
- Release Date: 2026-06-29
- Previous Version: 1.12.7
- Type: Minor Release (Stable)
v1.12.7
TensorPM v1.12.7
June 27, 2026
Changelog - v1.12.7
🐛 Bug Fixes
Cloud Sync no longer gets stuck after moving a project between workspaces
Moving a project into a different workspace (or renaming a project's folder) could silently break Cloud sync. Once that happened, all pending changes — across every workspace, including file uploads and chat — stopped syncing and the queue kept growing in the background, even though the app showed no obvious error.
What was happening:
- A project move was rejected by the server and quietly dropped, leaving the project in its old workspace on the server.
- Every later change to that project was then refused, and because uploads are processed in order, that one blocked change held up the entire upload queue indefinitely.
What's fixed:
- ✅ Project moves and folder renames now sync correctly.
- ✅ A single rejected change can no longer block everything else — the app recognizes it, sets it aside, and keeps the rest of your data flowing.
- ✅ Genuine "a project with this folder already exists" conflicts now surface as a clear, specific message instead of a generic failure.
User Benefit: Your Cloud workspaces stay reliably in sync, even after reorganizing projects across workspaces.
🏗️ Improvements
Better sync diagnostics
- The built-in sync health check now correctly recognizes a stalled upload queue based on how long changes have actually been waiting, instead of under-reporting it.
- Support bundles now report accurate per-table breakdowns of the pending upload queue, making future sync issues much faster to diagnose.
📝 Notes
This is the first stable release on the 1.12.x line. The sync server fix is already live; this app update completes the fix on the client side.
📅 Release Info
- Version: 1.12.7
- Release Date: 2026-06-27
- Previous Version: 1.12.7-beta.1
- Type: Patch Release (Stable)