Skip to content

Releases: apgeo/ThIDE

v0.3.0-alpha.2

v0.3.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:10

Downloads

Platform Download
Windows — installer ThIDE-Setup-0.3.0-alpha.2.exe
Windows — portable (.zip) ThIDE-win-x64.zip
Linux — Debian/Ubuntu (.deb) thide_0.3.0-alpha.2_amd64.deb
Linux — AppImage ThIDE-0.3.0-alpha.2-x86_64.AppImage
Linux — portable (.tar.gz) ThIDE-linux-x64.tar.gz
macOS (Apple Silicon) — portable ThIDE-osx-arm64.tar.gz
User Guide (PDF) ThIDE-User-Guide.pdf

Self-contained builds — no system .NET runtime required. The full asset list is in the Assets section below.

What's Changed

  • fix(syntax): resolve extensionless includes to their default .th target by @apgeo in #2
  • fix(syntax): resolve includes in Therion's literal->.th->.th2 order (follow-up to #2) by @apgeo in #3

New Contributors

  • @apgeo made their first contribution in #2

Full Changelog: v0.3.0-alpha.1...v0.3.0-alpha.2

v0.3.0-alpha.1

v0.3.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jul 20:15

ThIDE v0.3.0-alpha.1

Alpha release. ThIDE is in active alpha development: there are known bugs, the UI is still evolving, features are tested to varying degrees, and testing on Linux and macOS has been sparse. Targets Therion v6.4.0.

This is an alpha pre-release focused on structural geology visualization enhancements and expanded Model Context Protocol (MCP) integration, including a native stereonet, camera-synced stereonet insets, pop-out panels, and AI-assisted workflows via headless and in-app MCP servers. Download the Windows installer or the Linux .deb package or .AppImage.

Requirements: the external Therion toolchain for compiling; on Linux, WebKitGTK (libwebkit2gtk-4.1-0) for the optional 3D viewer / structural plots. For the MCP server and Assistant: a local OpenAI-compatible endpoint (LM Studio, Ollama) or Claude.

Full Changelog: https://github.com/apgeo/ThIDE/commits/v0.3.0-alpha.1

Downloads

Platform Download
Windows — installer ThIDE-Setup-0.3.0-alpha.1.exe
Windows — portable (.zip) ThIDE-win-x64.zip
Linux — Debian/Ubuntu (.deb) thide_0.3.0-alpha.1_amd64.deb
Linux — AppImage ThIDE-0.3.0-alpha.1-x86_64.AppImage
Linux — portable (.tar.gz) ThIDE-linux-x64.tar.gz
macOS (Apple Silicon) — portable ThIDE-osx-arm64.tar.gz
User Guide (PDF) ThIDE-User-Guide.pdf

Self-contained builds — no system .NET runtime required. The full asset list is in the Assets section below.

Highlights

  • Native stereonet projections — new Wulff/Schmidt equal-angle and equal-area lower-hemisphere stereonet rendering with graticule, poles/measurements/grid/labels/white-background toggles, and PNG export, natively rendered in C# (no WebView).
  • Stereonet inset in the 3D plot — a camera-following bottom-left corner viewport mirrors the main 3D viewer's orientation in real time, rendering each visible plane's great circle and pole synchronized across all structural-geology tabs.
  • Pop-out stereonet panel — the stereonet can now float as its own dockable tool, mirroring the existing 3D Plot pop-out architecture with shared view-model DI wiring and updated Wizard navigation that skips inactive tabs.
  • MCP server & headless CLItherion-mcp (stdio) exposes 22 read-only tools (workspace, diagnostics, navigation, survey analysis, calculations) and 12 write tools (editing, scaffolding, exporting, compiling) over the Model Context Protocol; ring-based access control (--profile data for read-only) and safety by default (dry-run, path jail, no overwrites).
  • In-app MCP serverPreferences ▸ MCP enables an HTTP loopback listener so external LLM hosts (Claude Code, LM Studio, Ollama) or the built-in Assistant panel can drive the running IDE's live buffers, panes, and 3D viewer through the same tool catalog.
  • Built-in Assistant panelView ▸ Assistant opens a chat docked in ThIDE, connected to a local OpenAI-compatible endpoint (LM Studio, Ollama) with Allow/Deny cards for any tool that writes, plus ready-made prompts (audit_workspace, fix_diagnostic, summarize_survey, prepare_release).
  • Experimental features flagged — Assistant panel, Blender integration, and MCP integration now carry amber WIP banners and documentation caveats, clearly signalling ongoing development.
  • Export format architecture cleaned up — one source of truth for format-to-extension mappings, preventing preset/compiler mismatches and enforcing consistency across all Quick Export paths.

