TensorPM v1.4.0-beta.1 (Beta)
Pre-releaseChangelog - v1.4.0-beta.1
This beta release contains all TensorPM desktop changes since the last existing
release tag, v1.3.0-beta.1.
There is no separate local tag for v1.3.0-beta.2; the already committed
CHANGELOG-v1.3.0-beta.2.md work is therefore included in this cumulative
minor beta.
Release Scope
- Previous release tag:
v1.3.0-beta.1 - New release version:
1.4.0-beta.1 - Release type: beta minor
- Release date: May 18, 2026
- Playwright E2E policy for this release: already run manually before release;
intentionally skipped by the release script via--skip-e2e
Highlights
What Users Will Notice
This beta is a broad product release, not a narrow patch. The biggest visible
changes are:
- A new project Skills system for reusable, project-local automations.
- Sandboxed code execution for approved skills and AI-generated artifacts.
- A new Material Panel for construction/procurement style project work.
- Material-aware AI behavior that keeps normal chat lightweight while still
allowing approved Distiller applies to update material items precisely. - A much stronger Distiller v2 review workflow for raw updates.
- Decision proposals in Distiller and richer decision rendering in the Trail.
- AI panel docking/history improvements.
- Render/HTML/vision foundations for generated visual artifacts.
- Preferred-language hints so German UI users get more consistently German AI
output. - Better documentation screenshot coverage for onboarding and project views.
The internal platform also changed substantially: typed IPC/domain APIs,
shared guidance types, provider context-window routing, cache/logging fixes,
and broader test coverage are all part of this beta.
Project Skills and Sandboxed Code Execution
TensorPM now has a project-local Skills system backed by sandboxed Deno
execution. Skills can package instructions, scripts, templates, and reusable
automation in a controlled project context.
Implemented capabilities:
- Project-local skill discovery and registry support.
- Skill manifests with schema validation.
- Skill permission modeling and approval storage.
- Runtime trust checks before skill execution.
- Deno-based sandbox engine for controlled script execution.
- Code-execution AI tool module and executor.
- Artifact storage for generated files.
- Project export support for skill-generated artifacts.
- TPM SDK runtime/source generation for skills.
- Vendored sandbox libraries for document, PDF, presentation, and spreadsheet
generation. - Smoke scripts for code execution and sandbox library verification.
- Windows packaging support for Deno fetching/signing verification.
- File Explorer skill badges and validation state.
- Skill Catalog modal for install/update flows.
- Skill installation with checksum verification and bundled template support.
- Default effort-estimator skill template.
- Documentation for the code-execution and skills architecture.
Hardening added after review:
- Tighter install-time trust validation.
- Tighter runtime trust boundaries.
- Additional permission and manifest tests.
- Skill lifecycle E2E coverage.
- Catalog service tests.
- Skill installer regression tests.
- Skill trust and artifact export regression tests.
- Sandbox library metadata tests.
Render, HTML, Inline Image, and Vision Tooling
This release adds the foundation for AI-generated render artifacts and
vision-assisted render review loops.
Implemented capabilities:
- Render tool definitions and render tool module.
RenderExecutorfor HTML/PDF-like render workflows.RenderServicebackend support.- CSP meta injection for rendered HTML.
- PDF margin parsing helpers.
- Inline image extraction from AI/tool content.
- Chat message conversion support for inline image handling.
- Model vision capability checks.
- Render asset directories for fonts, icons, and libraries.
- Local-AI render E2E scenarios:
- text-only HTML render
- render HTML tool flow
- render HTML plus vision loop
Test coverage added:
- Render executor unit tests.
- Inline image extraction tests.
- Chat message converter inline image tests.
- CSP injection tests.
- PDF margin parsing tests.
- Model vision support tests.
Material Management Foundation
Material management is now a first-class project area for procurement-heavy
projects such as construction and renovation.
Implemented backend/data capabilities:
- New material item database schema and repository.
- Migrations:
027-add-material-items028-add-material-item-hierarchy029-add-material-settings
- Material hierarchy support.
- Material settings validation.
- Material repository CRUD support.
- Material loading through project database services.
- Material fields in
Projectand database types. - Material AI context builder.
- Material agent service.
- Material prompt generator.
- Material tool types and definitions.
- Material IPC handler.
- Material domain preload API.
- Material sync-facing metadata.
Implemented frontend capabilities:
- Budget-area Material Panel.
- Material Redux slice and thunks.
- Material item list controls.
- Material status and hierarchy UI support.
- Material-specific i18n strings in English and German.
- Material panel tests.
- Material slice tests.
- Material list Playwright coverage.
Implemented AI behavior:
- Normal chat routes material changes through
material_agent. - Distiller approved apply phases can use atomic material write tools.
- Atomic material tools are hidden from normal chat tool definitions.
- Normal chat context filtering strips raw material arrays so large material
projects do not flood regular chat turns.
Material bug fixes included before release:
material_save_itemandmaterial_delete_itemare now executable when
Distiller Phase 2 offers them.material_save_itempartial updates no longer wipe existing metadata such as
category, waste factor, revision, source file, or verification timestamp.- Creates with an empty string
idnow generate a UUID instead of failing as a
missing ID. - Post-write normal chat refreshes keep material context boundaries intact.
Distiller v2 Review Flow
The Distiller was significantly expanded into a stronger human-in-the-loop
review and apply pipeline for raw updates.
Implemented flow changes:
- Pre-check phase for clearly irrelevant signals and large-project field
selection. - Hard reject remains supported for clearly irrelevant pre-check results.
- Provider-aware dynamic safe-budget routing instead of a fixed 160k token
threshold. - Safe budget now uses active provider/model context window multiplied by the
configured safe-budget fraction. - The
safeBudgetFractionsetting is now wired into actual routing behavior. - Per-update review context isolation.
- Deterministic append handling.
- Deterministic skip/reject/apply completion handling.
- Combined final review and completion gate.
- Final gate naming changed away from "repair" wording for normal completion.
- Fresh revisit memory for skipped updates.
- Stale proposal/presentation history is stripped before apply turns.
- Distiller history helpers now avoid leaking unrelated proposal cards into the
next raw update's context. - Detailed Markdown audit reports for Distiller E2E review.
- A German explanatory document for the Distiller flow.
Implemented Distiller tool and prompt changes:
- New pre-check prompt generator.
- Pre-check tool schema and parser.
- Distiller pre-check routing types.
- Project metadata summary support for routing.
- Small-model provider selection helper.
- Distiller prompt updates for multi-phase review/apply/finalization.
- Distiller tool definitions for decision proposals.
- Distiller field configuration updates.
- Strict Distiller tool definition tests.
Implemented Distiller E2E coverage:
- Full coverage local-AI scenario.
- Full coverage non-local scenario.
- Distiller decision proposal scenario.
- No-signal deterministic scenario.
- Distiller v2 scenario suite with realistic project seeds.
- Shared Distiller helper utilities.
- Distiller v2 README for scenario intent and review workflow.
Important behavior decisions:
- Raw updates are treated as isolated review units; proposal history from one
raw update should not become implicit context for another. - Append is deterministic; the AI does not need to implement append mechanics.
- If a turn only skips/appends/rejects, the flow still reaches the final review
and completion gate where appropriate, without framing normal completion as a
repair. - Prompt-injection wrapping for raw signal content was intentionally not added
for this local release path.
Decision Lifecycle Support
Decisions are now better represented in Distiller review and project context.
Implemented capabilities:
- Distiller decision proposals.
- Decision review card rendering.
- Trail rendering for decision fields.
- Decision field renderer.
- Distiller executor support for decision-related fields.
- Decision Trail workflow regression coverage.
- Decision field UI tests.
- Decision proposal E2E scenario.
API/MCP shape changes:
- Decision writes remain explicit write operations.
- The old
list_decisionsMCP tool path was removed; decisions are expected to
be read through project context and changed through explicit decision tools. - Decision MCP/tool references were adjusted accordingly.
Typed IPC and Domain API Modernization
The renderer/preload boundary was reorganized toward typed domain namespaces.
Implemented changes:
- New domain channel definitions.
- New domain service types.
- Preload domain service implementation.
- Typed
window.apidirection for domain areas. - IPC boundary check script.
- Related updates across frontend services, thunks, settings, file explorer,
sync, project settings, AI panel, and subscription flows.
Benefits:
- Clearer renderer/backend API surfaces.
- Less reliance on a large flat preload API.
- Better foundation for future IPC boundary checks.
Guidance and Shared Type Foundations
Guidance-related types and utilities were moved toward shared modules so both
backend and frontend code can use the same definitions.
Implemented changes:
- Shared guidance type definitions for context, strategic, coverage, and
execution guidance. - Shared AI configuration module.
- Shared markdown converter placement.
- Backend sync preference module placement.
- Chat context filters, history sanitizer, and token accounting helpers.
- AI text formatter relocation.
- Store/root reducer type cleanup.
- Guidance validator/generator import updates.
AI Panel Docking and History
The AI panel received a larger docking/history update.
Implemented changes:
- Docked and detached AI panel state handling.
- AI panel context improvements.
- AI panel styling updates.
- Recent chat/history handling improvements.
- Chat panel integration updates.
- English/German i18n entries for the updated panel behavior.
- AI panel docking Playwright coverage.
- AI panel context unit tests.
Preferred Language Hinting
When the user selects German UI, AI prompts now receive a preferred-language
hint.
Implemented changes:
- User-context directive helper for language preference.
- Base chat prompt language hinting.
- Base action-item prompt language hinting.
Image Processing and Tool Call Persistence
Chat and Distiller state handling now better preserves richer message content
and interrupted tool-call state.
Implemented changes:
- Enhanced image processing in chat message handling.
- Tool call persistence improvements in chat state.
- Distiller service updates for persisted tool calls.
- Chat cancellation/stream interruption coverage.
- Chat slice tests for the persisted state shape.
Proxy and Error Handling
Proxy error behavior was tightened for server-side failures.
Implemented changes:
- Improved 5xx handling in
ProxyErrorHandler. - Improved 5xx handling in
ProxyHttpClient. - Regression coverage around proxy HTTP error handling.
Documentation Screenshot E2E Coverage
New documentation screenshot scenarios were added for product documentation and
visual regression material.
Implemented coverage:
- Onboarding screenshot flow.
- Project view screenshot flow.
- Updated project data in screenshot scenarios.
- Decision handling in documentation screenshot scenarios.
Dependency and Toolchain Updates
This release includes multiple dependency maintenance batches.
Included updates:
- Development dependency group updates across root and E2E packages.
- Production-minor dependency group updates.
protobufjssecurity/patch bump.@protobufjs/utf8patch bump.mermaidbump from11.14.0to11.15.0.@github/copilotbump from1.0.36to1.0.45.- Addition of render/sandbox/build dependencies for new functionality.
- ESLint configuration changes needed by the refactors.
- TypeScript config updates for the sandbox/render additions.
Detailed Fixes
Distiller
- Fixed stale review cards leaking into later apply/final turns.
- Fixed skipped updates missing fresh revisit memory.
- Fixed final completion wording so normal final review is not described as a
repair-only step. - Fixed material write tools being offered by Phase 2 but rejected by execution
validation. - Fixed material write tools being visible in normal chat.
- Fixed normal chat reintroducing raw material items after a write refresh.
- Fixed Distiller routing to use dynamic model-aware safe budgets.
- Fixed pre-check token/credit logging to use actual provider/model metadata.
- Fixed
safeBudgetFractionbeing configured but unused. - Fixed unsupported Mistral prompt-cache-key expectations.
- Added central first-token timeout increase for longer Distiller/Claude turns.
Materials
- Fixed partial material updates causing metadata loss.
- Fixed empty-string material IDs during approved creates.
- Fixed material context filtering after project refresh.
- Added regression tests for direct material tool execution and metadata
preservation.
Skills
- Fixed review issues around install-time trust boundaries.
- Fixed review issues around runtime trust checks.
- Reformatted vendored sandbox bundles consistently.
- Strengthened skill validation and lifecycle test coverage.
UI and Styling
- Fixed coverage split layout margin on desktop and mobile.
- Updated AI panel docking layout and history behavior.
- Added Material Panel styling.
- Added Distiller decision/proposal styling.
- Updated Trail rendering for decisions.
- Updated File Explorer skill badge/status rendering.
Tests and Infrastructure
- Split and expanded large ActionItemExecutor tests.
- Added focused
executeUpdateFieldsregression coverage. - Added helper for single-column migration tests.
- Reworked several legacy tests to match newer sync, IPC, and store behavior.
- Added render local-AI E2Es.
- Added Distiller full-coverage E2Es.
- Added documentation screenshot E2Es.
- Added material UI and store coverage.
- Added provider cache integration tests for ChatGPT, Claude, and Gemini.
Compatibility and Deployment Notes
Material Sync Deployment
The material database migrations introduce new material tables/settings. For any
desktop build that relies on synced material data, deploy the corresponding
server-side sync SQL first.
Required order:
- Apply the material sync SQL on the sync backend.
- Compact/verify sync deployment.
- Verify staging sync behavior.
- Ship the desktop binary.
MCP Decision API Shape
External MCP clients should no longer rely on the removed list_decisions
tool. Decisions are part of project context and should be changed through
explicit decision tools.
E2E Policy
Full Playwright E2E was intentionally not repeated inside the release command
for this beta because the local Distiller and related E2E runs had already been
performed and reviewed manually before release preparation.
Known Follow-Up Areas
These are not blockers for this beta but remain useful follow-up work:
- Cache discipline improvements for provider tool/system prompt caching.
- Further extraction of
chatService.streamInstanceMessage. - Additional unit coverage around Distiller routing branches.
- Consolidation of duplicated material status constants.
- MCP API version/changelog note for external clients affected by decision tool
changes.