Spaces:
Sleeping
Sleeping
Commit History
-
feat: add model selector dropdown to UI
Users can now pick which model to use per backend (e.g. gemini-2.5-flash vs gemini-2.5-pro) from a dropdown in the top bar. Available models are configured in config.yaml and served via GET /api/backend-models. Also adds .gitignore entries for Claude Code local files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1f27d6a -
feat: rewrite gap cards with severity support and generic rendering
Rewrite renderQuestionCards to sort by severity (blocking/recommended/ nice_to_have), add REQUIRED badges and color-coded borders, and render all categories generically. Simplify gapSubmitAll to format selections as plain text without mutating designState — the backend's extract_decisions() handles state updates on the next chat turn. Remove gapDimChanged and all category-specific special cases. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>a057d80
-
fix: ask agent confirm now correctly updates plan card fields
askAgentForField() and confirmRecommendation() both called sendMessage() which triggered a backend round-trip. The crew orchestrator blindly reset phase from "planning" to "exploring" and cleared the plan on any message, destroying the plan state before the auto-fill could take effect. - Add plan_context flag through the full backend chain so plan-field queries preserve the planning phase - confirmRecommendation() now updates locally instead of sending to backend, preventing the phase reset that broke auto-fill - sendMessage() accepts options param to pass planContext flag Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>cfa0cbb -
fix: address code review issues - notes persistence, XSS, value extraction order
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>49af520 -
feat: unified confirm/revise auto-fills plan card fields
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>3eab6ac -
feat: editable plan card with field edit, ask agent, notes, save & continue
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>fb8a7a9 -
feat: add i18n strings for editable plan card
eda0e3d -
feat: add CSS for editable plan card controls
7606779 -
fix: include geometry stats in CrewOrchestrator preview to prevent toFixed crash
CrewOrchestrator was hardcoding execution as {"success": True} without volume_mm3, bounding_box_mm, face_count, or edge_count. The frontend's updateGeoStats() called .toFixed() on undefined, crashing the 3D viewer. Extract geometry metadata from the CadQuery shape and add a null guard in the frontend for safety. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>8742594 -
fix: question cards use batch selection with single Submit button
Instead of sending immediately on chip click, users now: - Toggle chip selections across multiple cards (highlighted state) - Fill in dimension inputs - Type custom values - Click a single "Submit" button to send all answers at once This composes all selections into one message and updates designState for all answered categories in a single turn. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>d8ad299 -
feat: add frontend question cards with gap card rendering and interaction handlers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>3d01c9a -
fix: path traversal in model endpoints, XSS in plan card, remove dead code
- Validate model file names against safe character regex and resolve path to prevent directory traversal in all /api/models/ endpoints - Escape HTML in plan card and wizard review to prevent XSS from agent responses containing markup - Remove duplicate _is_plan_trigger check in _run_crew (dead code, already handled in chat_turn) - Use Literal type for DesignState.phase field to catch invalid states Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>d35c03c -
feat: add Chat/Guided tab switcher, wizard, plan card, 3MF downloads, i18n
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>f873b45
-
feat(frontend): add 3D toolpath renderer, view toggle, and G-code download
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>89cec98 -
feat(frontend): add G-code parser with G0/G1/G2/G3 and arc tessellation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>82b7344 -
feat: add i18n support for English, Traditional Chinese, Vietnamese
Language toggle in topbar persists to localStorage. All UI strings are translated including viewer hints, chat, gallery, confirm/revise buttons, quick start chips, and error messages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>e8d35aa -
feat: add confirm/revise buttons to agent recommendations
Agent messages now show CONFIRM and REVISE buttons. Confirming sends the recommendation as a decision that updates the design state. Revising pre-fills the input with context for the user to edit. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>0b9dfdd -
feat: add STEP/STL download links to gallery cards, persist models from server
- Gallery cards now show STEP and STL download buttons - Loading a gallery item updates the viewer download bar - Gallery loads existing models from server on page load Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1224d2f -
fix: surface CAD execution errors to user instead of silently failing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>f50292b -
feat: remove mock/claude backends, default to gemini, add openai toggle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>972271d
-
feat: add DesignState memory + localStorage persistence
- agents/design_state.py: Pydantic DesignState model with regex-based extraction of materials, dimensions, fasteners, axis recommendations, and design decisions from agent messages (no extra LLM call) - agents/prompts.py: inject "Current Design Spec" block into LLM context so decisions survive history truncation - agents/orchestrator.py: both orchestrators maintain and return design_state across turns - server/routes.py: pass design_state through API - web/index.html: localStorage persistence for chat history and design state, restore on page load, "NEW" button to start fresh Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>d46cdb3 -
fix: prevent Gemini from repeating responses
- Fix message duplication: user message was sent in both history and message fields, appearing twice in LLM context - Bundle history as a single user-role context block instead of alternating user/assistant messages (prevents Gemini from echoing its own prior output) - Add explicit anti-repetition instructions to orchestrator prompt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>05c9a7b -
feat: add chat API, MCP chat_turn tool, and rewrite frontend
- server/routes.py: POST /api/chat, POST /api/report, GET /api/agents - server/web.py: include chat routes - server/mcp.py: add chat_turn MCP tool for Claude Desktop - web/index.html: complete rewrite — fullscreen 3D viewer with slide-out multi-agent chat panel, @mention autocomplete, on-demand preview, code viewer modal, gallery modal Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>4dc45c6 -
feat: add Gemini backend (free tier LLM generation)
GeminiBackend uses google-genai SDK with Gemini 2.5 Flash (free tier). Supports both text and image-to-CAD generation. Wired into CLI, MCP server, and web frontend as a GEMINI toggle button. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>b7debe2 -
feat: dynamic MockBackend generates unique models from any prompt
Replace hardcoded keyword matching with a prompt-parsing engine that extracts dimensions, shape type (plate/cylinder/box/L-bracket), and features (holes, pockets, slots, fillets, fins, bosses) from natural language. Any prompt produces a valid, unique CadQuery model. Added 5 more quick examples to the web frontend (flange, heatsink, L-bracket, enclosure, slotted plate, boss mount). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>236feb8 -
feat: add NeuralCADBackend, vision support, and web demo frontend
- NeuralCADBackend scaffold for future trained ML pipeline - generate_with_image() on Anthropic/OpenAI backends for vision input - FastAPI web server proxying to MCP SSE server - Single-file frontend with Three.js 3D viewer, dark industrial theme - Tabs: Generate, Code, Validation, Gallery Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>5fabb9d