Skip to content

TensorPM v1.5.1-beta.1 (Beta)

Pre-release
Pre-release

Choose a tag to compare

@Neo552 Neo552 released this 19 May 23:30
· 75 commits to main since this release

Changelog - v1.5.1-beta.1

A patch release that re-ships v1.5.0-beta.1 to platforms that didn't
actually receive it
— most importantly macOS — together with a small
Telegram polish and a hardening fix to the release pipeline itself.

If you're on v1.3.0-beta.1 (the last build with a successfully signed
and notarized macOS DMG) and your update check has been telling you you
"have the latest version", this release is the one that gets you back
onto the current train.

📝 Why this release exists

v1.4.0-beta.1, v1.4.0-beta.2, and v1.5.0-beta.1 all completed
their macOS notarization, but the subsequent electron-builder --mac zip
step ran into the 20-minute step timeout on the CI runner. The build job
failed without producing a .dmg / .zip, but the release job ran
anyway (it was wired to !cancelled()), so the GitHub Release was
published with Windows and Linux assets and no macOS bundle.

The proxy update feed served the macOS YAML from the last release that
actually had a DMG, which was v1.3.0-beta.1 — so the desktop app's
update checker correctly reported "no newer version" to every Mac user
on ≥ v1.3.0-beta.1.

This release fixes both halves:

  1. Hardened CI pipeline — see "Build & Release Pipeline" below.
  2. A fresh tag that actually ships on every platform — once this
    build is green, the proxy update feed picks up the new macOS DMG and
    v1.3+ Mac users start seeing the update.

🎉 Carry-forward from v1.5.0-beta.1

For users on v1.3.0-beta.1 (or v1.4.x on Windows / Linux) this is
their first time seeing these changes. The full v1.5.0-beta.1 changelog
applies as-is:

  • Telegram connector — the second full citizen of the connector
    framework (alongside Email). Bot-per-workspace setup, project-scoped
    invite links, self-introduction handshake, per-link tool policies,
    slash commands, full DE/EN UI. Migration 030-add-telegram-intake
    adds three local-only tables (telegram_invites, telegram_links,
    telegram_messages_local) — all excludeFromSync: true, so no
    TensorPMSync schema change is required.
  • Default model bumped to Gemini 3.5 Flash (GA) for both BYOK
    Google and the proxy backend. Stale gemini-3-flash-preview and
    gemini-3.1-flash-lite-preview preferences are silently migrated to
    the new default by AppSettingsRepository.
  • Credit summary moved into Redux (creditsSlice +
    creditsListener middleware). The header credit pill now refreshes
    itself when a chat stream finishes; no more stale balance after
    checkout or after a long chat session. Eliminates the
    "credit-summary 401 storm on logout" pattern previously observed in
    dev logs.
  • Telegram-aware chat rendering — messages originating from
    Telegram get the contact's avatar + display name, and a small
    "Telegram" source indicator, without confusing the alignment of the
    streaming-message component.
  • Connector framework un-frozenConnectorType widened to
    'email' | 'telegram', ConnectorConfig is now a discriminated
    union, intake routing and the IntakeIndicator handle cross-connector
    grouping. The next connector (PlanRadar / Capmo / Procore / Slack /
    Calendar) no longer needs a framework rewrite.

For the full per-area breakdown — security model, agent prompt
generators, tool registration, follow-up gaps — see
CHANGELOG-v1.5.0-beta.1.md. Nothing in
that document was rolled back; everything in it ships here.

The v1.4.0-beta.2 content (Materials, Distiller review-flow
stabilisation, AI smoke gate, additional Distiller proposals for
Decisions) also ships here for any platform that missed it — see
CHANGELOG-v1.4.0-beta.2.md.

🏗️ Improvements

Telegram Message Markdown — Rendering & Stripping

TelegramConnectorService learned to handle Markdown on the wire more
gracefully:

  • Outbound agent replies are rendered through a Telegram-flavoured
    Markdown formatter so headings, bold, lists, code blocks, and links
    arrive on the user's phone as proper Telegram-formatted messages
    instead of raw **foo** artefacts.
  • Inbound user messages have Markdown control characters stripped
    before they enter the intake pipeline, so a copy-pasted email or a
    formatted note from another tool doesn't confuse downstream
    distillation.
  • New unit coverage in telegramConnectorService.test.ts (53 lines)
    locks down both directions.

Build & Release Pipeline

The CI pipeline that ships the desktop binaries got two fixes that
should prevent another silent-Mac-failure pattern:

  • macOS build step timeout raised from 20 → 30 minutes in
    .github/workflows/build.yml. The notarization itself only takes a
    couple of minutes, but the post-notarization
    electron-builder --mac zip --prepackaged step on the GitHub-hosted
    macos-latest runner has been running close to (and occasionally
    past) the 20-minute mark for the larger binary the Telegram
    connector and the vendored sandbox libs have produced. Windows is on
    30 minutes already; macOS now matches.
  • Release job is gated on success() instead of !cancelled().
    Previously the workflow would publish the GitHub Release even when
    the macOS matrix entry timed out, leaving Mac users on a stale DMG
    while Windows / Linux moved on. From this release onward, a failed
    matrix build means no release — the release pipeline either ships on
    every platform or nothing.

These changes do not affect the desktop binary at runtime; they only
affect how the binary gets built and published.

🐛 Bug Fixes

  • Mac update check stuck on v1.3.0-beta.1. Indirect: by making
    this release ship a real macOS DMG, the proxy update feed
    (/update/beta-mac.yml, /update/beta-mac-arm64.yml) now advertises
    a version > v1.3.0-beta.1 again. Mac users on the auto or beta
    update channel start seeing the update on the next check.
  • Telegram replies arriving as raw Markdown. Bold, code blocks,
    and bullet lists generated by the project agent for a Telegram
    contact now render as actual Telegram formatting instead of literal
    **foo** and backticks.

📦 Database & Sync

No schema changes in this release. Migration 030-add-telegram-intake
from v1.5.0-beta.1 is still the latest local migration; no
TensorPMSync *.sql to apply on the sync backend.

📝 Notes

Update Path

Coming from What you see
v1.3.0-beta.1 The full carry-forward content from v1.4 + v1.5 + this patch — Telegram connector, Materials, Gemini 3.5 Flash default, credits-in-Redux, etc.
v1.4.0-beta.x Telegram connector, Gemini 3.5 Flash default, credits-in-Redux, plus this patch.
v1.5.0-beta.1 Telegram Markdown polish + pipeline hardening only.

Linux users on v1.5.0-beta.1 were not affected by the pipeline
breakage; they get the smallest delta. Windows users likewise.

No Stripe / Billing / API Changes

The proxy and the website are untouched by this release. No webhook
re-deploy, no proxy restart, no website prebuild flip needed.

Known Follow-Ups (unchanged from v1.5.0-beta.1)

  • Voice / audio Telegram messages are received and queued, but
    Whisper-style transcription of voice notes is still the next obvious
    win.
  • /new resets conversational context but does not clear pending
    proposed updates from earlier in the thread.
  • Connector framework abstraction (parameterising the bot watcher
    loop and ConnectorIndicator routing into a fully type-parameterised
    base) remains open.

📅 Release Info

  • Version: 1.5.1-beta.1
  • Release Date: May 20, 2026
  • Previous Version: 1.5.0-beta.1 (Windows / Linux only; macOS
    effectively v1.3.0-beta.1)
  • Type: Patch Beta — re-ships v1.5.0-beta.1 on every platform,
    Telegram Markdown polish, CI/release-pipeline hardening.