sync: Phase 3 Agent Features from private repo

Features synced:
- LucideIconPicker component (115 icons for dimension customization)
- Dimension editing modal (descriptions + icons)
- Compound filters (per-column AND filters)
- Improved dimension assignment with keyword tagging
- queryDimensions and getDimension agent tools

New files:
- src/components/common/LucideIconPicker.tsx
- src/tools/database/queryDimensions.ts
- src/tools/database/getDimension.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
“BeeRad”
2025-12-25 10:05:02 +11:00
co-authored by Claude Opus 4.5
parent 57a20899a5
commit c9d85998c1
8 changed files with 1630 additions and 174 deletions
File diff suppressed because it is too large Load Diff
+12 -1
View File
@@ -7,6 +7,8 @@ import AddNodeButton from './AddNodeButton';
import Chip from '../common/Chip';
import { getNodeIcon } from '@/utils/nodeIcons';
import SearchModal from './SearchModal';
import { DynamicIcon } from '../common/LucideIconPicker';
import { usePersistentState } from '@/hooks/usePersistentState';
interface NodesPanelProps {
selectedNodes: Set<number>;
@@ -47,6 +49,9 @@ export default function NodesPanel({ selectedNodes, onNodeSelect, onNodeCreated,
const [dragHoverDimension, setDragHoverDimension] = useState<string | null>(null);
const draggedNodeRef = useRef<{ id: number; dimensions?: string[] } | null>(null);
// Dimension icons (shared with FolderViewOverlay via localStorage)
const [dimensionIcons] = usePersistentState<Record<string, string>>('ui.dimensionIcons', {});
useEffect(() => {
fetchNodes();
fetchLockedDimensions();
@@ -774,7 +779,13 @@ export default function NodesPanel({ selectedNodes, onNodeSelect, onNodeCreated,
}}
>
<div style={{ display: 'flex', alignItems: 'center', gap: '10px', flex: 1 }}>
{isExpanded ? (
{dimensionIcons[lockedDim.dimension] ? (
<DynamicIcon
name={dimensionIcons[lockedDim.dimension]}
size={16}
style={{ color: isExpanded ? '#7de8a5' : '#64748b' }}
/>
) : isExpanded ? (
<FolderOpen size={16} color="#7de8a5" />
) : (
<Folder size={16} color="#64748b" />