Skip to content

Releases: mainsequence-sdk/mainsequence-claude-desktop

MainSequence Desktop 0.4.20 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 24 Oct 09:01
ecd551e

An agent icon changed in Command Center now reaches an open pane on its own. Until 0.4.19 the
pane fetched an agent's idle icon when it listed agents and kept it for five minutes in the
session's memory, and nothing re-listed while the Agents section stayed open, so a new icon
appeared only after Refresh or a new Code session.

What changes for a session:

  • Every listing re-checks. Environment selection, paging and Refresh re-check the listed
    agents' idle icons regardless of age.
  • The Agents section re-checks once a minute. While the pane is open on Agents, the hook
    re-checks the listed agents' idle icons every minute; the timer stops when the pane closes or
    another section is shown, and a section left open pauses after four hours until Refresh.
  • A re-check is conditional. The worker sends the backend the entity tag (ETag) the hook
    holds for each drawn icon as If-None-Match, on the canonical icon route only. An icon the
    backend answers with 304, or with 200 and the same tag (the route sends tags but does not yet
    answer conditional requests, so the worker compares them itself), keeps its image without being
    decoded again; a changed one arrives with its new tag and is redrawn; a failed re-check keeps
    the drawn icon. Tags stay in session memory with the images.
  • Poses are unchanged. Details and Talk still read an agent's poses when opened.

Validation: 99 Node tests (new: the worker's conditional request and its 304, 200 and refused
shapes; the hook's one-minute re-check with the held tag, redraw on change, retained icon on
failure, timer lifecycle across sections and pane close, Refresh and Details), the native Desktop
simulator tests, loader validation, distribution checks and a live check against the local
backend recorded in the verification doc. Bundles devtools 0.3.12. Update from the MainSequence
marketplace and reload the plugin in the Code chat. Node 22+ required.

Source revision: ecd551e. Archive SHA-256: 94bccf285b1b78c5385a43cf862093f228e649132526d3ef9d195b98123eb3d3.

MainSequence Desktop 0.4.19 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 23 Oct 22:19
0ebc3d2

Registered MCP tools now come from devtools 0.3.12's shared project-tool registry (devtools
ADR 0004, "Shared project-tool registry for host plugins"). Until 0.4.18 this plugin and the
Codex plugin each carried their own copy of the tool name (ms_<tool>_<hash>), the tool
definition, the result shape and the refresh loop, kept equal by hand. devtools owns them
now; the hook keeps only what is Claude's: $.tool.register, the $.ui.ask confirmation
before every call, the Messages API block conversion and one worker per action.

What changes for a session:

  • Startup. The hook asks the worker for the catalog (mcp-catalog) and registers what
    it returns, first from the shared project-tool-catalog.json beside
    mcp-connections.json, so the environment's tools are available at once instead of after
    one worker per connection, then after a forced read of every connection. Connect,
    disconnect and Re-register tools read the connections directly.
  • Names. For every remote tool name of up to 32 characters (all 70 CRM tools today) the
    registered name is unchanged. A longer remote name is now cut at 32 characters instead of
    42, because the Codex plugin qualifies the name under a 64-character limit; its hash, and so
    its identity, is unchanged. Tool descriptions read MainSequence <release name> [<environment>]: <tool>, with the release's own name first, as in Codex.
  • Results. The worker answers a tool call with devtools' mcp-tool-call: the remote
    content blocks, then one JSON block with summary, effects, error and structured content; the
    hook converts the blocks. The bytes Claude sees are the ones 0.4.18 produced.
  • Resilience. A connection whose catalog cannot be read keeps its earlier tools in the
    shared catalog file and is named in the warning under the list, as before. devtools gives a
    project request 120 s (a scaled-to-zero release has taken over a minute to answer) and
    honours a tool's advertised _meta["mainsequence.ai/timeout-seconds/v1"] up to 300 s, and
    its error messages now name the endpoint, the request and the HTTP status, and tell a
    timeout from a connection failure.
  • Names of connections. claudeMcpNames.ts is removed: devtools stores a connection's
    names with it since 0.3.1 and labels discovery rows with their repository's name on request
    (enrichNames).

