Repository navigation
v0.10.0
Added
-
tx mcpserves a model session to AI agents (Claude Code, Codex, Cursor and others) as Model
Context Protocol tools on stdio:claude mcp add tomix -- tx mcp. Each tool calls the session
protocol method of the same name, so an agent's edit is one undo step, and
transaction_begin/transaction_commitgroup several under a label. Whentx uiholds the
model,tx mcpjoins that session, so you watch, undo and save the agent's work in the page.
Every tool says whether it writes (readOnlyHint,destructiveHint), and--read-onlylists
only the ones that change nothing (#354). The server tells the agent to save a TMDL folder or
.bimfile once its checks pass, and to ask before saving to a server or Power BI Desktop. -
tx skills install,status, anduninstallinstall the tomix agent skill for Claude Code
(.claude/skills/tomix) and Codex and other Agent Skills harnesses (.agents/skills/tomix),
in the repository or with--userin your home folder. The skill ships inside the binary, so it
matches the installedtx.statusreports copies from another version as outdated, and copies
that were edited or not written by tx are left alone unless you pass--force
(TOMIX_SKILL_CONFLICT). The skill covers live sessions too: edit through thetx mcptools
rather than the files while a session is open. A new guide, "Using tomix from your agent",
covers setup, including watching an agent's edits intx ui(#404). -
A client of a live session (
tx serve,tx ui) can ask ininitializefor
capabilities.diagnostics. The host then recomputes dependencies, DAX diagnostics and,
with{ "bpa": true }, BPA findings 250 ms after the last change and sends
diagnostics.updated;dax.checkandbpa.runanswer from those results.deps.get,
dax.checkandbpa.runnow read the last committed version instead of waiting for
another client's transaction (#350). -
A live session (
tx interactive,tx serve,tx ui) on a TMDL folder or.bimfile now
notices when the files change outside it, for example by agit checkoutor another editor.
The session turnsstale, and saving fails withTOMIX_SESSION_STALEinstead of overwriting
that change.reload(protocol:session.reload) takes the files' version, and
save --force(session.savewithforce) keeps the session's. Thetx uipage offers
both (#351). -
A live session on a server or Power BI Desktop now notices when the model changes there
outside it (checked every 10 seconds for Desktop, 30 for a remote server): it turnsstale, andsavefails with
TOMIX_SESSION_STALEuntilsave --force.session.statusreportscanReload(#351). -
A live session whose Power BI Desktop has closed fails with
TOMIX_SESSION_SOURCE_UNAVAILABLEinstead of a raw connection error;save -o <folder>
still writes its changes to files. The shell,status(protocol:sourceUnavailable) and
thetx uipage say so as soon as a check finds it gone (#351). -
tx refreshon a PBIP's files (the.pbip, its.SemanticModelfolder, or anything in it)
now refreshes the model in the Power BI Desktop that has that PBIP open, as Tabular Editor
does, instead of failing withTOMIX_REFRESH_NO_REMOTE_TARGET. It says so with
TOMIX_REFRESH_IN_DESKTOP.
Changed
txnow colors its output with your terminal theme's own ANSI colors instead of a fixed
RGB palette, so it matches Campbell, Dark+, Solarized, high-contrast and color-blind-friendly
themes. Color is kept for status (red, yellow, green) and DAX and M highlighting; names,
paths and values print plain, options bold, and secondary text dimmed. DAX keywords are
magenta, functions bright blue, measure references cyan, and literals green; tables,
columns and variables are no longer colored. Help section headings are bold and
uppercase (USAGE,DISCOVER), and the command and option names under them regular weight. Thetx uipage moves to warm neutrals with a single persimmon accent.
Fixed
savein a live session on a server or Power BI Desktop sends the changes to the server
instead of failing withTOMIX_SAVE_OUTPUT_REQUIRED, andsave -onaming the session's own
files saves in place, so it no longer skips the check for changes made outside the session
(#351).- A command on a Power BI Desktop that has closed fails at once with
TOMIX_DESKTOP_NOT_RUNNING
and a hint to reopen it, instead of waiting about 4 seconds for a raw socket error.
Opening a session (tx interactive,tx serve,tx ui) there, or on a server it cannot
reach, reports the connection error instead of "Unexpected error" (#351). - Tables written to a pipe or a file no longer wrap at 80 columns, and use ASCII borders
(+,-,|) instead of box-drawing characters, as dotx deps --deeptrees. A DAX
expression or format string intx lsoutput stays on one row, so it can be grepped or read
by an agent, and borders no longer turn into mojibake in Windows PowerShell 5.1 ormore.
tx bpa runandtx bpa rulesswitch their symbols to ASCII there too (*for●,x
for×,-for·and—,OK/FAILfor✓/✗).
What's Changed
- feat(session): notice files changed outside a live session; reload or keep (#351) by @bgarcevic in #403
- feat(refresh): refresh a PBIP in the Power BI Desktop that has it open by @bgarcevic in #407
- feat(session): notice server-side changes in a live session; clear error when Desktop is gone (#351) by @bgarcevic in #406
- feat(session): recompute deps, DAX diagnostics and BPA after changes (#350) by @bgarcevic in #415
- feat: agent skill, plain redirected output, and the ANSI terminal palette by @bgarcevic in #416
- feat(mcp): tx mcp, an MCP server over the live session (#354) by @bgarcevic in #417
- feat(output): terminal ANSI palette, ASCII BPA symbols when redirected, uppercase help headings by @bgarcevic in #418
- feat(skill): cover live sessions, and let agents save file models by @bgarcevic in #419
- chore(release): prepare 0.10.0 by @github-actions[bot] in #405
Full Changelog: v0.9.0...v0.10.0