Skip to content

Releases: ierror/synaps-cad

v0.7.0

03 Mar 23:27

Choose a tag to compare

Added

  • Enhanced Chat UI — improved message styling with distinct background colors for user, AI, and error messages.
  • Thinking Process Display — collapsible "thinking" section in chat responses to show the model's reasoning process.
  • Streaming Indicator — visual feedback while the AI is generating a response.
  • $fn dropdown — quick selection of common $fn values in the code editor toolbar.
  • Chat History Draft — if you start cycling through previous messages and then return to the draft, your unsent text is preserved.
  • Dynamic Grid — the XYZ grid now grows automatically based on the model's bounding box (with margin), minimum 50 units.
  • Grid Toggle (G key) — toggling grid visibility now correctly applies to dynamically resized grids.
  • Agent Timer — elapsed time is shown next to the spinner while the AI is working.

Changed

  • Part Label Contrast — improved visibility of part labels against the background.
  • Auto-scroll Behavior — chat now smarter about scrolling to new messages vs. preserving scroll position.
  • Refactored Codebase — split large ui.rs and compilation.rs files into modular components for better maintainability.
  • AI Context Improvements — added physical realism checks in AI instructions.

Fixed

  • UI Overlap — Part labels are now hidden when they would overlap with the top viewport toolbar or the left side panel, preventing visual clutter.
  • Markdown Rendering — Fixed bold text rendering (**text**) in chat messages and thinking blocks, ensuring inline bolding works correctly and markers are hidden.
  • BMesh Transformations — Refactor BMesh transformations to include fallback to CsgMesh on panic.

v0.6.0

02 Mar 22:18

Choose a tag to compare

Added

  • Better AI context for views — the AI now knows exactly which $view you are currently seeing in the viewport. Standard orthographic views (Front, Right, Top, Bottom, Iso) include descriptive orientation labels (e.g., "Looking from +Y towards origin") for better spatial grounding.
  • Physical Realism guidelines — the AI's internal instructions now emphasize checking the physical "fit" and structural integrity of individual parts in multi-part assemblies, including proper tolerances and alignment.

Changed

  • Improved chat auto-scrolling — the chat now respects your manual scrolling. It will only "stick to the bottom" if you are already at the end of the conversation. If you scroll up to read previous messages, new incoming text won't force-scroll you back down.

Fixed

  • UI Overflow — the "View" selector and "Attached" image strip now use wrapped layouts. If you have many views or attachments, they will wrap to new lines instead of overflowing the right edge of the sidebar.
  • Compilation error in UI system — fixed a Rust compile error where CompilationState was incorrectly accessed as an immutable resource during a zoom-to-fit request.

v0.5.2

01 Mar 21:00

Choose a tag to compare

Fixed

  • Non-manifold mesh fallback — parts that fail manifold creation (e.g. thin linear_extrude) now render via direct polygon conversion instead of being silently dropped
  • Removed unsafe code — bumped genai to 0.6.0-beta.3 which threads auth resolver through all_model_names(), eliminating the set_var workaround; unsafe_code lint reverted to forbid
  • Verification state reset — verification state now properly resets to Idle after AI streaming ends

v0.5.1

01 Mar 12:39

Choose a tag to compare

Fixed

  • Per-provider API keys — each AI provider (Anthropic, OpenAI, Gemini, etc.) now stores its own API key; switching providers no longer loses your key
  • Per-provider model memory — switching between providers remembers your last-used model for each
  • Multi-view context for AI — when using $view branches, all views are rendered and sent to the AI as context (non-active views at 128px for efficiency)
  • View image cycling with spinner — while waiting for AI response, cycles through rendered model views with a spinner overlay
  • Stale view images after code clear — clearing code now properly clears cached view textures instead of showing old images
  • View cycling images not displaying — textures are now cached across frames for proper GPU upload instead of re-created each frame

v0.5.0

28 Feb 23:13

Choose a tag to compare

Added

  • Search-and-replace diffs — AI can now send targeted <<<REPLACE / === / >>> blocks instead of full code replacement, saving tokens on large scripts. Falls back to full replacement automatically.
  • Syntax-highlighted code blocks in AI chat responses — OpenSCAD/synapscad code uses the same color scheme as the editor (keywords, builtins, strings, numbers, comments)
  • Bottom and Isometric views — AI now receives 5 rendered views (Front, Right, Top, Bottom, Iso) for better spatial understanding
  • Chat input history preserves images — pressing ↑/↓ in chat input restores both text and attached images
  • Session-aware chat — after app restart, previous chat messages are displayed but not re-sent to the AI, preventing context pollution from old sessions
  • Code clear resets AI chat — clearing the code editor also resets the AI chat for a fresh session

Fixed

  • Error messages always expanded — error responses in chat are forced open regardless of persisted collapse state
  • macOS .app bundle launch — added NSPrincipalClass to Info.plist and ad-hoc code signing in release workflow to prevent Gatekeeper blocking
  • Verification prompt rendering — backtick-fenced text in verification prompts no longer incorrectly rendered as code blocks

Changed

  • Splash screen duration reduced from 3s to 1.5s (fade from 0.5s to 0.3s)

v0.3.0

28 Feb 18:53

Choose a tag to compare

Full Changelog: v0.2.3...v0.3.0

v0.2.3

28 Feb 00:49

Choose a tag to compare

Full Changelog: v0.2.2...v0.2.3

v0.2.2

27 Feb 16:21

Choose a tag to compare

Full Changelog: v0.2.1...v0.2.2