Validation: 97 Node tests (the hook tests now assert the names and definitions devtools
produces, the two-step startup registration, the shaped result path and the retained tools of
an unreadable connection; the packaged-worker MCP test is unchanged apart from asking for
discovery labels). Loader validation and the ten native Desktop simulator
tests passed on Desktop's bundled Code 2.1.304, with the distribution checks. Against the local
backend, the saved MainSequenceCRMAPI connection's 72 tools registered from the shared catalog in
under a second, ms_crm_contacts_list_183f8138 among them, and a confirmed crm_contacts_list page
of one returned in under ten seconds.
Bundles devtools 0.3.12. Update from the MainSequence marketplace and reload the plugin in
the Code chat. Node 22+ required.

Source revision: 0ebc3d2. Archive SHA-256: 48d23226e6f44d6867e1c8b72ce2d56682d147c5263e4884bddf5fd451607e24.

MainSequence Desktop 0.4.18 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 21 Oct 20:20
27314db

A connected MCP's names now live with its saved connection. Until 0.4.17 the saved record
held only the release UID and endpoint, because the release detail read when connecting
carries neither a name nor a repository; every listing then asked the backend twice (the
release directory, then the repository branch) to label the row, and a backend that was
restarting during a refresh showed Unnamed MCP. devtools 0.3.1 reads the release's
name and its repository's name once, when the MCP is connected, and stores them in
mcp-connections.json as name, display_name and code_repository_branch_uid. A
listing shows them without a backend request, and a connection saved by an earlier
version is completed by the first listing that can read its names. A name that cannot be
read is left out and never makes a working MCP unavailable. The Add MCP search still
labels its rows live, from the repository branch each row names.

Validation: 97 Node tests (the packaged-worker MCP test covers stored names, listing
without a backend request, the one-time completion of an old record, and denied directory
or branch reads), ten native Desktop simulator tests, loader validation and distribution
checks on Desktop's bundled Code 2.1.304. Against the local backend, the saved
MainSequenceCRMAPI connection that 0.4.17 had left without a name was completed by the
first listing (5.6 s) and listed from the file afterwards (46 ms, no backend request);
its tool catalog and the Add MCP search carried the same labels. Bundles devtools 0.3.1.
Update from the MainSequence marketplace and reload the plugin in the Code chat. Node 22+
required.

Source revision: 27314db. Archive SHA-256: 6458f9784f0847f2195db11e405392f1f8d84ae8024d7e0c19a6749319da9d8d.

MainSequence Desktop 0.4.17 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 21 Oct 19:34

An MCP refresh survives a backend that is briefly unreachable. Connecting or disconnecting
an MCP re-reads the environment's saved connections and each one's tool catalog; when the
backend restarted during that refresh (a local Django development server reloads on every
code change), the remaining MCP was relabelled Unnamed MCP and its tools were dropped
until the next refresh. The pane now remembers the last name the backend resolved for each
connection and keeps it while the lookup is unavailable; the worker also labels a connection
with the release's own name (such as crm) when its repository cannot be read. A connection
whose catalog cannot be read keeps the tools registered by the previous refresh and is
named in a warning under the Tools list, with Refresh or Re-register tools reading
it again; a failed listing keeps the current environment's tools in place. A disconnected
MCP still loses its tools, and an environment change still denies them immediately.

Validation: 97 Node tests (two new pane tests covering the degraded refresh after a
disconnect and a failed listing, and the packaged-worker naming test extended with the
release-name fallback), ten native Desktop simulator tests, loader validation and
distribution checks on Desktop's bundled Code 2.1.304. Against the local
backend, whose container restarted every one to three minutes during the investigation,
the rebuilt worker labelled the saved MainSequenceCRMAPI connection crm ·
MainSequenceCRMAPI once the container answered again, where the listing taken during a
restart had carried no name at all. Bundles
devtools 0.2.8 unchanged. Update from the MainSequence marketplace and reload the plugin
in the Code chat. Node 22+ required.

Source revision: be118c3. Archive SHA-256: 149298296aabf31be0d82c31838577db44ffe73ace9f992f5502bb3a24a33490.

MainSequence Desktop 0.4.16 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 21 Oct 09:22
699bbe5

