Skip to content

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 docs/mcp-host-setup.md: comprehensive guide to running therion-mcp headless, connecting via --connect, configuring Claude Code / LM Studio / Ollama, using the in-app Assistant, and troubleshooting (with profiles, tool categories, resources, prompts, safety model, and design notes).
  • Updated README Highlights and docs/features.md to include and caveat all three modules.
  • Added screenshots page for structural geology features, linked from README.
  • Structural Geology chapter in the user guide updated to a five-step wizard walkthrough with stereonet coverage.

Build & export

  • Export format architecture refactor: one canonical source of truth (keyed by format) for which format writes which file extension, enforced via round-trip tests. Prevents presets from offering unsupported -fmt values.
  • Per-export-type trap-file lists replace global extension confusion tables, improving accuracy when guessing artifact viewers.
  • Quick Export presets validated against Therion's format table to guarantee compiler compatibility.

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 stereonet math and MCP architecture documentation in docs/ and .claude/mcp-integration/.
  • Added a screenshots page (docs/screenshots.md) and structural-geology screenshots, linked from the README.

Fixes

  • (Carried from v0.2.1-alpha.1 and prior)

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.
  • Refactored stereonet math into dependency-free Therion.Structural library.
  • Refactored export-format mappings into a centralized, round-trip-tested table.
  • Unified MCP tool catalog across headless server and in-app host via TherionMcpBuilderExtensions.
  • Shared ChatEngine (OpenAI-style tool loop) extracted to Therion.Assistant for reuse by both the in-app Assistant pane and the Therion.Mcp.Evals harness.

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