Commit graph

309 commits

Author SHA1 Message Date
clssck
43af31f888 feat: add db_degree visibility and orphan connection UI
Graph Connectivity Awareness:
- Add db_degree property to all KG implementations (NetworkX, Postgres, Neo4j, Mongo, Memgraph)
- Show database degree vs visual degree in node panel with amber badge
- Add visual indicator (amber border) for nodes with hidden connections
- Add "Load X hidden connection(s)" button to expand hidden neighbors
- Add configurable "Expand Depth" setting (1-5) in graph settings
- Use global maxNodes setting for node expansion consistency

Orphan Connection UI:
- Add OrphanConnectionDialog component for manual orphan entity connection
- Add OrphanConnectionControl button in graph sidebar
- Expose /graph/orphans/connect API endpoint for frontend use

Backend Improvements:
- Add get_orphan_entities() and connect_orphan_entities() to base storage
- Add orphan connection configuration parameters
- Improve entity extraction with relationship density requirements

Frontend:
- Add graphExpandDepth and graphIncludeOrphans to settings store
- Add min_degree and include_orphans graph filtering parameters
- Update translations (en.json, zh.json)
2025-11-29 21:08:07 +01:00
clssck
a9edadef45 feat: add Table Explorer feature with dynamic table data fetching and schema display
- Implemented Table Explorer component to allow users to select and view database tables.
- Added API calls for fetching table list, schema, and paginated data.
- Introduced row detail modal for displaying and copying row data.
- Enhanced DataTable component to support row click events.
- Updated UI components for better user experience and accessibility.
- Added mock data for development mode to facilitate testing.
- Updated localization files to include new terms related to tables.
- Modified settings store to include storage configuration for conditional UI rendering.
- Improved styling and layout for various components to align with new design standards.
2025-11-27 18:27:14 +01:00
clssck
48c7732edc feat: add automatic entity resolution with 3-layer matching
Implement automatic entity resolution to prevent duplicate nodes in the
knowledge graph. The system uses a 3-layer approach:

1. Case-insensitive exact matching (free, instant)
2. Fuzzy string matching >85% threshold (free, instant)
3. Vector similarity + LLM verification (for acronyms/synonyms)

Key features:
- Pre-resolution phase prevents race conditions in parallel processing
- Numeric suffix detection blocks false matches (IL-4 ≠ IL-13)
- PostgreSQL alias cache for fast lookups on subsequent ingestion
- Configurable thresholds via environment variables

Bug fixes included:
- Fix fuzzy matching false positives for numbered entities
- Fix alias cache not being populated (missing db parameter)
- Skip entity_aliases table from generic id index creation

New files:
- lightrag/entity_resolution/ - Core resolution module
- tests/test_entity_resolution/ - Unit tests
- docker/postgres-age-vector/ - Custom PG image with pgvector + AGE
- docker-compose.test.yml - Integration test environment

