Commit 126c037
feat: fork branch for main (#11183)
* feat: add chat-header feature and sliding container (#11045)
Add sliding playground layout (SimpleSidebar + sliding container + store) and toolbar button integration to open it directly + chat header/session components and hooks (SessionSelector, SessionRename, ChatHeaderTitle, use-get-flow-id, playgroundStore).
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* removed changes on the tailwind config
* feat: add session management functionality (#11272)
* feat: add session management functionality
- Add session selector component
- Add session more menu component
- Add session header component
- Add session edit info hook
- Add get/add sessions hook
- Hide delete button for default session
* sync: update animated-close and simple-sidebar from pr4
* Make sidebar continue to be fullscreen after closing and opening
* [autofix.ci] apply automated fixes
* reduce max width
* Pr2 bis chat messages (#11308)
* feat: add chat messages components and infrastructure
- Add bot message component
- Add thinking message component
- Add user message component
- Add chat message wrapper component
- Add message editing functionality
- Add error message component
- Add file card wrapper
- Add message options component
- Add chat history hook
- Add thinking duration hook
- Add typing effect hook
- Add message utilities (convert files, format file name, sort messages)
- Add content block display component
- Add send message hook
* fix: remove typing animation from bot messages, show thinking immediately after user message, and use optional chaining for updateChat
* [autofix.ci] apply automated fixes
* feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
* refactor: sync chat-messages from pr3 with refactored utilities
- Copy refactored chat-messages components from pr3
- Add new hooks: use-message-duration, use-tool-durations
- Add consolidated utilities: format.ts, content-blocks.ts, extract-error-message.ts
- Add Indicator icon for error messages
- Update ContentBlockDisplay to use new utilities
- Remove format-file-name.tsx (merged into format.ts)
- Update lazyIconImports to include Indicator icon
* sync: update animated-close and simple-sidebar from pr4
* Pr3 chat input (#11310)
* feat: add chat input components and improvements
- Add chat input component
- Add text area wrapper with auto-resize
- Add input wrapper component
- Add button send wrapper
- Add no-input component
- Add audio button component
- Add file preview component
- Add upload file button
- Add auto-resize text area hook
- Add audio recording hook
- Add drag and drop hook
- Update textarea UI component
- Update IOModal input wrapper
- Update constants for chat input
* feat: add file handling, UI enhancements, types, stores and dependencies
- Add file preview display component
- Add file utilities
- Add animated close component
- Add simple sidebar component
- Update sliding container with container queries support
- Update FlowPage components
- Update styles and Tailwind config
- Add chat types
- Add component types
- Add utility store types
- Add utility store
- Update package dependencies
* fix: prevent chat input from growing on every letter and make updateChat optional with proper typing
* fix: prevent chat input from growing on every letter
* fix: sync message components with PR2 (remove typing animation, fix thinking timing, use optional chaining)
* fix: sync message components with PR2 (remove typing animation, fix thinking timing, use optional chaining)
* [autofix.ci] apply automated fixes
* fix: apply message component fixes from PR2 (remove typing animation, fix thinking timing, use optional chaining)
* [autofix.ci] apply automated fixes
* fix: prevent textarea from resizing on every character by tracking previous scrollHeight
* fix: prevent textarea from resizing on every character by tracking previous scrollHeight
* fix: prevent textarea from growing on every character with 10px threshold
* fix: prevent textarea from growing on every character with 10px threshold
* Revert "fix: prevent textarea from growing on every character with 10px threshold"
This reverts commit ec3ed63.
* Revert "fix: prevent textarea from growing on every character with 10px threshold"
This reverts commit 93637ae.
* feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
* feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
* fix error making the flow crashing
* resize user and bot icon and remove borders
* fix flow crash when error
* have the green duration be the sum of tool and sec part the entire thinking
* refactor: extract and consolidate chat message utilities
- Extract duration tracking logic to use-message-duration hook
- Consolidate format utilities (formatTime, formatSeconds, formatToolTitle, formatFileName) into single format.ts file
- Merge content block utilities (getContentBlockState, getContentBlockLoadingState) into content-blocks.ts
- Move component-specific logic (hasTools, shouldShowAvatar, shouldShowContentBlocks) back into components
- Move errorMarkdownComponents into error-message.tsx component
- Simplify error-message.tsx by extracting sub-components
- Add Indicator icon for error messages
- Update all imports to use consolidated utilities
* refactor: sync chat-messages and chat-input from pr4
- Copy refactored chat-messages components from pr4
- Add new hooks: use-message-duration, use-tool-durations
- Add consolidated utilities: format.ts, content-blocks.ts, extract-error-message.ts
- Add Indicator icon for error messages
- Update ContentBlockDisplay to use new utilities
- Remove format-file-name.tsx (merged into format.ts)
- Update lazyIconImports to include Indicator icon
* change duration animation
* Only allow certain file types
* feat: add file handling, UI enhancements, types, stores and dependencies (#11276)
* [autofix.ci] apply automated fixes
* feat: add clear chat option for default session in session management
- Add 'Clear chat' option to SessionMoreMenu component
- Show 'Clear chat' for default session (currentSessionId === currentFlowId)
- Show 'Delete' for other sessions (existing behavior)
- Clear chat deletes messages but keeps the session
- Delete removes the entire session
- Both options use same red color styling
* adjust radius for error message border
* show only the text An error occured
* refactor: replace Zustand with React Query for message handling
- Move all message handling logic to chat-view/utils/
- Create message-event-handler.ts to handle build events
- Create message-utils.ts for React Query cache operations
- Update buildUtils.ts to delegate message events to chat-view
- Remove MemoizedChatMessage to fix streaming updates
- Simplify use-chat-history to use session cache as single source of truth
- Support placeholder messages for immediate UI feedback
- Handle streaming tokens with proper text accumulation
* fix: improve clear chat logic to prevent double clearing
- Fix clearSessionMessages to use removeQueries instead of invalidateQueries
- Prevents refetch that brings back deleted messages
- Clear chat only works for default session, delete works for other sessions
- Handle default session messages with null session_id (legacy)
* fix padding and spacing issue on playground component
* fix: message section padding
* fix: padding
* add time persistence and build perfect timer
* [autofix.ci] apply automated fixes
* fix display time styles
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: format time in seconds and fix gap between duration and message
* [autofix.ci] apply automated fixes
* fix: fetch messages in session logs modal to prevent empty display
* [autofix.ci] apply automated fixes
* fix: added gap between image and message
* fix header truncating
* fix: apply card in the background of user message in smaller view
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
---------
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
---------
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
---------
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* fix: frontend tests
* [autofix.ci] apply automated fixes
* fix nested agents
* [autofix.ci] apply automated fixes
* Revert "fix nested agents"
This reverts commit f230c8c.
* fix time on agent chain
* [autofix.ci] apply automated fixes
* fix(playground): display ChatInput default value on playground open (#11514)
* fix(playground): display ChatInput default value on playground open
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(ui): prevent layout shift when adding Chat Input with closed playground (#11531)
* fix(ui): prevent layout shift when adding Chat Input with closed playground
* fix(ui): remove unwanted import
* fix(frontend): reset playground state when navigating between flows (#11533)
reset playground state when leaving the flow
* fix(frontend): prevent Message Logs table from dropping columns with falsy values (#11540)
fix(frontend): prevent Message Logs table from dropping columns with falsy values
* fix(frontend): auto-close playground when all chat components are removed (#11537)
* fix(frontend): auto-close playground when all chat components are removed
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(frontend): prevent send button from being pushed off-screen in chat input (#11556)
* fix(frontend): prevent send button from being pushed off-screen in chat input
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): fix image upload process in chat input test
* fix(test): improve chat message verification in chat input test
* fix: add data-testID to ensure the testcases pass (#11573)
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* feat(tests): add data-testid attributes for improved test targeting in chat header and session selector
* fix: session rename create new session instead of remaining existing one (#11576)
* fix(frontend): resolve session rename bugs and prevent message loss
* fix(playground): Fix session rename not showing messages immediately
* [autofix.ci] apply automated fixes
* fix(playground): Eliminate duplicate logic in session-selector
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): playground test
* fix: rename session and test shard 9 (#11581)
fix: pass renameLocalSession to ChatHeader to fix session rename creating new session
The session rename from the chat header's more menu was creating a new session
instead of renaming the existing one. This was because renameLocalSession was
not being passed to useEditSessionInfo in chat-header.tsx.
- Added renameLocalSession to ChatHeaderProps type
- Pass renameLocalSession from flow-page-sliding-container to ChatHeader
- Pass renameLocalSession to useEditSessionInfo in chat-header
* fix(frontend): prevent menu stacking and ensure proper close behavior (#11592)
* fix(frontend): prevent menu stacking and ensure proper close behavior
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: playground tests shard 13 (#11593)
* fix: update Basic Prompting test to use specific test IDs for playground combobox
* fix: skip voice assistant interaction test for review
* test: skip voice-assistant tests pending playground refactor
* fix: tests shard 16 (#11594)
* fix: update Basic Prompting test to use specific test IDs for playground combobox
* fix: skip voice assistant interaction test for review
* test: skip voice-assistant tests pending playground refactor
* fix: update Financial Report Parser and Image Sentiment Analysis tests
- Financial Report Parser: Use stop_building_button instead of button-stop
(which doesn't exist in playground chat input), wait for it to appear
before waiting for hidden state, and use div-chat-message instead of
.markdown selector which was matching node descriptions
- Image Sentiment Analysis: Replace unreliable dispatchEvent("drop") with
setInputFiles() for file upload, add proper flow completion wait, and
use img[alt$="chain.png"] to handle server timestamp prefix
* fix(frontend): prevent duplicate session creation when renaming in non fullscreen mode (#11596)
fix(frontend): prevent duplicate session creation when renaming in non-fullscreen mode
* fix: tests shard 18 - Memory Chatbot and Simple Agent Memory (#11597)
Memory Chatbot:
- Replace fragile selectors (getByRole, getByLabel) with data-testid
- Use chat-header-more-menu and message-logs-option for message logs
- Replace .isVisible() with proper expect().toBeVisible() assertions
- Simplify test by removing session deletion
Simple Agent Memory:
- Add waitForSelector for input before filling
- Use stop_building_button instead of getByRole("button", { name: "Stop" })
- Use proper wait pattern: visible → hidden for build completion
- Add user message verification with chat-message-User-* test IDs
- Add wait for div-chat-message before asserting
* fix: update News Aggregator test to streamline API key handling and increase timeout (#11598)
* fix: tests shard 18 - Memory Chatbot and Simple Agent Memory
Memory Chatbot:
- Replace fragile selectors (getByRole, getByLabel) with data-testid
- Use chat-header-more-menu and message-logs-option for message logs
- Replace .isVisible() with proper expect().toBeVisible() assertions
- Simplify test by removing session deletion
Simple Agent Memory:
- Add waitForSelector for input before filling
- Use stop_building_button instead of getByRole("button", { name: "Stop" })
- Use proper wait pattern: visible → hidden for build completion
- Add user message verification with chat-message-User-* test IDs
- Add wait for div-chat-message before asserting
* fix: update News Aggregator test to streamline API key handling and increase timeout
* fix: refactor Pokedex Agent test for improved readability and consistency
* fix: update Pokedex Agent test to correctly retrieve chat message output and adjust length expectation
* fix: improve Research Translation Loop test structure and readability
* fix: enhance readability and consistency in Simple Agent Memory test
* fix: generalBugs-shard-9 test
* fix: simplify file upload handling in limit-file-size-upload test
* fix: file upload test
* fix: update chat interaction test for improved sender name handling
* fix: add data-testid attribute to hidden file input for improved test targeting
* fix: refactor test structure for improved readability and maintainability
* fix: revert upload file util
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: keval shah <kevalvirat@gmail.com>
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>1 parent 41caeb9 commit 126c037
136 files changed
Lines changed: 8214 additions & 741 deletions
File tree
- src
- backend
- base/langflow
- api
- utils
- v1
- schema
- tests/unit
- components/inputs
- frontend
- src
- components
- core
- chatComponents
- flowToolbarComponent
- components
- playgroundComponent
- chat-view
- chat-header
- components
- hooks
- types
- utils
- chat-input
- components
- __tests__
- hooks
- __tests__
- chat-messages
- components
- __tests__
- hooks
- __tests__
- utils
- __tests__
- hooks
- utils
- __tests__
- hooks
- sliding-container/components
- ui
- constants
- contexts
- controllers/API/queries/messages
- helpers
- icons
- Indicator
- modals/IOModal/components
- chatView/chatInput/components
- pages/FlowPage
- components/nodeToolbarComponent
- stores
- style
- types
- chat
- components
- messages
- zustand
- flow
- messages
- playground
- utility
- utils
- tests
- core
- features
- integrations
- regression
- unit
- extended
- features
- integrations
- regression
- utils
- lfx/src/lfx/schema
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1453 | 1453 | | |
1454 | 1454 | | |
1455 | 1455 | | |
1456 | | - | |
| 1456 | + | |
1457 | 1457 | | |
1458 | 1458 | | |
1459 | 1459 | | |
1460 | 1460 | | |
1461 | 1461 | | |
1462 | 1462 | | |
1463 | 1463 | | |
1464 | | - | |
| 1464 | + | |
1465 | 1465 | | |
1466 | 1466 | | |
1467 | 1467 | | |
1468 | 1468 | | |
1469 | 1469 | | |
1470 | 1470 | | |
1471 | 1471 | | |
1472 | | - | |
| 1472 | + | |
1473 | 1473 | | |
1474 | 1474 | | |
1475 | 1475 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
373 | 373 | | |
374 | 374 | | |
375 | 375 | | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | | - | |
383 | 376 | | |
384 | 377 | | |
385 | 378 | | |
| |||
454 | 447 | | |
455 | 448 | | |
456 | 449 | | |
| 450 | + | |
457 | 451 | | |
458 | 452 | | |
459 | 453 | | |
460 | 454 | | |
461 | 455 | | |
462 | 456 | | |
463 | 457 | | |
| 458 | + | |
464 | 459 | | |
465 | 460 | | |
466 | 461 | | |
467 | 462 | | |
468 | 463 | | |
469 | 464 | | |
470 | 465 | | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
471 | 470 | | |
472 | 471 | | |
473 | 472 | | |
| |||
486 | 485 | | |
487 | 486 | | |
488 | 487 | | |
| 488 | + | |
489 | 489 | | |
490 | 490 | | |
491 | 491 | | |
| |||
503 | 503 | | |
504 | 504 | | |
505 | 505 | | |
| 506 | + | |
| 507 | + | |
506 | 508 | | |
507 | 509 | | |
508 | | - | |
| 510 | + | |
509 | 511 | | |
510 | 512 | | |
511 | 513 | | |
| |||
525 | 527 | | |
526 | 528 | | |
527 | 529 | | |
528 | | - | |
| 530 | + | |
| 531 | + | |
529 | 532 | | |
530 | 533 | | |
531 | 534 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
| 153 | + | |
154 | 154 | | |
155 | 155 | | |
156 | 156 | | |
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | | - | |
| 162 | + | |
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
| 167 | + | |
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
368 | 368 | | |
369 | 369 | | |
370 | 370 | | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | 371 | | |
379 | 372 | | |
380 | 373 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
151 | 152 | | |
152 | 153 | | |
153 | 154 | | |
| |||
0 commit comments