v1.0.4's deletion UX landed on DiagramCanvas.jsx (ReactFlow) but the
Shell still renders the legacy design/Canvas.jsx (SVG) plus
ColumnsView.jsx, so none of it was user-visible. v1.0.5 ports the
affordances onto the rendered canvas + inspector, and fixes the
silent Save All data loss that v1.0.4 missed.
- workspaceStore.saveAllDirty: iterate openTabs against their cached
originalContent so every dirty tab gets written, not just
activeFile. Bump originalContent after a successful write so the
dirty indicator collapses correctly.
- Canvas.jsx: wire Fit / Auto-layout / Export buttons, add keyboard
Delete/Backspace for selected entity/relationship with input-guard.
- Shell.jsx: pass handleAutoLayout + exportDdl opener + delete
handlers into Canvas. New handleDeleteRelationship resolves canvas
rel id → YAML name before delegating to yamlRoundTrip.
- ColumnsView.jsx: "+ Add" in All columns header (and in the
empty-state), "Delete column" next to "Rename across project…".
Both wrap the existing appendField / deleteField helpers.
Co-authored-by: duckcode2025 <kranthi@duckcode.ai>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>