Commit Graph

46 Commits

Author SHA1 Message Date
Agent Zero d5acf76d0b task(CAD-14): phase 4b - dynamic plugin tools section in left sidebar (all registry tools reachable, single tool location) 2026-09-16 23:12:14 +02:00
Agent Zero 2a05257ab5 task(CAD-14): phase 4a - tool options store + panel (optionsSchema-driven UI in right sidebar, dispatcher getOptions wired, registry defaults seeded) - truss options length/chordCount/angle now actually reach the tools 2026-09-16 23:05:17 +02:00
Agent Zero 1d129042d4 task(CAD-14): phase 3 - V2 select tool on v2 doc (click via bridge hitTest, shift-additive, box-select by center-in-bbox, onChange app channel via ref), bridge onChange wired 2026-09-16 22:03:15 +02:00
Agent Zero f9c67a7d78 task(CAD-14): phase 2 - stale closure fix (onElementCreatedRef), debug expose docCount/announcedCount, overlay handles for pixi mode 2026-09-16 18:28:27 +02:00
Agent Zero 02ed6a5ff0 task(CAD-14): phase 1 - tool exclusivity, V2 dispatcher exclusive for V2 tools (was: both engines had same tool = multi elements per click), selection handles now render in pixi mode via overlay pass, E2E proof test added 2026-09-16 18:03:08 +02:00
Agent Zero 685757303f fix(CAD-13): remove duplicate tool ribbon - drawing tools only in left sidebar (like real CAD), ribbon reduced to Start/Ansicht/KI, Stueckliste moved to Ansicht extras 2026-09-16 10:22:36 +02:00
Agent Zero 0e4f9fe160 fix(CAD-13): mirror existing DB elements into pixi renderer - cachedElements was 0 for old projects (only new V2 elements reached pixi), skipElementRendering fallback restored on pixi failure 2026-09-16 10:04:40 +02:00
Agent Zero af9f53c61f fix(CAD-13): double rendering - legacy canvas skips element rendering when pixi renderer is active (grid/background stay), defensive fallback if pixi fails 2026-09-16 09:55:59 +02:00
Agent Zero c4a76fb74e fix(CAD-12c): ribbon overflow - dynamic height + scrollable content so all tool groups visible; emoji toggle replaced with text button (Einfach/Pro) 2026-09-16 01:22:32 +02:00
Agent Zero 47c029b4b6 task(CAD-10): ribbon curation - 4 tabs (Start/Zeichnen/Ansicht/KI) statt 7, logische Werkzeug-Gruppen, Traversen+Stueckliste zusammen, Duplikate entfernt 2026-09-02 22:12:19 +02:00
Agent Zero 4398c675e4 task(CAD-9): bill of materials - buildBOM grouping by type+size with counts and total truss meters (corners count both arms), CSV export excel-friendly, dialog with table and download button 2026-08-31 22:36:21 +02:00
Agent Zero bcb0fcefe1 task(CAD-6): background rendering fix - bgConfig was never wired to render engine (import worked but never drew), canvas area setOptions + pixi sprite implementation 2026-08-31 08:43:13 +02:00
Agent Zero 9ca86d67dd task(D12): block attributes - BlockAttrDef type, attrDefs on definitions, instance attrValues rendering as text primitives, properties panel attribute form 2026-08-29 03:35:36 +02:00
Agent Zero b210ccc5b8 task(H5): polygon area calculation - shoelace polygonArea, formatArea with quadratic scaling, measure-area tool, properties panel area display 2026-08-29 03:09:35 +02:00
Agent Zero e6fdb39a86 task(H4): i18n foundation - strings.ts de/en maps, t() with key fallback, language persistence, useT hook, LayoutBar + Topbar texts switched 2026-08-29 03:05:27 +02:00
Agent Zero 8774fea773 task(H1): simple/pro mode - uiModeService with localStorage persistence, ribbon basic-tag filter, commandline pro-only, topbar toggle 2026-08-29 02:55:53 +02:00
Agent Zero d9a0dffb05 task(G5): browser print stylesheet - @media print A4 landscape, screen-only chrome hidden, print-area fill, print service with cleanup 2026-08-29 02:52:12 +02:00
Agent Zero bbb469e25e task(G3): title block with attributes - frame + attributed texts (ATTDEF convention), auto-insert as layout frame block 2026-08-29 02:46:51 +02:00
Agent Zero 7feed9e9e3 task(G2): layout bar UI + viewport minimap widget, zoomPan setView, canvas layout bridge 2026-08-29 02:43:51 +02:00
Agent Zero 09948bc587 task(F8): SVG import as block - path parser (M/L/H/V/C/S/Q/T/A/Z, bezier flattening, arc endpoint-center), rect/circle convention fixes, ellipse polygon, geometry payload for library 2026-08-29 02:31:02 +02:00
Agent Zero d311820351 task(F7): wcadlib as real zip package - jszip export-zip/import-zip endpoints with manifest/blocks/thumbs, frontend zip buttons 2026-08-29 02:25:10 +02:00
Agent Zero 2efbbf9bd2 task(F4): library providers - builtin catalogs (event/architecture/landscape 15 blocks each), user-library and global-library via LibraryProviderExtension, panel UI with existing Drop-Channel 2026-08-28 23:20:11 +02:00
Agent Zero 5d8253a22b task(F3-frontend): save selection as block - svg thumbnail from elementToPrimitives, save button in library tree 2026-08-28 13:37:35 +02:00
Agent Zero 8b50c0a612 task(F2-frontend): library search, favorites section, star toggle, svg thumbnails, grid view 2026-08-28 13:27:57 +02:00
Agent Zero 63c8968f87 task(F1-frontend): library export/import buttons in block library tree 2026-08-28 12:25:17 +02:00
Agent Zero 626d565429 task(E6b): seat assignment via canvas selection bridge 2026-08-28 07:34:23 +02:00
Agent Zero 5eb741d2a7 task(E6-frontend): guest panel with ribbon entry and api client 2026-08-28 07:30:43 +02:00
Agent Zero 042c546ebe task(C3fin2): snap marks and selection handles wired to canvas events 2026-08-27 18:51:27 +02:00
Agent Zero eb8d6231c5 task(C4): use_pixi_renderer flag on by default with e2e proof 2026-08-27 12:58:36 +02:00
Agent Zero 8b1cca0324 task(C2int): integrate pixi renderer as overlay with lazy import 2026-08-27 10:02:05 +02:00
Agent Zero 69141d604a task(A4.14): make v2 tool path the default (verified e2e without flag) 2026-08-27 08:36:30 +02:00
Agent Zero e370552055 task(A4.13): dynamic v2 tool section in ribbon behind flag 2026-08-27 07:21:19 +02:00
Agent Zero 216bf6360a task(A4.12): v2 history panel reading undo manager behind flag 2026-08-27 07:17:46 +02:00
Agent Zero 25e721d3d3 task(A4.11): documentService singleton + global v2 undo/redo shortcuts 2026-08-27 07:14:41 +02:00
Agent Zero d54a67662b task(A4.1): wire dispatcher to canvas - doc bridge, selection bridge, activeTool sync 2026-08-26 23:10:20 +02:00
Agent Zero 4a7a8f912f task(A2): tool dispatcher behind flag 2026-08-26 21:14:46 +02:00
Leopoldadmin c86b5e7031 fix: browser testing issues and missing UI tools
- Fix WebSocket URL to use ws:// for http development environments
- Make createLayer idempotent to prevent race-condition 500 under React StrictMode
- Add URL-based routing for /register so register page actually shows register form
- Add missing tool buttons to LeftSidebar: polygon, chair, extend, fillet
- Add Playwright browser test suite for exhaustive UI testing
- Update .gitignore for Playwright artifacts

