TensorPM v1.15.0
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