TensorPM v1.8.1-beta.1 (Beta)
Pre-release
Pre-release
Changelog - v1.8.1-beta.1
This patch beta covers all changes since v1.8.0-beta.1. It improves connector
project assignment, intake exclusions, Distiller review fidelity, local agent
execution, demo data quality, and release-readiness fixes.
New Features
Multi-Project Email Connectors
- Email connectors now use
projectIdsinstead of a singleprojectId, so one
mailbox can be assigned to multiple projects. - Existing email connectors with legacy
projectIddata are migrated in memory
into the newprojectIdsshape when loaded. - Duplicate email connector detection now checks overlapping project
assignments instead of blocking every connector with the same email address. - Email connector sync, ingest, mail context, setup forms, connector overview,
and connector status indicators all understand multi-project assignments. - The email connector setup form now shows project checkboxes instead of a
single project select. - Connector overview details can display multiple assigned project names.
- A renderer helper normalizes connector project IDs before UI components use
them.
Local Gmail Connector Bootstrap
- Added a development-only connector bootstrap service that can create or update
a Gmail connector from environment variables. - Gmail app passwords from the environment are imported into secure storage
rather than persisted in connector JSON. - Existing matching connectors can have their project assignments reconciled
from the environment. - Packaged builds explicitly skip this bootstrap path to avoid surprising
end-user connector provisioning. .env.exampledocuments the Gmail connector bootstrap variables.
Folder-Level Intake Exclusions
- File Explorer can now exclude an entire folder from distillation.
- Files nested under an excluded folder are hidden from pending distillation
queries. - Folder ignores support workspace/private ignore semantics through the same
intake ignore path as files, emails, documents, and Telegram messages. - Ignored folders show visual ignored-status badges in list and grid views.
- Including a file or folder now targets the deepest matching ignore entry, so
nested folder ignores can be removed correctly. - Intake ignored-item lists now display folder names and include folders under
the file source filter.
Structured Distiller Review Cards
- Distiller can present newly proposed action items, people, and material items
as structured entity cards instead of plain text. - Entity cards show a title plus typed attributes such as status, due date,
owner, and priority. - Status attributes reuse the same visual status symbols as the action item
list. - Table-like fields, including requirements, technologies/methods, milestones,
and risks, now render as compact green/red table diffs. - Prose fields such as description, goal, scope, and dependencies now render as
stacked text diffs instead of squeezed inline pills. - Source review cards now show clearer source type badges for files, documents,
emails, MCP updates, chat updates, and other sources. - Image sources can render inline previews when the local source file is
available. - File-like sources can be opened from the Distiller review card when TensorPM
can resolve the source path. - Long source quotes collapse when the proposal already has visible structured
content.
Brave Search Key Management
- Brave Search now participates in the shared API key initialization/checking
flow. BRAVE_SEARCH_API_KEYcan be imported into secure storage at startup.- The all-provider API key check now includes Brave.
- Environment logging now reports Mistral and Brave key presence without
exposing secrets. - Brave Search availability now depends on a validated stored Brave key, matching
the secure-storage behavior used by other providers.
Construction Demo Metrics
- The construction SharePoint demo seed now assigns role groups based on seeded
person roles. - Demo projects now include AI+ project health and progress evaluations with
status, percentage, trends, confidence, and reasoning. - Seeded projects and action items now default to the AI+ view where appropriate.
- The demo seed can read
.envand.env.local, supporting the new local Gmail
connector bootstrap workflow.
Improvements
Distiller Proposal Fidelity
- The Distiller tool schema now documents when to use
proposedEntity,
proposedChanges,decisionPlan, and free text. proposedEntityis accepted only for action items, people, and material items.- Table fields are rejected when sent as generic entity cards and receive a clear
repair message telling the model to use cell-levelproposedChanges. - Structured entity proposals are flattened into readable legacy trail text when
a plain-content fallback is needed. - Distiller prompt guidance was tightened so table rows and cells stay in the
review format users expect. - The review carousel fingerprints structured proposals with
operationand
proposedEntity, so changed cards reset stale approval decisions correctly. - Hidden approval payloads now preserve
operationandproposedEntitythrough
the apply phase. - Backend history enrichment now merges missing proposal payload fields from the
originalpresent_distillatecall into partial hidden approval payloads. - Decision-plan proposals continue to preserve their write-plan details through
the approval flow.
Distiller and Trail Rendering
- Structured Distiller proposal objects no longer fall back to raw JSON display.
- Action item diff cards strip rich-text HTML from description-like fields before
showing changes. - Action item assignment diffs render avatar stacks where possible.
- Action item deletion trail events now include deleted item summaries when the
tool response provides them. - People edit proposals highlight newly added labels and custom roles.
- Person fields with structured changes avoid duplicate full-person rendering.
- Empty placeholders such as
-,(), and[]are treated as missing values
instead of being shown as removed content. - Distiller card action menus now size to localized labels and include the
localized Skip label in English and German. - Approved, appended, skipped, and rejected Distiller cards now use full-card
state tinting rather than only a left border.
Intake and File Review Usability
- Pending file rows in the intake indicator now use a stable two-line layout
with the file name above the date. - Long file names now show ellipses correctly instead of being hard-cut.
- File hover tooltips show the full filename, date, size, and description.
- File icons are vertically centered against the updated two-line layout.
- Virtualized pending-file row estimates were adjusted to reduce resize flicker.
- Folder ignore helpers centralize path normalization and folder containment
checks so File Explorer, status hooks, and store updates share the same
semantics. - Dashboard chat and welcome-context layout were adjusted to work with the new
intake state.
Local Agent Execution
- Local Codex standard runs now use the current workspace-write sandbox flag and
approval mode expected by the current Codex CLI. - Full Codex runs still use the explicit bypass mode selected by the user.
- Headless Codex runs continue to capture the final answer through the last
message output file. - Interactive Codex argument generation is exposed for compatibility coverage.
- Local CLI smoke coverage now checks Codex and Claude Code command generation.
AI Tooling and Prompt Context
- Person updates now accept common field aliases such as role, roleGroups,
email, phone, labels, and German phone labels. - Person update arguments are normalized so scalar, array, role group, and
influence values are coerced before persistence. - Person references can be resolved by name or ID before updates are applied.
- Action item deletion responses now include deleted item summaries for better
audit trail output. - Tool name aliases are resolved before tool trace and trail tracking, so
aliased tool calls are tracked under their canonical tool names. - Project/user prompt context now resolves the current language from explicit UI
settings, Electron locale, process locale, or Intl locale. - German language preference now emits a stronger instruction to write all
user-facing text in German. - Project welcome context cache invalidation now compares against the resolved
language rather than the rawsystemsetting. - Connector/project context in prompts now reflects the new multi-project email
connector model.
Runtime and Document Processing
- The renderer now displays a clear Electron-runtime-required screen when opened
without the preload IPC API, instead of failing silently from a plain Vite URL. - SheetJS document processing now binds Node filesystem APIs for ESM usage, which
fixes spreadsheet reads that previously failed with "Cannot access file" for
valid paths. - MCP action item updates no longer re-apply the
[AI]creation prefix when
editing an existing item.
Fixes
- Fixed folder-source matching for Windows-style backslash paths in intake
pending-file queries. - Fixed an escaped-character lint issue in an intake SQL comment.
- Fixed Distiller approvals that could show structured entity details in review
but drop the structured payload before applying. - Fixed schema/prompt drift where table fields could be proposed as generic
entities even though they must be reviewed as row/cell diffs. - Fixed connector status and sync blocking logic for email connectors assigned to
multiple projects. - Fixed connector repository duplicate checks so connectors with the same email
are allowed when their project assignments do not overlap. - Fixed project welcome context language handling for
systemlanguage mode. - Fixed Brave Search error guidance to point to validated settings or startup
environment import.
Tests
Added or updated regression coverage for:
- Multi-project connector config normalization, duplicate detection, IPC, sync,
ingest, mail service, connector overview, connector indicator, and email setup
behavior. - Connector environment bootstrap creation, credential import, reconciliation,
incomplete environment handling, and packaged-build safety. - Folder ignore visibility in pending email/file intake queries.
- Distiller prompt guidance, structured entity approval payload preservation,
partial hidden approval payload enrichment, decision-plan preservation, and
invalid table-fieldproposedEntityrejection. - Distiller executor support for entity-only action item/person/material
proposals. - Distiller carousel behavior and Trail rendering for action item and people
diffs. - Brave API key initialization, availability, and executor behavior.
- Document processor ESM filesystem binding.
- Person executor argument normalization and alias handling.
- Tool name alias tracking.
- User language resolution from settings and locale fallbacks.
- Material panel and connector frontend behavior touched by the connector model
change. - Local Codex and Claude Code CLI compatibility.
Notes
- No explicit database migration is required; legacy email connector
projectId
values are normalized when connector configs are loaded. - This beta release intentionally skips the full Playwright E2E suite during
release, per release request. - Unit tests, typecheck, lint, and the release AI smoke test remain part of the
release gate. - The local release baseline is
v1.8.0-beta.1; no separatev1.8.0tag exists
in this checkout.
Release Info
- Version: 1.8.1-beta.1
- Release Date: May 30, 2026
- Previous Version: 1.8.0-beta.1
- Type: Patch Beta