Deployments come to the pane. A local repository's Code detail gains a Deploys card
with the latest workflow run or deployment of its checked-out branch: state colour,
repository · branch · commit, start and duration, and a progress rail of step glyphs in
plan order. Open run shows the run with an SVG step timeline on the run's clock, step
rows with state and duration, the selected step's record and its logs with millisecond
timestamps, paged by the platform's cursor; a workflow run opens its first failed step,
else its deploy step. All deployments (from the card and from Home) lists the
environment's entries newest first with Load more, and Home's This session card shows
the session branch's latest run with View. A run shown while pending, queued or running
is refreshed every 10 s and the list every 30 s with the pane open; nothing polls when
nothing is active, and remote runs never count as local operations.

The new read-only model tool ms_deployment_status (registered with the environment)
returns the latest run of a repository branch, or one run by uid, with its steps and
states, and with logs: true the last 80 log lines of the first failed step. It is
denied while no environment is selected. The worker reads
/api/v1/deployment-history/, /api/v1/deployment-runs/{uid}/?include=workflow_run and
its /logs/ through the saved session and returns only what the pane draws; billing
and cost fields are never read into Claude, and a run that answers 404 is described
without asserting that it exists.

Validation: 95 Node tests (six new, including a packaged-worker HTTP fixture), ten native
Desktop simulator tests, loader validation and distribution checks passed on Desktop's
bundled Code 2.1.299. A read-only live check against the local backend drew the real
latest run of MainSequenceCRMAPI · main in the Code card, its detail with a five-bar
timeline, 200 cursor-paged log lines and four owned deployments, the 1,217-entry list
with Load more, the Home line, and the tool's two blocks; see
the verification record. Bundles devtools 0.2.8
unchanged. Update from the MainSequence marketplace and reload the plugin in the Code
chat. Node 22+ required.

Source revision: 699bbe5. Archive SHA-256: 2efe182d926269437707ae93e65a4f17f7949ea5d4c25f77ae1b683ed01029f2.

MainSequence Desktop 0.4.15 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 20 Oct 15:19
d2482b4

Agent icons that are larger than Claude can embed now appear. Claude's native image is
limited to 128 KiB of markup and draws icons at 20–32 px, while Command Center accepts
icons up to 512 KiB and 512 px. Back Office Helper's 512×512 PNG icon (105 KB, poses
91–112 KB) was dropped for that reason. The worker now decodes such PNGs and shrinks them
to at most 128 px, using nearest-pixel scaling for pixel art, so each pose embeds in about
16 KB. Small icons are unchanged; animated icons keep their frames while they fit.

Validation: 89 Node tests, nine native Desktop simulator tests, loader validation and
distribution checks passed. Against the real backend, Back Office Helper's icon was drawn
in the list and details and all five poses fit. Bundles devtools 0.2.8, now published to
npm. The backend constraint is tracked in Main-Sequence-Server-Side/tdag-django#1136.

Source revision: d2482b4. Archive SHA-256: 7b4730c829470b87674fc0a4646982560ab4f415e193b1a27e4d7e08ecfc2c8d.

MainSequence Desktop 0.4.14 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 20 Oct 12:45

MCP tool results reach Claude as Messages API content blocks. Text passes through;
MCP images (data with mimeType) become base64 image blocks for PNG, JPEG, GIF and
WebP; resource links, embedded resources, audio and other block kinds become text,
with binary payloads omitted rather than inlined. Previously such blocks were forwarded
in MCP's own shape, which Claude's core does not accept. Includes the 0.4.13 startup
fix for tools after /reload-plugins.

Validation: 88 Node tests, nine native Desktop simulator tests, loader validation and
distribution checks passed; the real end-to-end Back Office Helper conversation and MCP
call were rerun against the installed copy. Bundles devtools 0.2.8. Node 22+ required.

Source revision: 44342ed. Archive SHA-256: 8c685b9d551d51b9b31842626731a97233e3e600ea3aa5d38640d1102a16bce2.

MainSequence Desktop 0.4.13 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 20 Oct 12:41

Fixes MainSequence MCP and agent tools being refused as "no longer connected" after
/reload-plugins, and the header offering Sign in while already signed in.

Claude Desktop hosts the engine through the SDK, so session.start, including the one a
plugin reload raises, can name no drawing surface. Startup (workspace preferences,
session check, environments and MCP tool registration) was gated on that surface and
did not run until a pane section was opened. Startup now runs when the session reports
a desktop surface, on the first desktop footer, composer-band or pane draw, or when the
model calls a MainSequence tool before any of those; that call waits for registration
instead of being refused. Startup still runs once per session, and terminal or headless
sessions spawn nothing.