Unit tests: backend 254/254, frontend 380/380
2026-07-27 01:17:18 +02:00
Leopoldadmin be62470b53 merge: combine all features from both codebases - mobile dashboard + layer panel + notifications + shares + all fixes 2026-07-04 16:43:55 +02:00
Leopoldadmin 0606dbb501 fix: SQLite boolean binding, CSS brace, race condition, 0 npm vulns, code-splitting 2026-07-04 16:08:51 +02:00
Leopoldadmin a4371ca3ce fix: layer panel collapsible tree + element actions (visibility toggle, delete) + RenderEngine skips invisible elements 2026-06-27 23:59:12 +02:00
Leopoldadmin affa6be151 feat: layer panel with element tree - shows layers + elements as children with count badges, sub-layers supported 2026-06-27 14:27:34 +02:00
Leopoldadmin 4303076ce4 feat: click-drag drawing, layer tree, settings modal, UI improvements
- interaction: click-drag drawing for 2-point tools (line, rect, circle, dimension, leader)
- interaction: preview rendering during drag with setPreviewElement
- interaction: handleDrawDown only sets phase=drawing on first point
- CanvasArea: sync activeLayerId to LayerManager
- CanvasArea: callback refresh useEffect prevents stale closures
- App.tsx: functional setElements updates for handleElementCreated/Deleted/Modified
- LayerPanel: tree structure with sub-layers (onReorder, onAddSubLayer)
- TreeView: drag-and-drop reordering support
- RightSidebar: onReorder, onAddSubLayer, onUpdateElement props
- PropertiesPanel: onUpdateElement prop
- SettingsModal: personal/password/language/theme/users/plugins/AI tabs
- styles.css: extensive UI styling additions
- types: updated RightSidebarProps, CanvasAreaProps, LayerPanelProps
2026-06-27 14:12:37 +02:00
Leopoldadmin 7ad0e11873 fix: element creation fails with empty layer_id (FOREIGN KEY constraint)
Three fixes:
1. interaction/index.ts: Add layerId to created element in confirmDraw()
2. CanvasArea.tsx: Sync layers to LayerManager via layerManagerRef
3. App.tsx: Fallback to activeLayerId in handleElementCreated if layerId missing

