Release Notes
What's new in each version of Semantic Modeler.
Release Notes
What's new in Semantic Modeler
v0.2.28-beta — Released 2026-07-02
Fixes
Status messages tell you which model. Deploy and publish notifications now include the model's name (e.g. "'Sales_Dev' deployed to process workspace") instead of just "Model deployed", so you always know which model a message refers to.
Find-in-editor highlight stays put. The highlight box marking the current find match no longer drifts away from the text when you scroll the editor.
The diagram remembers your layout. Table positions and zoom/pan no longer reset when you close a model and reopen it — your arrangement is preserved, whether you reopen it seconds later or in a future session.
Deleting a table now cleans up its relationships. Previously, deleting a table could leave broken relationships behind in the model, which could corrupt the model file and even prevent it from opening later.
Models with broken relationships open again. If a model file contains a relationship pointing at a table or column that no longer exists, the app now opens the model, removes the broken relationship, and tells you exactly which one was removed and why — in the notifications area and the debug log.
v0.2.27-beta — Released 2026-07-02
Fixes
- "Update available" notification works again. The status-bar badge that tells you a newer version is out was never showing up for beta releases; it now appears correctly and links to the downloads page.
- Windows publisher name. When you install on Windows, Add/Remove Programs now lists the publisher as "Fact Foundry" instead of an internal name.
v0.2.26-beta — Released 2026-07-01
New
- Find and replace in code editors. Press Ctrl+F to search within any DAX, TMDL, or M editor — with a match counter and next/previous — and Ctrl+H to find and replace text. Search also works in read-only views. Unclosed brackets now get a red underline as you type, too.
- Format DAX for calculated tables. The "Format DAX" button on a calculated table now tidies up its expression — breaking long formulas across lines with proper indentation. Works offline.
v0.2.25-beta — Released 2026-06-30
New
- Process Remote. Right-click a model and choose "Process Remote…" to refresh the version you've already published to an environment — without redeploying. Pick the environment and a processing mode, and it processes the live published model. Handy when the data changed but the model didn't.
- Search the model tree. A search box above the model tree filters it down to fields whose name matches what you type — columns, calculated columns, and measures — each shown under its table. Clear the box to see everything again.
- Hidden fields are marked in the model tree. Hidden tables, columns, measures, and hierarchies now show dimmed with a small eye-off icon, so you can tell at a glance what's hidden without opening the Properties panel.
Fixes
- Importing from a Service Principal data source works again. If a SQL Server data source was set to Service Principal authentication, importing tables or previewing data from it failed inside the app. Now the app always connects as you (interactive sign-in) when you're working with the source — the Service Principal setting only controls how the source is accessed after you publish the model.
- AI descriptions and Hide/Show now save automatically. Applying AI-generated descriptions, or hiding/showing fields, wasn't written to disk unless you made another edit afterward — so the changes could be lost when you closed the app. They now save immediately. (If you generated descriptions in an earlier build and they vanished, you'll need to re-generate them.)
v0.2.24-beta — Released 2026-06-29
New
- Hide or show fields in bulk. Right-click any column or measure to Hide or Show it — in both the diagram and the model tree. In the diagram you can also select several fields in a table at once (click, Ctrl/Cmd-click to add or remove, Shift-click for a range) and hide or show them all in one go.
Fixes
- Data preview now shows the full page of rows. The grid was only displaying 10 rows even though more were loaded; it now shows the whole page (50/100/200, per your "Rows per page" choice).
v0.2.23-beta — Released 2026-06-29
New
- Document your model with AI. Right-click a model and choose "Document with AI" to have AI draft a description for every table, column, and measure. You review the drafts in a dialog — edit or uncheck any you don't want — and nothing is saved until you click Apply. There's an optional box to tell the AI what the model is for and to spell out any acronyms or business terms it wouldn't know, plus an option to overwrite descriptions you've already written. Only your model's structure is sent (table/column/measure names, data types, measure formulas, and relationships) — never your data, connections, or queries.
- Use your own AI key. Under Settings → AI Provider you can switch from FactFoundry's hosted AI to your own Anthropic API key or Azure AI Foundry (Claude). Your key stays on your machine and is sent straight to the provider — never to us — so you don't need an AI license to use the feature. With your own key, large models are usually documented in a single pass rather than in batches. Note: the Anthropic option is tested and working; the Azure AI Foundry option is new and not yet fully tested.
- See what the AI is doing. While documenting, the dialog now shows live progress ("Generating descriptions… 142 of 576") instead of just a spinner.
v0.2.22-beta — Released 2026-06-26
New
- Point a table at a different source table. For a table with a single source query, you can now change the source schema and table name right from the table editor — handy when a source table is renamed or replaced. After you apply the change, the app runs a Schema Refresh so you can review any column differences before publishing.
Fixes
- Canceling a Microsoft sign-in no longer blocks the next one (Linux). If you closed or canceled the sign-in window and then tried again, the second attempt could fail with an "Address already in use" error instead of re-prompting. Sign-in now cleans up properly so you can retry right away.
- Editing a table no longer jumps the diagram back to its default zoom. When you change a field in diagram view, the diagram now stays exactly where you had it — your zoom level and position are preserved instead of resetting.
- Dates in the data preview now use your chosen format. A date column set to a format like "Date (ISO)" was showing the raw value with a time component (e.g.
2024-12-20T00:00:00); it now displays using the format string you picked. - Renaming a column updates the grid right away. When you rename a column in the properties pane, the data-preview grid header now reflects the new name immediately instead of waiting until you republish.
v0.2.21-beta — Released 2026-06-26
Improvements
- Copy roles between models with a spreadsheet. A new "Roles & Security" export/import (in the diagram's export menu) lets you export a model's roles — their row filters and table/column security — to Excel/ODS and import them into another model, instead of recreating dozens of roles by hand. It shows you what it'll do and asks before applying, and warns about anything the target model doesn't have. (Role members are exported for reference only and aren't imported, since membership is environment-specific.)
- Hide tables and columns per role (object-level security). Roles now have an "Object Security" tab where you can hide entire tables or specific columns from a role — so members of that role never see them. This sits next to the existing row-filter (RLS) security, and the two work together cleanly (editing one no longer wipes the other).
Fixes
- Workspace authentication now matches the workspace type. The Publish and Working Server/Workspace dialogs only offer the auth that fits: Fabric / Power BI uses your Entra sign-in, SSAS uses Windows Authentication, and Azure Analysis Services uses Entra or Service Principal. No more unsupported options on the list.
- You can now set a Fabric Warehouse data connection to Service Principal. Its authentication dropdown was previously locked (greyed out), so you couldn't choose Service Principal for the published model to refresh with. It's now selectable (Entra ID MFA or Service Principal).
v0.2.20-beta — Released 2026-06-25
Improvements
- Use a Service Principal for your data connections. A data source connection's Authentication dropdown now includes Service Principal, alongside the existing options. That choice is what the published model uses to read the source when Fabric refreshes it — so you can move off per-user OAuth (a sign-in maintenance burden on a refreshed model). No credentials are stored in the app or the model — it publishes the server, database, and auth method, and binds to your matching Fabric connection. (Publishing to Fabric still uses your own sign-in.)
v0.2.19-beta — Released 2026-06-24
Improvements
- Upload your debug logs for support. Settings → Debug now has an "Upload Debug Logs" button. When you're troubleshooting with us, it sends your current logs and gives you a short reference code to quote in your ticket so we can find them. It asks you to confirm first, and a tooltip explains exactly what's included — server/connection names and some model structure (table/column/measure names), but never your model's data.
- Errors are now included in anonymous telemetry. When something fails, that now registers in our telemetry so we can see problems are happening and prioritize fixes — previously errors were never reported. Identifying details (server names, file paths, IDs) are stripped out before anything is sent; richer detail only ever leaves the app if you choose to upload your debug logs.
Fixes
- Clearer message when a refresh fails because the connection's sign-in expired. If processing fails because a data source's saved credentials can no longer be refreshed, the app now tells you exactly that — and shows the underlying reason — instead of a generic "Refresh failed." The fix is to refresh that connection's credentials in Fabric, then process again.
Improvements
- Tidier Debug settings. Removed the unused "Send Debug Logs to API" option and moved the telemetry setting below the debug-logging options so the section reads more naturally.
- Delete a measure straight from its properties pane. A Delete button now sits alongside Close in the measure properties pane, so you no longer have to right-click it in the model tree. It asks you to confirm before the measure is removed.
v0.2.18-beta — Released 2026-06-19
System requirement: Semantic Modeler for Windows requires Windows 10 version 1809 or Windows Server 2019 (or newer). Older systems such as Windows Server 2016 / Windows 10 1607 are not supported.
Fixes
- Smoother Windows install. The app now carries the Windows components it needs, so on supported systems it no longer depends on a separate "Windows App Runtime" being installed first.
Improvements
- Hidden columns are clearer in the data grid. Their headers used to be struck through, which made it look like they'd been removed from the model. They now appear in italics — easier to read, and clearly "hidden" rather than "deleted."
v0.2.17-beta — Released 2026-06-16
Fixes
- Your Working Server/Workspace now sticks with the model. Previously it was kept separately and could be lost — so you'd set it, do some work, and later get told no working workspace was configured. It's now saved inside the model itself, so it stays put across reloads, branch switches, and restarts. (Your sign-in secrets are never written into the model — only a reference to them.)
Improvements
- The Hierarchy editor is more compact. The large empty gaps between the Name, Description, and Display Folder fields are gone, so the form reads as one tidy group.
- The Environment panel now looks like the rest of the property panels. Its settings are grouped under two clear headings — General and Connections — for a cleaner, more consistent layout.
Fixes
- "New Model" and "Import Model" on the welcome screen now light up as soon as you open a project. Previously they stayed grayed out until you navigated away and back, even though the same options worked from the File menu.
v0.2.16-beta — Released 2026-06-16
Fixes
- Sorting and paging in the data grid now work across the whole table. Sorting a column (right-click a header) used to reorder only the first 50 loaded rows and sorted numbers and dates as text, so the order looked wrong — and there was no way to see past the first 50 rows. Now sorting applies to the entire table with the correct order for numbers and dates, and a pager lets you move through all the rows 50, 100, or 200 at a time with a running total.
Improvements
- You can now set a Data Category on measures. Just like columns, measures have a Data Category option in the properties panel (Web URL, Image URL, the geographic categories, etc.) — handy for things like having a measure that returns a link render as one.
- The Measures panel shows many more measures at once. Instead of a single row that scrolled sideways forever, measures now wrap into a grid that fills the width and scrolls up and down — much easier to scan a table with lots of measures.
- You can resize the Measures panel. Drag the bar at the top of the panel to make it taller or shorter (it shrinks the data grid above); the size is remembered next time.
v0.2.15-beta — Released 2026-06-16
Improvements
- A slow or unreachable licensing server no longer locks you out. If the app can't reach licensing (a timeout or network blip), it now keeps working offline and quietly retries in the background, instead of flipping to "License Invalid" and replacing your projects, models, and toolbar with the license screen. You're only locked out if the server actually rejects your license, or it has genuinely expired.
- You can now create a project directly, and project names travel with the folder. A New Project option (on the Welcome screen and the File menu) lets you pick (or create) a folder and turns that folder into the project, and "Open Folder" is now "Open Project." Each project keeps a small
project.smpfile in its folder, so its name comes from the project itself — open the same folder on another machine, or after cloning it from git, and it comes back with the right name instead of just the folder name. The first time you open a folder that isn't a project yet, you're asked to name it (suggested from the Visual Studio solution name if there is one, otherwise the folder name) — after that it remembers. - Imported dates look right by default. New date/time columns now use your locale's short date format (e.g. 3/15/2026) out of the box instead of unformatted "General." You can still change the default — or pick "None" — in Settings.
- The Settings window now only shows settings that actually do something. Two tabs of options that didn't take effect yet (Editor and DAX) were removed — they'll return as those features are built — and the "About" tab is now called "General."
- Creating or importing a model now needs an open project. New Model and Import Model become available once you've opened or created a project — a model always lives inside a project. Open or create one from the Welcome screen or the Projects pane.
- "Delete Project" in the Projects list is now "Close Project." That action only removes the project from your list — it never deleted your model files — so the name now matches what it does, and the confirmation says so plainly. (Permanently deleting a model's files is still available from the Files pane.)
- Date format dropdowns now show what each format looks like. Instead of just a name like "Date (ISO)", each date/time option shows a real example (e.g. "2026-03-15 — Date (ISO)") so you can see the format at a glance — in the column/measure format picker, the same way the Settings default-date dropdown already worked.
v0.2.14-beta — Released 2026-06-15
Improvements
- A data source connection now becomes part of the model the moment you add it — you no longer have to import a table first for the connection to "exist." It's seeded from the details you entered and gets pointed at the right environment when you publish.
- The Add Data Source screen is organized by category. Sources are now grouped into Fabric, Azure, Database, SharePoint, and Other Sources, with clear "Beta", "Coming soon", and "Needs gateway" labels so you can see at a glance what's ready to use and what's on the way. Sources that aren't available yet are greyed out.
- Reordering a hierarchy's levels updates the diagram. The diagram now shows the levels in the same order as the Properties pane (and reflects added/removed/renamed levels too).
- Clicking a hierarchy's levels on the diagram opens its properties. Clicking a level now selects the hierarchy it belongs to.
- Hiding a column, table, or measure updates the diagram right away. Previously it didn't gray out on the diagram until you clicked something else.
- Renaming a table no longer moves it on the diagram. The table now stays exactly where you placed it after a rename.
- Clicking a table on the diagram opens its properties. Previously clicking a table's header didn't switch the Properties panel (you had to click one of its columns); now clicking the table itself works.
- Publishing to Production (or any non-dev environment) now uses that environment's Fabric endpoint. It previously switched to the right database but kept the development endpoint.
- Publishing to Microsoft Fabric works again. A recent change left the data source without the credential placeholder Fabric needs, so publishing failed. The credential is now part of the data source (and visible in the model), and the published model includes it — you still authorize the connection in Fabric after the first publish, then refresh.
- You can now import tables from a Fabric Warehouse or Lakehouse. Listing the tables already worked, but the actual import reported "not supported yet" — that's fixed.
- "Process All Tables" is greyed out when there's nothing to process. If a model has no tables yet, the option is disabled instead of letting you start a process that would do nothing.
- You can rename a data source connection before adding any tables. Renaming a brand-new connection used to fail with a "not found in the model" error.
- Saving a data source connection no longer asks to rename it for no reason. New connections were stored under a hidden internal ID that never matched the name you gave them, so every save thought you were renaming. Connections now use the name you typed as their identity. (An existing connection fixes itself the first time you accept that one rename prompt.)
- Connecting to a Fabric Warehouse or Lakehouse now works. It previously asked for a Workspace ID that could never form a valid connection. It now asks for the warehouse's SQL connection string and database name (copied from the Fabric portal) — the way Fabric actually connects.
- The Import Tables list shows many more tables at once. Each table is now a single compact row with its schema shown in front of the name (e.g. "dbo.Demo_Customer"), so you scroll far less to find what you need.
- The diagram's Import/Export button looks cleaner. The green button now has its own background so it no longer bleeds into the panel beside it.
- Column icons in the Models tree now show the data type. Just like the diagram, a column's icon tells you at a glance whether it's text, a number, a date, a boolean, a key, or a calculated column.
- The properties panels look cleaner and more consistent. Section headings now use one uniform style across every property panel, the extra divider lines were removed to cut clutter and wasted space, and editor titles no longer repeat the item's name (which already shows in the Name field just below).
- The environment setup panel is tidier and clearer. "Publish Server/Workspace" is now called Publish Location (with a hint that it can be a Fabric/Power BI workspace or an Analysis Services server), and the "Add Connection" control now matches the style of the publish slot for a cleaner, more consistent look.
v0.2.13-beta — Released 2026-06-12
Improvements
- Opening a model from the Files pane no longer collapses the Models pane.
- Git markers, unsaved-changes dots, and warning icons in the Models tree are visible again on large models — they were being pushed far off-screen to the right (you'd only find them by scrolling horizontally). They now sit right next to the item's name.
- The model's git marker now reflects the whole model — a model with edited tables shows "M" on its root (previously table edits showed nothing at the top level).
- The Projects pane is now resizable — drag its right edge; the width is remembered.
- The Files pane shows git markers too — projects, model files, and folders carry the same colored letters and checkmarks as the Models tree, updating instantly after any git action. The pane also got proper scrolling for long file names and large file lists.
- Clearer git markers. Committed files show a green checkmark in the Models tree, files not yet in git are marked in bold orange (previously a faint gray that was easy to miss), conflicts are bold red, and the markers now have hover explanations. The Models tree and Source Control panel use the same colors.
Fixes
- Licensed copies have full debug-log controls. The logging toggles were locked for everyone during the beta; the lock now applies only to beta licenses, so licensed users can enable detailed logs to troubleshoot.
- Creating a new model now puts it in the right place. New models are always created inside the current project, in their own folder named after the model — no more stray files in the project root, and the Files pane shows them immediately. The dialog previews exactly where the model will be created.
- Boolean columns are cleaner in the Properties panel — the data type now reads "Boolean", and the format dropdown (previously "Not applicable") lets you choose how it displays: True/False, Yes/No, or On/Off.
- Notifications are readable in light mode — the popup text was white on a white background, making notifications look empty.
- Converting a table to Direct Lake no longer fails with an "object does not exist in the collection" error. A bug in v0.2.12 broke first-time conversions; converting back and the compatibility-level downgrade had the same latent issue.
v0.2.12-beta — Released 2026-06-12
Measure errors
- Broken measures are now flagged everywhere, every time. Previously, error checking only happened for the table you were previewing, and only while the preview was open — so errors slipped through and you'd discover them in Power BI. Now, every time you save a measure, the app checks all measures in the model (one change can break others that depend on it). Failing measures get a red warning marker in the Models tree, an entry in the Problems panel, and the error message right in the measure editor. You can also right-click the Measures folder and choose "Validate All Measures" any time.
Direct Lake
- Importing tables from a Fabric lakehouse now creates real, working Direct Lake tables. Previously the import looked successful but produced empty shells that could never load data. The app now connects to your lakehouse's SQL endpoint, reads the actual table structures, and builds proper Direct Lake tables — including table previews.
- A failed publish can no longer masquerade as success. If deploying your model fails (for example, Fabric refuses to overwrite an Import model with a Direct Lake one), processing now stops and tells you why — before, it quietly refreshed the old version of your model and reported success against stale data.
- Switching environments now updates Direct Lake connections too. Publishing a Direct Lake model to Test or Prod previously kept pointing at your dev lakehouse without any warning. The connection inside the model now switches with the environment, or you get a clear warning if it can't.
- Converting a table away from Direct Lake no longer destroys its original query. The query is saved during conversion and restored when you convert back. If nothing restorable exists, the app refuses rather than writing a broken query.
- Calculated columns are blocked on Direct Lake tables (Fabric doesn't support them — adding one used to break publishing for the whole model), and Refresh Schema can no longer wipe out a table's columns when the data source doesn't report its structure.
Platform support
- Analysis Services (SSAS / Azure AS) workspaces can now be used from Linux and macOS. Previously the app refused outright with a "Windows only" message. Connections are now attempted on every platform — machines with Kerberos configured (or using Entra sign-in) can work; if authentication fails, a dialog explains that Kerberos isn't enabled and links to setup documentation.
Performance & stability
- Data preview and measure queries run roughly twice as fast — every table query was being executed twice against the engine due to an internal quirk.
- More groundwork: the publishing pipeline now has automated test coverage, and two rare concurrency issues around sign-in tokens were closed.
Usability fixes
The SQL Server "Require Encryption" setting works now — turning it off previously had no effect (connections still demanded encryption), which blocked older servers that don't support TLS.
The Files list now highlights rows as you hover, matching the Models tree.
The Models pane search box works now — typing filters the tree as you'd expect. The display-folder toggle next to it is also functional: measures and columns group into their display folders.
"Show Hidden Tables" in the diagram applies immediately.
Removing role members or hierarchy levels now asks for confirmation, and renaming a role to a name that's already taken gives a clear message instead of an error.
More patient with Fabric: long-running refreshes get 10 minutes instead of 4 before being called failures, and temporary Fabric hiccups (rate limits, brief outages) are retried automatically instead of failing your operation.
Table/column names with special characters no longer break data previews.
Security
- Stronger protection for saved credentials on Linux and macOS. Stored passwords are now encrypted with an authenticated cipher and a random per-install key (file readable only by you), replacing a scheme that could be reversed by other local software. Existing saved credentials upgrade automatically.
- Sign-in hardening. The browser sign-in flow now uses a one-time verification code so another page can't slip a forged login into the app, and tokens no longer appear in browser URLs or history.
- No more secrets in logs or settings files. Passwords and keys in connection strings are masked in the debug log, and the app's licensing token moved out of the plain-text settings file into the encrypted credential store.
Reliability
- Opening a model no longer creates invisible changes. The app heals some things on open (legacy format strings, a default environment) — those changes are now shown as unsaved edits you save once, instead of silently appearing later as git changes you never made. Two machines opening the same model also no longer produce conflicting files.
- "Save As" failures no longer lose your file location. If saving to a new location fails, the model stays pointed at its original file instead of being stuck on a path that was never written.
- Far fewer disk writes, no more racing saves. Settings and session state used to be written dozens of times during normal interaction, sometimes overlapping. Writes are now batched and take turns.
- Closing the app can't hang anymore. The save-on-exit step is time-limited and any failure is recorded in the debug log (it used to fail silently — the likely cause of "my session didn't restore" reports).
Direct Lake (round 2)
- Editing Direct Lake tables as code (TMDL) now works — applying changes previously always failed for Direct Lake tables.
- Smarter conversion guards. Converting a table to Direct Lake now checks that table's data source (not just the model overall), so a CSV or feed table in a mixed model can't be converted into a broken state. Switching a table to DirectQuery gets the same treatment — file-based sources are blocked with a clear explanation instead of a cryptic engine error later.
- Clearer publish errors. When Fabric refuses a deploy (for example, because a table's storage mode changed), you now get a plain-language explanation of what to do instead of a raw API error.
- No more wall of red measures on a fresh Direct Lake model. If a model hasn't been processed yet, every measure check fails the same way — that now shows as a single "model needs processing" message instead of flagging every measure as broken.
DirectQuery
- Dual and Default storage modes now display correctly. Tables using Dual or Default mode were shown as "Import" — making DirectQuery models look like Import models, and making it dangerously easy to wipe out a table's Dual setting just by touching the dropdown. Both modes are now shown and selectable, and the model-wide default storage mode is editable in Model Settings.
Source control
- Pulled changes can no longer be accidentally overwritten. After a pull or sync, open models reload from disk so you're working on the new version (previously, your next save could silently undo your teammate's changes). Discarding or reverting a file now reloads the open model too, and the app warns you before any git action that would lose unsaved edits — including switching branches.
- Merge conflicts are no longer invisible. Pulling changes that conflict with yours now tells you exactly which files need attention (marked with "!") instead of saying "Pull complete" and quietly corrupting model files if you committed afterward. Committing is blocked until conflicts are resolved.
- Commits now use your real git identity. Commits made from the app were authored as a generic "User" — they now use your git configuration like every other git tool.
- Committing only includes what you chose. "Commit All" no longer silently sweeps in untracked files, and "Commit & Push" no longer claims success when the commit failed. Sync is also more reliable on the first click.
- Everything git stays in sync, everywhere. Committing, pulling, switching branches, or discarding a file now instantly updates the Git panel, the Branches list, the change markers in the Models tree, and the branch indicator in the status bar — no more stale markers hanging around until you click something. All of these surfaces also now agree on which repository they're looking at (previously the tree markers and status bar could show a different repo than the Git panel if you used a manual repo path). Git checks also no longer cause small UI freezes in large repositories.
Fixes
- Database passwords are no longer stored inside your model files. Connection passwords and API keys were being saved into the model itself — meaning they could end up in source control. They now live only in the encrypted credential store on your machine, and models that already contain them are cleaned automatically the next time you open them (save afterward to make it permanent).
- The app no longer crashes silently. Unexpected errors are written to a crash log you can send to support, deleting an object that's still in use shows a clear error message instead of killing the app, and if a view fails to display you get a "Try Again" button instead of a frozen window.
- Hidden and Display Folder changes now stick. Toggling "Is Hidden" or setting a display folder on tables, hierarchies, and calculated tables previously looked like it worked but silently reverted. Calculated tables also get a proper "Save Expression" button so DAX edits can't be lost to a screen refresh.
- Your files are now protected against crashes during saves. Model, settings, session, and project files are written safely so a crash or power loss mid-save can no longer corrupt them. A damaged project list is preserved for recovery instead of being wiped, and a failed startup restore no longer overwrites your last good session.
- Saving Power BI Desktop / Fabric Git project models now works correctly. Models stored in the PBIP layout (with a
definitionfolder) were saving to the wrong place — your edits never reached the actual model files. They now save exactly where they were opened from. - Renaming an object now updates the Models tree right away. Previously the tree could keep showing the old name until something else nudged it.
v0.2.11-beta — Released 2026-06-11
DAX editor
- Suggestions now narrow as you type. After
[or', each keystroke filters the list of columns, measures, or tables — including names with spaces — instead of the list vanishing into function suggestions. Backspace refines the filter rather than closing the popup, and accepting a suggestion mid-word inserts exactly the right text.
Measures
- You can now set a measure's data type. The Data Type field is a dropdown instead of a read-only label stuck on "Number (inferred)" — pick Date, Text, Currency, and so on, and the Format String options update to match (date measures finally get date formats). Better yet, when the preview evaluates a measure, the app fills the type in for you automatically; your manual choice always wins.
Fixes
- Clear messages when a measure name isn't allowed. Naming a measure after a column on the same table, or reusing a measure name that exists elsewhere in the model, used to slip through and fail later with a confusing publish error. The app now tells you immediately, in plain language, what the conflict is and what to do about it. (Sharing a name with a column on a different table is fine and still works.)
- Measures and columns no longer show garbage like "A.D.26026ral" in Power BI. The app was saving the format "General" into the model — a format Power BI doesn't recognize, so it scrambled values (dates were hit hardest). "General" now correctly means "no specific format," and models that already have the bad value are repaired automatically the next time you open them — just republish afterward.
v0.2.10-beta — Released 2026-06-10
DAX editor
- Autocomplete now understands what you're working on. Hitting
[while editing a measure or calculated column suggests the columns of that table (with measures listed below) instead of a jumble of every table's fields — and the full list is available now, not just the first 20 entries. - Typing
'lists your tables. Pick one and keep going —'Sales'[then shows only Sales columns. Typing inside the quote filters the table list, including table names with spaces. - Your local variables show up too. Start typing a variable name (like
_) and the VARs you've defined in the expression appear at the top of the suggestions. - Suggestions insert correctly. Accepting a suggestion with Tab, Enter, or a click now inserts exactly the right text — previously it could drop the opening bracket or quote, or mangle the line.
- Comment shortcuts. Ctrl+K,C comments the selected lines; Ctrl+K,U or Ctrl+K,V uncomments them — in every code editor in the app.
Measures & processing
- You can now see when a measure has a DAX problem. If a measure fails to evaluate after publishing, a red error icon appears next to it in the data preview — hover for the error message, click for the full details. The same error also shows directly in the measure's property editor under the expression, and the publish message warns you how many measures have errors. Previously the app just showed "—" with no explanation.
- Deleting the working model in the Fabric portal no longer breaks processing. The app now notices the working model is gone and automatically redeploys it on the next publish or process, instead of failing repeatedly with errors.
- Exporting debug logs works again. The exported file previously contained a few bytes of unreadable data; it now contains the actual logs.
Models pane
- Long names are easier to read. When the model tree is expanded and names run wider than the pane, a horizontal scrollbar now appears so you can read the full name — names are no longer cut off with "…".
- The sidebar is now resizable. Drag its right edge to make the Models (or Source Control) pane wider or narrower. Your chosen width is remembered between sessions.
Editing
- The expression editor in the Properties panel is taller. When editing a measure or calculated column, the inline DAX editor now shows about 10 lines instead of 3, so you can read most expressions without opening the full editor.
v0.2.9-beta — Released 2026-06-05
Modeling
- Switching a table to Direct Lake now works on publish. Converting an import table to Direct Lake previously produced a table Fabric would reject (the connection binding was incomplete). It now reuses the table's existing connection to build a proper Direct Lake binding, so the converted table publishes and processes. If the table's connection can't be read, the switch is blocked with an explanation rather than creating a broken table.
Publishing
- When you publish to an environment, the model's data connection is now repointed to that environment's connection. So if you develop against your dev warehouse but publish to Test, the published model pulls from your test warehouse — you no longer have to change the connection by hand before publishing. If a connection isn't set up for the environment you picked, you're warned before it publishes (rather than silently shipping the dev connection). Your local/dev model is left exactly as-is.
v0.2.8-beta — Released 2026-06-04
Source Control
- The Changes and Untracked file rows are more compact (they were taking far more vertical space than needed).
- Clicking an untracked file now shows its contents in a single full-width view (no empty "Original" side, since a new file has nothing to compare against), so you can review a new file before staging or deleting it (before, only changed files opened a comparison).
- Hovering a file row shows its full path — handy when long names are cut off.
Modeling
- New numeric columns — whether added by Refresh Schema or by importing a table — now follow your Default Column Summarize By setting (e.g. Sum, or Don't summarize), so you don't have to set it on each one. Text and date columns are left alone, and importing an existing model keeps that model's own settings instead of overwriting them.
- The Default Date Format setting moved from the Editor tab to the Modeling tab in Settings, alongside the other new-column defaults.
- When you change a measure's number format — like turning on Use Thousands Separator — its value in the data preview now updates immediately, instead of only after clicking away and back.
- Fixed a data-loss bug: pressing Delete in the diagram (for example while renaming a column) could wipe out the whole table — and it only removed it from the diagram, not the model, so it came back when you switched views. The Delete key no longer deletes anything; tables are removed only via right-click → Delete Table (which asks first and removes it properly), and relationships via their editor's Delete button.
- Click a column to select it. Single-click a column in the data preview, or a column/measure/hierarchy in the diagram, and the Properties panel now follows along with that item highlighted — no need to right-click and choose Properties first.
- Opening the Properties panel no longer scrolls the data preview back to the first column — it keeps your place.
- The Diagram now updates right away when you rename a column/table/measure or run Refresh Schema — before, those changes appeared in the model tree but the diagram kept showing the old version until you switched models. Your diagram layout (node positions) is preserved.
- Duplicate Model now just asks for a name and format — it saves the copy into your current project automatically (as a new model folder), names it what you typed, and shows it in the Files list. If you enter a name that already exists in the project, Save is disabled with an inline message so you can't overwrite or collide. (Before, it asked for a save path and could mis-name the copy "Model.")
- The Files list now also shows models (both BIM and TMDL) that are on disk but not yet listed in your solution file — marked with a small icon (hover to see "not in solution") — so duplicated or newly added models appear right away.
- Right-click a model in the Files list to Open or Delete it (Delete asks first, then removes the model's files from your system). This works for TMDL models too, which previously had no way to open from the Files list (they have no
.bimfile). Double-clicking a model also opens it.
v0.2.7-beta — Released 2026-06-04
Modeling
- Fixed: Refresh Schema could report a table "was not found in the data source" when the table's display name (e.g. "Sales") differed from the underlying source table name (e.g.
dbo.FactSales). It now finds the right source table.
v0.2.6-beta — Released 2026-06-04
Modeling
- Rename a data source connection from its Connection Name field and the new name updates everywhere it's used — the model, every table on that connection, and all environments — in one step. You'll get a confirmation showing how many tables are affected.
- A connection's Remove button is now disabled while tables are still using it — move those tables to another connection first, so a table never loses its data source.
- Refresh Schema now reads a table's schema using the active environment's connection and shows a progress popup while it works — instead of asking you to pick a data source. If a table's connection isn't set up in the active environment, you'll get a clear message pointing you to add it under Environments.
v0.2.5-beta — Released 2026-06-03
Stability
- The app now closes promptly instead of occasionally pausing — or needing a second click — while it sends usage data on exit. Sending telemetry no longer holds up closing, and your project and session are always saved first.
Licensing
- On networks that block our licensing server (some corporate proxies and firewalls return a "403"), the app no longer keeps retrying every minute and filling up the logs. It confirms the block once, then waits until your next launch to try again — and shows a small "Offline" badge in the status bar plus a plain-language note under Settings → About so you know your license couldn't be verified this session. The app keeps working from your last known status the whole time.
macOS
- Every "choose a folder" button now works — opening a repository, picking a clone destination, choosing an import location, Save As, and so on. Before, these silently did nothing on macOS.
Windows
- The app icon now shows in the taskbar and File Explorer for the portable Windows download (it was appearing blank).
Source Control
- Fixed: using "Open Repository" loaded the commit history but left the Branches list empty. Branches now appear right away, and closing a repository clears them.
- Fixed: a file comparison opened in Source Control could stay on screen over your model after switching back to the model view. It now closes when you leave Source Control.
- Recent Commits now shows more history (up to 50) in a scrollable list, and hovering over a commit shows its full message — handy since the list truncates longer messages.
- The Commit button's drop-down menu text is now sized to match the button instead of appearing oversized.
- Fixed: switching branches while a model was open could make the entire Source Control panel — including your branch list — disappear if the model didn't exist on the branch you switched to. The panel now stays put, and if the model isn't on the new branch you'll get a clear note that it was closed.
- When you commit a file, its open comparison closes on its own — the change is committed, so there's nothing left to compare. Comparisons for files you haven't committed yet stay open, and pushing never closes a comparison.
- The commit message box now sits above the list of changed files (it used to be below them), matching the layout you'll know from other Git tools.
- The Clone Repository dialog now pre-fills the destination folder (it used to start empty) — alongside your open project's folder, or your home folder if no project is open.
- If your access token has expired or is wrong, Semantic Modeler now tells you before it commits — with a prompt to fix it — instead of quietly committing and then failing to push, which made it look like your changes had vanished. Your changes stay put until the push can actually go through.
- Local commits you haven't pushed yet now stand out in the commit list (a colored marker and a "not yet pushed" badge), so it's clear at a glance what's still waiting to be sent.
- The Commit button's menu now includes a plain Commit All option alongside Commit All & Push.
v0.2.4-beta — Released 2026-06-02
Importing (Windows)
- The Browse button for choosing where to save an imported model now opens the folder picker on Windows — before, it did nothing. The example paths shown in the import dialog also now match your operating system instead of always looking like a Linux path.
Source Control
- Other people's branches now show up. When you open Source Control it quietly checks the server for the latest branches, and any branch that's on the remote but not yet on your machine appears under "Remote" — click it to start working on it (it's pulled down and checked out for you). Before, a freshly-cloned repo showed only the main branch with no way to reach the others.
v0.2.3-beta — Released 2026-06-01
Startup
- The app now opens immediately instead of occasionally freezing for several seconds at launch. It starts from your saved license state and checks in with the licensing server quietly in the background (retrying if the server is busy), so a slow connection no longer holds up the app.
Models
- New Default Date Format setting (Settings → Editor): pick a date format once and every new date/time column you import picks it up automatically, instead of formatting each one by hand. Leave it on "None" to keep the old behavior. Existing columns aren't changed, and you can still override any column individually.
- Right-click a model and choose Duplicate to make a copy under a new name or location. The copy opens alongside the original, and your original stays exactly as it was. Any unsaved changes are included in the copy.
Importing
- Importing from SQL Server Analysis Services (SSAS) now lists the models on the server so you can pick one — before, it connected but showed nothing. On-prem SSAS now uses Windows authentication.
- The Import dialog is clearer: Power BI & Fabric, Azure Analysis Services, and SQL Server Analysis Services are now separate, properly labeled options instead of one mixed "Analysis Services" tab.
Git
- Access tokens (PATs) are now remembered per project, so you can have several projects open — even different repos on the same Azure DevOps or GitHub host — and each uses its own token without overwriting the others. The token you type when cloning is saved to that project automatically, so syncing afterward just works, and removing a project also removes its saved token.
- Cloning a repository now puts the files in a folder named after the repo (e.g.
…\Repos\olap-projects\), matching the preview — previously it cloned straight into the folder you picked. - After cloning, the repo opens as a project automatically — even if it has no models yet — so it's connected to Git and ready for you to add models. Before, an empty repo cloned but didn't open anything.
v0.2.2-beta — Released 2026-06-01
Beta fixes
- Beta builds now reliably run in free beta mode. A packaging issue meant the previous beta build didn't register as a beta, so it could still show a trial countdown or your existing license instead of "Beta." Fixed.
v0.2.1-beta — Released 2026-06-01
Beta fixes
- If you'd opened Semantic Modeler before, a beta build could still show a trial countdown instead of running in free beta mode. Fixed — beta builds now run as beta and leave your trial untouched.
- Improved the accuracy of the system and OS information collected from beta testers (including correct platform/OS on macOS), and made sure usage data is reliably sent when the app closes.
v0.2.0-beta — Released 2026-06-01
Public beta
- During the public beta, the app runs free and does not start your 30-day trial — your trial stays untouched for when we launch, so you don't lose any of it by trying the beta. Beta builds show a "Beta" badge in the status bar.
Update notifications
- When a newer version is available, the status bar at the bottom now shows an "Update available" badge next to the version number — click it to go straight to the downloads page. Works on Windows, macOS, and Linux.
Easier uninstall
- You can now uninstall Semantic Modeler from inside the app — go to Settings → About → Danger Zone and click Uninstall. It removes the app and clears your local data (settings, projects list, saved connections); your model files are left untouched.
macOS
- The app icon now displays correctly in Finder, the Dock, and Launchpad — on some Macs it could still appear blank after the previous update.
Data collection (all platforms)
- Basic anonymous diagnostics (such as your operating system and app version) are now collected consistently across Windows, macOS, and Linux. During the beta this is on by default to help us find and fix issues; it will become optional after beta, and you can review what's collected under Settings > Debug.
v0.1.56
macOS fixes
- Fixed a crash that prevented the macOS app from opening at all — it now launches normally.
- The app now shows its icon in Finder, the Dock, and Launchpad instead of a blank placeholder.
- Fixed an issue where the macOS app would not open on Macs running an older version of macOS, showing "You can't use this version of the application with this version of macOS." The app now runs on macOS 12 (Monterey) and later.
v0.1.55
Windows compatibility with locked-down corporate machines
- Windows installs now make sure every bundled component is properly code-signed, so the app runs in tightly managed corporate environments that use application allow-listing (such as WDAC or AppLocker)
- Files already signed by Microsoft are left as-is, keeping builds fast and signatures intact
v0.1.54
macOS signing and usage telemetry
- macOS builds are now signed and notarized — no more Gatekeeper warnings on first launch
- Anonymous usage telemetry helps us understand how the app is used and prioritize improvements
- Telemetry is enabled during the beta period and can be viewed under Settings > Debug
v0.1.53
API security and version management
- Improved security for license and trial checks — requests between the app and FactFoundry are now authenticated
- If your app version is no longer supported, a clear "Update Required" screen appears with instructions to update
- Token refresh is handled automatically in the background — no user action needed
v0.1.52
Code preview, BIM compatibility, and reliability fixes
- TMSL and TMDL views — New toggle buttons in the Explorer sidebar let you view the full model's underlying code as read-only BIM JSON (TMSL) or TMDL, with line numbers and syntax highlighting
- BIM files saved by Semantic Modeler now match the format used by Visual Studio, making it easier to work across both tools
- Environment data in saved files is now cleaner and easier to read in diffs
- Fixed debug logging settings resetting on app restart
- The app now reports your OS name and version (e.g., "Windows 11", "macOS 26.4", "EndeavourOS") for support diagnostics
- macOS downloads now available for both Apple Silicon and Intel Macs
v0.1.51
Trial and licensing
- To support licensing enforcement, the app collects some basic device and system information (such as your platform and app version). No data about your models, servers, or content is ever collected.
- The app now checks in with the server on each launch to keep your trial and license status in sync
v0.1.50
Excel imports and deployment reliability
- You can now import Excel (.xlsx) files as tables, with automatic header detection and type inference
- Improved CSV imports with better encoding support and type detection
- Direct Lake models now deploy correctly to Fabric
- Processing ("Process All Tables") now uses the correct data source connections instead of defaulting
- Clearer error messages when Fabric rejects a storage mode change
v0.1.49
Connection and formatting fixes
- Fixed an issue where the wrong data source connection could be selected when multiple connections were available
- Measure preview values now display correctly in the data grid
v0.1.48
Format string editor redesign
- New format string editor with category selection (numbers, currency, percentages, dates, etc.), decimal places, thousands separator, and negative format options
- Live preview shows how your format will look before applying
- Measures and columns now get sensible default formats based on their data type
v0.1.47
Re-release of v0.1.46 with the macOS build restored.
v0.1.46
Processing improvements and offline trial support
- Processing now works for all workspace types (Fabric, SSAS, Azure AS) — not just Fabric
- Each user gets their own preview workspace name to avoid conflicts when multiple people deploy to the same workspace
- Trial mode now works offline — if the licensing server is unreachable on first launch, your 30-day trial starts immediately and syncs later
- License no longer shows as invalid during temporary network outages
- Renamed tables now update everywhere in the app immediately
- Many stability improvements to the processing workflow and error reporting
v0.1.45
Stability fix
- Reverted a packaging change that broke the app on some systems
v0.1.44
Environment management and startup improvements
- Environments can now be reordered via right-click Move Up / Move Down
- App startup no longer flashes the license page while validating
- Processing cancellation now shows a clear cancel message
- Several fixes for property persistence and UI responsiveness
v0.1.43
Linux fix and auto-recovery
- Fixed license screen appearing blank on Linux
- License validation now auto-recovers if your session is still valid — no more getting locked out unnecessarily
v0.1.42
Processing and macOS improvements
- Processing modal now shows the full workflow: deployment progress followed by per-table processing
- Smarter connection selection — prefers shared/org connections over personal cloud connections
- macOS installer now includes the full app bundle (previously was missing components)
v0.1.37
Major feature release: Sync from Remote, data dictionary import, and auto-connections
- Sync from Remote — Pull changes from a deployed model back to your local project. Right-click a model and select "Sync from Remote" to see a side-by-side diff of what changed, then accept the remote version if you want it. Great for capturing quick fixes made directly in production.
- Data dictionary import — Bulk-update descriptions, display folders, categories, and synonyms by importing an XLSX or ODS file
- Auto-configure connections — After deploying to Fabric, data source connections are now automatically bound, eliminating the manual configuration step in the Fabric portal
- Process All Tables — Available from the model's right-click menu; automatically deploys the model first
- Direct Lake validation — Warns you before switching to Direct Lake if your table has calculated columns or lacks a Fabric data source
- Detailed logging toggle — Filter the debug log to show only warnings and errors, or see everything
- New environment auto-created for models that don't have one yet
v0.1.36
Licensing and trial system
- 30-day free trial — Starts automatically on first launch, no sign-up required
- License activation — Enter a license key or sign in with your FactFoundry account to activate
- Organization master keys — Commercial customers can use a single key to activate all machines
- AI Features indicator — Shows whether AI capabilities are enabled for your license
- New Settings page with license management, status display, and sign-in/sign-out
- Data dictionary export now includes Category and Synonyms columns
- Many UI improvements for a cleaner, more compact desktop feel
v0.1.27
Projects, TMDL editing, and diagram export
- Projects — Save and switch between multiple named projects, each with its own models, diagram state, and settings. Auto-migrates from the old single-session format.
- Folder-based model discovery — Open a folder and see all your .bim and TMDL models in a file tree
- Editable TMDL — Edit the raw TMDL code for any table, column, measure, hierarchy, or partition. Changes are validated and applied live, with rollback on errors.
- Whole-table TMDL editing — Add, remove, or modify columns and measures by editing a table's complete TMDL definition
- Diagram export — Export diagrams as SVG, PNG, or PDF with full visual fidelity
- Git diff viewer — Side-by-side diff with color-coded changes, collapsible unchanged regions, and synchronized scrolling
- ODS export — Data dictionary can now be exported as ODS in addition to XLSX
- SSAS and Azure AS on all platforms — These connection types are now available on macOS and Linux (when domain-joined)
- Import Model on Welcome screen — Quick access to the import dialog right from the start page
v0.1.26
Grid view enhancements and calculation groups
- New columns from Grid view — Click "+ New Column" at the end of the column headers to add a calculated column
- Delete columns from Grid view — Right-click any column header to delete it
- Calculation Groups — Full support for creating and editing calculation groups with DAX expressions and format string expressions
- Perspectives redesign — Perspectives now open in the main content area with a tabbed interface
- Translations — Re-enabled with a full data grid editor, CSV import/export, and search
- Partitions panel — Edit partition expressions directly with a tabbed, full-height editor
- Filtered measures — Measure values in the data grid update when column filters are active
- PBIX TMDL import — PBIX files using the newer TMDL format are now supported
- DAX Query tabs — Multiple query tabs with rename, close, and persistent state
v0.1.25
First closed beta release
- Perspectives support with Explorer tree integration
- Unprocessed tables show column headers from the model definition
- Solution file support (.sln and .slnx)
- Unit test suite and CI test gate