Configuration (env.example):
- ENTITY_RESOLUTION_ENABLED=true
- ENTITY_RESOLUTION_FUZZY_THRESHOLD=0.85
- ENTITY_RESOLUTION_VECTOR_THRESHOLD=0.5
- ENTITY_RESOLUTION_MAX_CANDIDATES=3
2025-11-27 15:35:02 +01:00
yangdx
8c07c91833 Remove deprecated response_type parameter from query settings
- Bump API version to 0254
- Remove response format UI controls
- Hard-code response_type in query params
- Add migration for version 19
- Clean up settings store structure
2025-11-12 12:19:30 +08:00
yangdx
58c83f9da5 Add auto-refresh of popular labels when pipeline completes
• Monitor pipeline busy->idle transitions
• Reload labels on dropdown open if needed
• Add onBeforeOpen callback to AsyncSelect
• Clear refresh flags after processing
• Improve label sync with backend state
2025-10-31 04:45:35 +08:00
yangdx
71b27ec4aa Optimize property edit dialog to use trimmed value consistently 2025-10-31 00:08:02 +08:00
yangdx
79a17c3f7f Fix graph value handling for entity_id updates
• Use finalValue for entity_id changes
• Keep original value for other props
• Fix property update logic
2025-10-30 23:43:46 +08:00
yangdx
b32b2e8b9e Refactor merge dialog and improve search history sync
- Extract MergeDialog to separate component
- Update search history on entity rename
- Add dropdown refresh trigger mechanism
- Sync query label with entity changes
- Force graph re-render after updates
2025-10-28 01:52:49 +08:00
yangdx
5155edd8d2 feat: Improve entity merge and edit UX
- **API:** The `graph/entity/edit` endpoint now returns a detailed `operation_summary` for better client-side handling of update, rename, and merge outcomes.
- **Web UI:** Added an "auto-merge on rename" option. The UI now gracefully handles merge success, partial failures (update OK, merge fail), and other errors with specific user feedback.
2025-10-27 23:42:08 +08:00
yangdx
25f829ef48 Enable editing of entity_type field in node properties 2025-10-27 12:27:57 +08:00
yangdx
81e3496aa4 Add confirmation dialog for pipeline cancellation 2025-10-25 03:55:00 +08:00
yangdx
2476d6b7f8 Simplify pipeline status dialog by consolidating message sections
• Remove separate latest message section
• Combine into single pipeline messages area
• Add overflow-x-hidden for better display
• Change break-words to break-all
• Update translations across all locales
2025-10-25 03:34:54 +08:00
yangdx
f89b5ab101 Add pipeline cancellation feature with UI and i18n support
- Add cancelPipeline API endpoint
- Add cancel button to status dialog
- Update status response type
- Add cancellation UI translations
- Handle cancellation request states
2025-10-24 15:30:27 +08:00
yangdx
162370b6e6 Add optional LLM cache deletion when deleting documents
• Add delete_llm_cache parameter to API
• Collect cache IDs from text chunks
• Delete cache after graph operations
• Update UI with new checkbox option
• Add i18n translations for cache option
2025-10-22 12:19:23 +08:00
yangdx
80668aae22 Improve file path truncation labels and UI consistency
• Standardize FIFO/KEEP truncation labels
• Update UI truncation text format
2025-10-21 15:39:31 +08:00
yangdx
019dff5248 Update truncation message format in properties tooltip 2025-10-21 04:46:07 +08:00
yangdx
637b850ec5 Add truncation indicator and update property labels in graph view
• Add truncate tooltip to source_id field
• Add visual truncation indicator (†)
• Bump API version to 0242
2025-10-20 23:03:01 +08:00
yangdx
dab1c35834 Optimize chat performance by reducing animations in inactive tabs
• Add isTabActive prop to ChatMessage
• Disable spinner in inactive tabs
• Reduce opacity for inactive content
• Hide loading indicator when inactive
• Pass tab state from RetrievalTesting
2025-10-17 21:17:01 +08:00
yangdx
4c3ab58473 Improve AsyncSelect layout and text overflow handling
- Add responsive width container
- Improve text truncation with tooltips
2025-10-17 19:10:36 +08:00
yangdx
2d9334d35f Simplify Root component by removing async i18n initialization
• Remove useState and useEffect hooks
• Import i18n directly instead of async init
• Eliminate loading state check
2025-10-12 01:17:37 +08:00
yangdx
d550f1c58c Fix linting 2025-10-05 10:42:15 +08:00
yangdx
0aef6a16b8 Add theme-aware edge highlighting colors for graph control 2025-10-05 10:40:25 +08:00
yangdx
b1a4e7d7f0 Fix linting 2025-10-02 21:21:33 +08:00
yangdx
d4abe70411 Hide dev options in production builds 2025-10-02 21:21:16 +08:00
Roman Marchuk
1bd84f0005
Merge branch 'main' into fix/dark-mode-graph-text-colors 2025-10-01 17:41:28 -04:00
Roman Marchuk
7297ca1d5c Fix dark mode graph labels for system theme and improve colors
- Fix dark mode detection to work when theme is set to 'system'
- Add real-time system theme change detection
- Update label colors from cyan to white for better readability
- Update edge colors to medium gray (#888888) for better contrast
- Add development feature: random graph generator button in settings
- Enhance random graph with edge attributes and labels
- Install missing graphology layout dependencies
2025-10-01 17:36:50 -04:00
yangdx
86195c613e Fix linting 2025-09-29 13:10:25 +08:00
yangdx
924d459420 feat(webui): Enhance KaTeX rendering and add robust error handling
- Differentiates between inline ($...$) and display ($$..$$) math for proper styling and layout.
- Adds custom CSS to ensure formulas correctly inherit text color, fixing issues in dark/light themes.
- Implements responsive handling for long formulas by allowing horizontal scrolling, preventing page overflow.
- Introduces a silent `errorCallback` for KaTeX to suppress console errors from invalid LaTeX syntax in production, while retaining warnings in development.
- Refactors KaTeX plugin loading to be more robust and simplifies CSS import by moving it to `main.tsx`.
2025-09-28 22:50:33 +08:00
yangdx
b18c7d85ef Improve text contrast and visibility in dark theme for chat messages
• Enhanced border visibility in dark mode
• Improved thinking progress text contrast
• Added explicit text color classes
• Better user/assistant message distinction
• Fixed dark theme readability issues
2025-09-28 21:33:19 +08:00
yangdx
b6a1832324 feat: prevent LaTeX parsing errors during streaming by implementing completeness detection
- Add latexRendered flag to control KaTeX plugin application
- Implement detectLatexCompleteness function to check formula closure
- Maintain backward compatibility for historical messages
2025-09-28 20:59:56 +08:00
yangdx
335114fd7e Add KaTeX mhchem extension support and improve math rendering
- Import mhchem globally
- Add TypeScript declarations
- Fix KaTeX overflow styling
- Change p tags to div in markdown
- Update tsconfig includes
2025-09-28 15:13:04 +08:00
yangdx
53d3c9290f Merge branch 'zl7261/main' 2025-09-26 20:02:32 +08:00
zl7261
1bb7655538 WebUI - set full width to input element 2025-09-26 04:04:54 +00:00
yangdx
d5fe6bb33e Increase user prompt history capacity and dropdown height
• History limit: 8 → 12 items
• Dropdown height: max-h-60 → max-h-96
• Better visibility for longer prompts
• Improved user experience
2025-09-26 10:27:03 +08:00
yangdx
058ce83dba Clarify citation format and fix typo 2025-09-25 20:08:55 +08:00
yangdx
0330882b12 feat: add delete functionality to user prompt history dropdown
• Add delete buttons to history items
• Decrease history limit to 8 items
• Improve dropdown styling
2025-09-25 18:55:44 +08:00
yangdx
6e6a65ce9e Disable autocomplete for user prompt input field 2025-09-25 18:01:14 +08:00
yangdx
72039e0b4e Add strict: false and trust: true to KaTeX plugin configuration
• Relaxes KaTeX parsing rules
• Enables trusted LaTeX commands
• Improves math rendering compatibility
• Applied to both markdown processors
2025-09-25 17:28:01 +08:00
yangdx
889c1d21e3 Increase right margin spacing for checkboxes in QuerySettings
• Change mr-1 to mr-10 for checkboxes
• Improve visual spacing consistency
• Apply to all four checkbox elements
• Better UI alignment and readability
2025-09-25 06:26:22 +08:00
yangdx
71367c7bc2 Add user prompt history dropdown to query settings
- Create UserPromptInputWithHistory component
- Move user prompt field to top of panel
- Add history tracking to settings store
- Include keyboard navigation support
- Auto-save prompts on query execution
2025-09-25 06:16:32 +08:00
yangdx
d1b3661a87 Add footnotes support to markdown rendering in chat messages
• Add unist-util-visit dependency
• Create remarkFootnotes plugin
• Style footnotes with CSS classes
• Support footnote refs and definitions
• Update Vite config for new dependency
2025-09-25 01:42:16 +08:00
yangdx
95987ff56c Add rehype-raw plugin for better HTML rendering in markdown
• Add rehype-raw dependency
• Enable HTML parsing in markdown
• Style sup/sub/mark/u/del/ins elements
• Apply to both thinking and main content
• Improve markdown display capabilities
2025-09-24 21:37:03 +08:00
yangdx
3d7635e097 refactor: addinging copy buttons beside each message 2025-09-24 20:43:22 +08:00
yangdx
ad247f2fc1 refactor: improve accessibility and i18n for search components
• Replace label with ariaLabel prop
• Add searchPlaceholder support
• Use i18n keys for messages
• Improve aria-label attributes
• Standardize noResultsMessage fallback
2025-09-24 19:59:56 +08:00
yangdx
7b63c16b1c Set empty query labels to wildcard '*' for proper graph display
• Handle empty/whitespace query labels
• Auto-set to '*' when label is blank
• Ensure consistent graph behavior
• Prevent invalid query states
2025-09-23 22:41:31 +08:00
yangdx
7a66c009ed Refactor node type legend color mapping
- Reduce chaos legend by storing standard node type
- Reset lengend on graph manual refresh
- Optimize color mapping for new node type schema
2025-09-23 19:48:16 +08:00
yangdx
fa2938cf33 Increase tooltip max width in PropertiesView 2025-09-23 13:24:31 +08:00
yangdx
cc0eed1c8c Format <SEP> separators as newlines in properties view for non editable value
- Convert <SEP> to semicolon + newline
- Apply formatting to text and tooltip
2025-09-23 13:10:06 +08:00
yangdx
fca3ea5d20 Fix linting 2025-09-22 03:29:17 +08:00
yangdx
8af097a8e4 fix(webui): resolve theme switching crashes and optimize graph rendering
- Implement theme switching isolation to prevent component access during transitions by hidding GraphSearch
- Fix NotFoundGraphError during theme switching by adding defensive programming
- Replace problematic NodeById component with custom safe implementation
- Add comprehensive error handling and node/edge existence checks
- Optimize sigma settings with memoization to prevent unnecessary re-renders
- Remove redundant theme update logic and simplify event listener management
2025-09-22 03:03:53 +08:00