Root cause: LayerManager.activeLayerId was empty because layers were never
synced from React state to the interaction layer LayerManager. New elements
got layer_id="" which failed SQLite FOREIGN KEY constraint.

Also includes Yjs sync race condition fix from previous commit.
2026-06-26 20:31:50 +02:00
Leopoldadmin 7e530dd09a fix: stale closure bug preventing canvas tools from creating elements
- CanvasArea: add useEffect to refresh InteractionEngine callbacks when props change
- App.tsx: handleElementCreated/Deleted/Modified now use functional setElements updates
- Root cause: CanvasArea init useEffect had empty deps, capturing stale callbacks at mount
- handleElementCreated used [...elements, el] with stale elements=[] closure
- Each new element replaced all previous ones instead of appending
- All 343 tests pass, tsc clean
2026-06-26 18:57:09 +02:00
Leopoldadmin 3bec3938d0 fix: ribbon tabs now show per-tab content; add all missing handleRibbonAction handlers
- RibbonBar: conditional rendering per activeTab (start/insert/format/view/tools/ki)
- App.tsx: add onNavigateBack prop for new/open navigation
- App.tsx: implement handlers for new, open, save, copy, paste, zoom-fit, zoom-100, grid, layer, measure, search, plugins, ki, ki-draw, ki-analyze
- App.tsx: implement insert-line, insert-rect, insert-circle, insert-text, insert-freehand, insert-image
- App.tsx: implement format-* placeholder actions
- App.tsx: add clipboard state for copy/paste
- All 343 tests pass, tsc clean
2026-06-26 18:49:16 +02:00
Leopoldadmin 4ec76fe406 feat: initial commit web-cad-neu with docker-compose, frontend and backend 2026-06-26 10:50:24 +02:00