Validation: 88 Node tests, nine native Desktop simulator tests and loader validation
passed. A real end-to-end run of the installed plugin hooks with the real worker and
local backend held a two-turn conversation with Back Office Helper, called the Back
Office get_current_user MCP tool, listed the MCPs and tools, and drew the Tutorial
Helper icon in the list, details, composer band and tool rows. Desktop's bundled Code
2.1.299 engine replayed those responses, including a model call to the Back Office tool
immediately after a reload with no surface.

Bundles devtools 0.2.8. Update from the MainSequence marketplace and reload the plugin
in the Code chat. Node 22+ required.

Source revision: 43231f9. Archive SHA-256: 43dbda80f541d3a687a79730bf7b61fa716eac3776872d447954922a5a399085.

MainSequence Desktop 0.4.12 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 20 Oct 12:28

Fixes agent icons that never appeared. An agent whose Command Center icon record has
no idle image (Back Office Helper on the tested backend) made the icon cache read a
missing previous entry; the exception discarded the whole batch of four agents, so
agents with valid icons in the same batch, such as MainSequence Tutorial Helper,
showed none in the list, details, composer band or tool rows, also after Refresh.
Each agent's record is now handled on its own, and a malformed one only affects that
agent.

Validation: 86 Node tests, nine native Desktop simulator tests, loader validation and
distribution checks passed. A replay of the real local-backend responses through
Desktop's bundled Code 2.1.299 engine confirmed the signed-in header, all seven
agents, the Tutorial Helper icon in the list, after Refresh and in details, Talk
prefilling /ms @mainsequence-tutorial-helper , the composer band icon with Switch
agent and End, the composer re-addressed after a reply, the running tool-row icon,
and both connected MCPs with 105 registered tools. Session allocation and messages
were synthesized in that replay, so no backend state was created.

Bundles devtools 0.2.8. Update from the MainSequence marketplace and reload the
plugin in the Code chat. Node 22+ required.

Source revision: 3c5e7b9. Archive SHA-256: 6122ab4c382efe7d727c875323a27c5c1550075e3a982038dcc443ed4085f2b0.

MainSequence Desktop 0.4.11 preview

Pre-release

Choose a tag to compare

@MainSequenceDev MainSequenceDev released this 20 Oct 12:11

The MainSequence pane is redesigned. A persistent header shows the signed-in
account, the organization environment, running operations (open Activity) and
Settings. Five sections replace the former seven: Home (next steps, this session's
repository status, recent activity), Code (one list of remote and local repositories
with a detail view that is the operation target), Projects, Agents and Tools
(connected MCPs first; Add MCP searches releases; the tool explorer sits under
Advanced). Lists use rows with inline actions, each view has one primary button,
statuses use Claude's success, warning and error colours, unavailable actions are
shown disabled with a reason, and confirmations appear above the view instead of
replacing it.

Talk fills Claude's input with /ms @<agent-handle> so the command names the agent
that receives the message; the explicit /ms agent <uid> <message> and
/ms task <uid> <message> forms still work and a bare /ms <message> is refused with
the prepared handles. Plugin tool results reach Claude as content blocks (the MCP
server's own blocks are forwarded), and an uncertain delivery can be released with
Allow sending again without resending anything. After each reply the empty composer
is re-addressed to the same agent until End is pressed in the band above it.
Example questions in an agent's details fill the input when pressed, and the composer
band gains Switch agent. The running count also appears in Claude's status line.

Carries the 0.4.9 pane recovery, select paging and setup progress, the 0.4.10 MCP
names, and the MainSequence Projects workspace flow. No worker request, backend,
credential or configuration contract changed.

Validation: 80 Node tests, nine native Desktop simulator tests, native loader
validation, typechecking, documentation and portable distribution checks passed on
Desktop's bundled Code 2.1.299. Bundles devtools 0.2.8 from the integrity-checked
local archive described in the README. Update from the MainSequence marketplace and
reload the plugin in the Code chat. Node 22+ required.

Source revision: d24aabc. Archive SHA-256: 5d2a574fa8f5525c2fb02ab0dbff012513eaf8f064faf3fd75c30ba6c0b6d0a9.