Features & improvements

Stereonet & structural geology

  • New Wulff/Schmidt stereonet math library (Therion.Structural): lower-hemisphere equal-angle/equal-area projection, great circles from plane normals, poles, shot-to-line conversion, 10° graticule, and comprehensive tests.
  • New native stereonet 5th tab in the Structural Geology panel: projection toggle, measurement/pole/grid/label/background controls, trend-plunge readout on hover, click-to-select synced with grid/preview/plot, and PNG export.
  • Camera-following stereonet inset in the 3D plot (bottom-left viewport): mirrors the main camera orientation every frame, rendering poles and great circles in real time. Toggleable from the plot toolbar.
  • Pop-out stereonet as a dockable StructuralStereonet panel with the same architecture as the 3D Plot pop-out, using shared DI and float-window layout presets.
  • Wizard Prev/Next navigation now dynamically skips popped-out tabs (Plot and/or Stereonet), instead of assuming fixed tab order.
  • Plane colours unified across 3D discs, arcs, poles, and stereonet grid via a shared C# palette (StereonetControl, StereonetProjectionLabelConverter).

MCP integration (experimental)

Headless therion-mcp server

  • Stdio-based MCP server (Therion.Mcp library + Therion.Mcp.Server executable): exposes a unified tool catalog over the Model Context Protocol, runnable as a child process from Claude Code, LM Studio, Ollama, or any MCP-compatible host.
  • Ring-based access control (TherionMcpBuilderExtensions): three security rings regulate tool visibility—
    • R1 (22 read-only tools): workspace/file/diagnostics, symbol navigation, survey graph, field notes (todos/leads), structural analysis, calculations, Therion Book references.
    • R2 (12 write tools): file editing, scaffolding (.th2, TopoAndroid projects), imports, GIS/table/report exports, project metadata, builds — all withheld entirely by --profile data.
    • R3 (UI-only tools): get_ui_state, open_file, run_command, save_all — registered only when an IUiBridge is present; headless servers get NullUiBridge.
  • Resources and prompts (read-only in both profiles): URI-addressable resources (therion://file/{path}, therion://diagnostics, therion://stats, therion://graph/survey, therion://thbook/{topic}) and guided prompts (audit_workspace, fix_diagnostic, summarize_survey, prepare_release).
  • Safety by design: dry-run by default for mutations, path jail (symlinks resolved, bounds checked), no overwrites (scaffolds reject existing targets), never half-written (all-or-nothing validation), honest tool annotations (readOnlyHint, destructiveHint), result caps (100 KB text by default, 200 entries), and file encoding preservation (character-by-character validation before write).
  • Tool catalog (single source of truth): TherionMcpBuilderExtensions defines all tool types once; host and server cannot drift, and profiles cannot contradict annotations.

In-app MCP server & Assistant panel

  • New McpHostService: manages the HTTP loopback listener (Kestrel) on demand, tied to Preferences ▸ MCP setting EnableMcpServer; writes a discovery file (%AppData%/ThIDE/mcp-endpoint.json, XDG fallback on POSIX) with the port, bearer token, and process ID.
  • therion-mcp --connect bridges a host's stdio to the running IDE: spawns a stdio→HTTP shim that discovers the in-app server via the file and proxies MCP messages, unlocking R3 tools (UI state, open files, run commands) and live unsaved buffers.
  • Built-in Assistant panel (View ▸ Assistant, new AssistantPaneView): docked chat connected to a local OpenAI-compatible endpoint (LM Studio :1234/v1 by default; configurable in Preferences). Displays the same tool catalog; each write tool pauses on an Allow/Deny card showing the exact call and arguments. Read-only tools run silently.
  • McpSettingKeys: whitelisted settings the MCP ring-R3 get_setting/set_setting tools may touch — editor/diagnostics/build/theme/language preferences — with unit-tested pure read/write logic; never exposes security-weight or privilege settings.

Evaluation harness & testing

  • New Therion.Mcp.Evals CLI: deterministic evaluation harness for the MCP server, scoring model performance on committed workspace fixtures end-to-state with no LLM judge.
    • Fresh working copy per case (mutations never dirty the fixture).
    • Spawns therion-mcp on a fixture over stdio in full profile, runs OpenAI-style tool loop via ChatEngine.
    • Metrics: call_validity, task_success, repair_success@3, qa_exact, median tokens/wall.
    • Per-case grading: exact-number Q&A (grader recomputes answer from server), end-state checks (lint-clean, file created), graceful refusals (no invented tools).
    • Context modes A/B/C: --context-mode none|card|pack injects workspace digest as a system message to measure how context injection affects task success.
    • CI-ready: --self-test (suite integrity + scorecard math) and --probe (spawn on each fixture, print ground truth) run on any machine with no model/GPU/endpoint.

Experimental features & documentation

  • Assistant panel, Blender integration, and MCP integration now marked as experimental (WIP) with amber banners in the UI and caveats in all related documentation.
  • New `do...
Read more

v0.2.1-alpha.1

v0.2.1-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jul 21:21

ThIDE v0.2.1-alpha.1

Alpha release. ThIDE is in active alpha development: there are known bugs, the UI is still evolving, features are tested to varying degrees, and testing on Linux and macOS has been sparse. Targets Therion v6.4.0.

This is an alpha pre-release with new capabilities across the embedded viewers, the Object Browser, structural-geology tooling, and the compiler-output workflow, plus a batch of stability fixes for background/UI-thread crashes and cross-file rename. Download the Windows installer or the Linux .deb package or .AppImage.

Full Changelog: https://github.com/apgeo/ThIDE/commits/v0.2.1-alpha.1

Highlights

  • Cross-platform embedded web views — the 3D viewer and structural plots now work more reliably on Linux (WebKitGTK), with startup workarounds for blank panels, a friendly fallback when no web engine is installed, and DevTools/inspector access. Clicked .lox/.3d models can open directly in the built-in 3D viewer.
  • Structural geology upgrades — the 3D Plot can pop out into its own dockable/floatable panel, planes gain a per-plane Type (Fault / Bedding / Joint, with type-based colouring), and the selected plane now stays highlighted across the grid, Mainline Preview, and 3D plot.
  • Smarter compiler-output links — a single click routes each output link by type: source files and logs open in the editor at the reported line; generated artifacts open in the right in-app viewer or external tool, with a full right-click context menu.
  • Per-tab Object Browser filtering — every tab gets its own free-text filter, and clicking a count on the Overview ▸ Quality tab drills straight into the matching rows.
  • Save-before-close prompt — closing a tab (or bulk-closing tabs) with unsaved changes now prompts Save / Don't save / Cancel.

Features & improvements

Embedded 3D viewer & web views

  • New cross-platform WebViewSupport layer: applies Linux WebKitGTK environment workarounds (DMA-BUF / compositing) at startup, probes for a missing engine so panels show a fallback instead of a dead box, and opens DevTools (WebView2 window on Windows, WebKit inspector on Linux).
  • New Preferences ▸ Debug section for the low-level web-view switches (DMA-BUF renderer, accelerated compositing, experimental offscreen mode, developer tools).
  • Open clicked .lox/.3d models in the built-in 3D viewer by default (new Open3dInInternalViewer setting), and auto-open the project's default model as soon as the panel is shown.
  • Added a URL-test button to navigate the embedded engine to an arbitrary page (handy for verifying the Linux web-view workarounds).

Structural geology

  • Pop the 3D Plot tab out into its own dockable/floatable panel (StructuralPlotToolView) wrapping the same content view-model — no duplicated state.
  • New per-plane Type column (Fault / Bedding / Joint, free-text with suggestions) that drives per-type colouring of the plane line in the Mainline Preview.
  • Selection sync across all three views (grid / preview / plot), highlighting the selected plane's disc in the plot; new context menu (Highlight in Preview / Go to Source).
  • The Mainline Preview hosts its own Show Structure Planes toggle.

Object Browser & analytics

  • Per-tab filtering: a shared free-text box (multi-term, matched across all visible fields) composed with an optional custom subset filter, via BrowserTabFilter + a reusable BrowserFilterBar.
  • Overview ▸ Quality drill-down: clicking a metric count surfaces the Object Browser and restricts the matching tab to that metric's rows (a labelled, clearable chip), driven by shared DataQualityChecks predicates so the count and the filtered rows always agree.

Build & compiler output

  • Compiler-output file links now route by type on click: Therion source + logs open in the editor at the reported line; generated artifacts (.lox/.3d → embedded 3D viewer, .pdf → in-app map viewer) open in the right in-app viewer per settings, or fall back to the external tool / OS default.
  • New right-click context menu on output links: Open · Open in Application Viewer · Open in External Application · Reveal in File Manager · Copy Path.

Editor & shell

  • Prompt to save modified documents before closing a tab (covers the tab ✕, bulk close-others/all/right, and programmatic closes).
  • Moved Welcome from the Help menu to the View menu (it's a view/panel).
  • New compact, orientable panel window controls (full-screen / float / centre) that can stack vertically to save toolbar space; adopted in the Map Viewer and other panels.

Documentation

  • Added a screenshots page (docs/screenshots.md) and structural-geology screenshots, linked from the README.

Fixes

  • Cross-file rename correctness:
    • Use the active document's live (unsaved) buffer for rename spans, so a rename on a document with pending edits no longer silently drops that file's edits.
    • Attribute @-qualified fix / station / mark references to the real declaring station so cross-file rename covers them.
  • Off-thread / cross-thread crashes: marshal session-change and app-settings-changed events to the UI thread in the editor, 3D viewer, and build view-models (fixes "the calling thread cannot access this object" and "PlatformImpl is null" errors, and a stalled rename dialog).
  • Preferences window: clamp the window and its grids to the current screen so its default size never runs off the monitor.
  • File menu: close the File menu after opening a recent file or directory (the async open previously left the menu lingering).
  • Localization: fixed Romanian diacritics across the UI strings.
  • Semantics: NUL-join the survey-point composite key to harden the StationsBySurveyAndPoint lookup; added a regression test for splitting a connected mainline into a floating piece (TH_SEM_015).

Internal / build

  • New Release workflow (.github/workflows/release.yml): pushing a v* tag builds self-contained, single-file publishes for win-x64, linux-x64, and osx-arm64, plus native installers (Windows Setup.exe via Inno Setup, Linux .deb + AppImage), a bundled User Guide PDF, and attaches everything to the GitHub Release. Pre-release tags (with a -suffix) are flagged as GitHub pre-releases. Added contents: write permission for release publishing.
  • Refactored the data-quality predicates into a reusable DataQualityChecks helper (no behaviour change).

Requirements: the external Therion toolchain for compiling; on Linux, WebKitGTK (libwebkit2gtk-4.1-0) for the optional 3D viewer / structural plots.