feat: remove scoped view option from ExecutionsListTable and update related components
- Removed the `scoped` prop from `ExecutionsListTable` to simplify the component.
- Adjusted the rendering logic to always display the Agentflow Name column.
- Updated comments in `ExecutionsViewer` to clarify the behavior of the agentflowId prop.
* feat: reusable publish workflow + @flowiseai/observe publish pipeline
* chore(observe): mark package as sideEffects: false
Addresses gemini-code-assist[bot] review feedback on PR #6341.
Enables tree-shaking of unused exports for consumer bundlers.
Audited src/ — no bare side-effect imports exist, so the claim is
accurate.
* show scheduled flow status
* enhance ScheduleStatusBadge to display loading state and update tooltip text. Refactor schedule status retrieval in Agentflows to handle errors and improve state management.
* feat(observe): ExecutionDetail with tree view, headers, and resizable drawer
## Summary
Ports the legacy `ExecutionDetails.jsx` (~984 lines) into the `@flowiseai/observe` SDK as a composable `ExecutionDetail` orchestrator.
- **`ExecutionDetail`**: split-pane (sidebar tree + node detail) with sidebar header that holds the agentflow chip, Copy-ID chip, formatted updated date, and refresh button. Auto-selects the first STOPPED node (or first top-level otherwise) on initial tree build.
- **`ExecutionTreeSidebar`**: `@mui/x-tree-view` `RichTreeView` with a custom `TreeItem2` slot — per-branch border colored from `AGENTFLOW_ICONS`, status-icon variants on each row, virtual `Iteration #N` containers, controlled expand/collapse defaulting to all-expanded.
- **`useExecutionTree`** rewritten to mirror the legacy three-pass `buildTreeData`: `previousNodeIds` parent→child with most-recent disambiguation, iteration grouping under the latest parent instance, sub-tree linking inside virtual containers, iterations-first sibling sort, and recursive `FLOWISE_CREDENTIAL_ID` scrub. Iteration container status is the legacy `ERROR > INPROGRESS > all-FINISHED > UNKNOWN` rollup.
- **`useDrawerWidths`** + `useResizableSidebar({ inverted })` extension drive a resizable `ExecutionsViewer` Drawer (parity with the legacy left-edge drag handle). Adds a public `ExecutionsViewerProps.drawer?: { defaultWidth?, minWidth?, maxWidth? }` override.
- **`AGENTFLOW_ICONS`** lifted from `atoms/NodeIcon.tsx` to `core/primitives/agentflowIcons.ts` so the tree slot can consume it without re-importing through `atoms`.
- **`ExecutionDetailProps.agentflow?: AgentflowRef`** seeds the header chip while the detail endpoint loads (server-side `getExecutionById` doesn't perform the agentflow join — only `getAllExecutions` does).
- Adds `@mui/x-tree-view` as a runtime dep.
## Test plan
- [x] `pnpm -C packages/observe test:coverage` — 331 tests pass, all `coverageThreshold` entries met (85.37% statements / 82.98% branches overall; `useExecutionTree` 96.5% / 85.18%, new `useDrawerWidths` 100% / 90.9%, `ExecutionDetail` 89.18% / 92.5%).
- [x] Manually verify in `packages/observe/examples` (`pnpm dev` after copying `.env.example` to `.env`):
- List → row click opens the resizable Drawer; left-edge handle widens/narrows.
- Tree shows status icons for each row plus rolled-up status on virtual iteration containers; `IconLoader` spins for INPROGRESS rows.
- Agentflow chip is clickable and opens the canvas in a new tab when `VITE_AGENTFLOW_CANVAS_URL` is set; non-clickable otherwise.
- Copy-ID chip flips inline to `Copied!` for 2s. **Behavior change from legacy**: legacy dispatched a Redux/notistack snackbar toast ("ID copied to clipboard") via the host app; the SDK can't assume a snackbar provider exists, so the confirmation is rendered on the chip itself.
- Refresh button re-fetches; date formatted as `MMM d, yyyy h:mm a`.
- Standalone `<ExecutionDetail>` demo by execution id renders the same surface without the list.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* address gemini review feedback
* fix flaky test and console warning in test
* fix drawer min/max edge case bug
* fix Copy ID chip falsely showing 'Copied!' on clipboard reject
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(observe): iteration tree parity with legacy
Iteration metadata (parentNodeId/iterationIndex) is nested under `data`
in the runtime payload per IAgentflowExecutedData; the SDK was reading
from the top level so virtual Iteration #N containers never materialized
and iteration children dangled at root. Same shape fix applies to
humanInputAgentflow detection in useNodeData. Iteration parent input
now shows "No data" matching legacy's `data.input.question || '*No
data*'` fallback, and virtual Iteration #N containers are selectable
with empty Input/Output panels.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
* feat: implement scheduling functionality for AgentflowV2
- Added ScheduleQueue class for managing scheduled jobs using BullMQ.
- Introduced scheduleService for creating, updating, and disabling schedules.
- Integrated schedule validation and cron expression handling.
- Enhanced chatflow service to manage schedules for agentflows.
- Added UI components for time and day selection (TimePicker, WeekDaysPicker, MonthDaysPicker).
- Updated NodeInputHandler to support new input types for scheduling.
- Improved validation for schedule configurations in agentflows.
* feat: implement schedule management for agentflows
- Refactor ScheduleQueue to utilize executeScheduleJob for job execution.
- Add new endpoints for schedule status retrieval and enabling/disabling schedules in chatflows.
- Update chatflow service to handle schedule creation, updates, and deletions more effectively.
- Introduce DatePicker component for date input in UI.
- Enhance CanvasHeader to manage schedule state and toggle functionality.
- Integrate schedule validation logic to ensure proper configuration before enabling schedules.
- Update dependencies to include node-cron for improved scheduling capabilities.
* feat(schedule): refactor schedule services and tests for schedule job
- Seperate the utils function from schedule service.
- Created comprehensive unit tests for all utility functions in `utils.test.ts`, covering various scenarios for cron expression validation, visual picker validation, and schedule resolution.
- Ensured proper handling of edge cases and error messages for invalid inputs.
* feat(schedule): remove timestamp in schedule tabes to support sqlite
- Change the way to update the existing schedule to avoid typescript issue when building.
- Add merge function in mockRepo in schedule service test.
* fix(schedule): add nullable to optional entity columns and entity interfaces
- Add nullable: true to lastRunAt, nextRunAt, endDate on ScheduleRecord
entity to match migration DDL and prevent runtime errors
- Add IScheduleRecord and IScheduleTriggerLog interfaces to Interface.ts
- Have entities implement their respective interfaces per codebase convention
* fixed tests and hide schedule input from package/agentflow
* feat: integrate IdentityManager into worker and queue management
- Remove supporting cron express with 6 fields (second)
- Calculate the prediction usage in cron job
* feat: add support for MIN_SCHEDULE_INTERVAL_SECONDS in cron job configuration and validation
* fixed broken tests
* UI UX fixes for scheduler in dark mode
* fix(schedule): remove unnecessary UUID generation in createOrUpdateSchedule
* adds required scheduleInputMode column with text/form/none variants, ChatType.SCHEDULED, trigger-logs endpoint + drawer UI, IANA timezone dropdown, and dark-mode UX polish.
* add deleteScheduleTriggerLogs endpoint and UI integration for log deletion
* feat: enhance cron job handling for last day of month (L) in ScheduleBeat and related utilities
Co-authored-by: Copilot <[email protected]>
* - fix(start-node): persist declared defaults of newly-visible fields so saves don't drop required values
- update ui for last day to include hints and next run datetime
---------
Co-authored-by: Jackie Chui <[email protected]>
Co-authored-by: Henry <[email protected]>
Co-authored-by: Copilot <[email protected]>
* Fix output node not selectable
* Fix highlight color
* Fix previous node displaying label and not ID
* Fix tool arguements not being called
* Fix dropdown values to not be bold
* Add standard sizing for all input text
* FIx syntax highlighting styling
* Use predefined tokens for font weight and size
* Fix dialog size of Source
* Fix color of syntax highlight in dark mode
* Fix the input fileds color in dark and regular mode
* Fix gemini comments
* FIx inconsistent spacing
* Standardise gap between label and field
* Remove export for unused function and standardize dialog size accrosss code, rich text,
and source
* Fix test error
* Fix opening node editing dialog on iteration node
* Untested change
* Add {{iteration}} variable
* Add node execution status to Iteration node
* Fix delete iteration node
* stream iteration node results incrementally when it is the terminal node
* Add test cases
* Fix edit color in dark mode and gemini comments
* Fix lint warnings
* Fix review comment - Add iterationEdge z-index value to tokens
* keep succesful and error messages in content
* Add removed comment
* Remove changes to server code in this PR
* feat(components): add missing languages to Code Text Splitter
The Code Text Splitter only exposed 16 languages natively supported
by @langchain/textsplitters. The Python LangChain library supports
many more. This adds 9 additional languages (c, csharp, cobol,
elixir, haskell, kotlin, lua, powershell, ts) with custom separators
ported from Python LangChain, while keeping existing languages on
the native fromLanguage() path.
* fix: address review feedback on language separators
C: replace class with struct/union/enum (C has no class keyword).
C#: remove implements (C# uses :), add namespace and struct.
Elixir: remove while (not a keyword in Elixir).
Kotlin: remove case (Kotlin uses when).
Fallback: return default splitter instead of calling fromLanguage
with an unsupported language.
* style: fix prettier formatting in CodeTextSplitter
* feat(observe) FLOWISE-575: port NodeExecutionDetail with hooks, atoms, and tool surfaces
Ports legacy NodeExecutionDetails.jsx (~1,285 LOC) to the observe SDK as a
composed orchestrator. Adds atoms (CodeFenceBlock, JsonBlock, NodeIcon),
core utils (guards, resolveTool, extractToolCalls), feature hooks
(useNodeData, useHumanInput, useResizableSidebar), and tool / condition /
HITL surfaces. Establishes the type-location and tier-3 conventions in
ARCHITECTURE.md and TESTS.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(observe): use original index for fulfilled condition labels
Iterate the original conditions array and skip non-fulfilled entries so
"Condition N" matches the branch the user configured in the Condition
node editor. Legacy had the same filter-then-index pattern; this is a
deliberate deviation tagged with a // PARITY: comment.
Addresses review on #6310.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(observe): cap JSON viewer height at 400px to match legacy
Bake legacy JSONViewer.jsx's `maxHeight: '400px'` default into the
JsonBlock atom so all call sites (Tools list, fulfilled conditions,
chat message JSON content, NodeContentRenderer JSON paths) scroll
inside a bounded frame instead of pushing the rest of the panel
off-screen. Previously only NodeContentRenderer applied a cap;
ToolAccordionList and FulfilledConditionsBlock were unbounded.
Drops the now-redundant DEFAULT_JSON_MAX_HEIGHT in NodeContentRenderer
and MESSAGE_JSON_MAX_HEIGHT in ChatMessageBubble — three copies of the
same 400 collapsed to the atom's single source of truth. The
jsonMaxHeight override path in NodeContentRenderer remains for
consumers that need a non-default cap.
Adds regression tests that compare emotion classNames against an
explicit-value control (jsdom can't compute MUI sx-applied CSS).
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
* Integrate executuons API
* Fix Status indicators example to use AgetnContext
* Fix styling of HITL pause icon
* Tet changes for node executiom
* Fix lint error
* Chat panel implementation
* Import functionality from v2
* Fix proxy issues for chat
* Fix styling of chat
* Split out chat panel changes — execution UI only
Remove TestFlowDialog, TestFlowButton container, chat avatars, react-markdown/remark-gfm/fetch-event-source deps, uuid/fileMock mocks, and related vite proxy changes. These belong to feat-agentflow-chatpanel which will be opened on top of this branch.
Restore StyledFab to node-palette, restore old TestFlowButton component, and revert Agentflow.tsx/canvas index to pre-chat state so this branch contains only the node execution status UI work.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
* chore(agentflow): remove TestFlowButton placeholder from execution branch
TestFlowButton belongs to the chat panel PR. Removing the placeholder
component, its exports, and its usage in Agentflow.tsx so this branch
contains only execution UI work.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
* Add test changes
* FIx gemini comments
* Add dark mode toggle
* Remove Execution API references
* Update E2E to stream API responses
---------
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
* fix(ChatAnthropic): remove deprecated parameters for models after Claude Opus 4.6
* updated AWSChatBedrock, ChatAnthropic, and ChatGoogleVertexAI components to handle newer Anthropic Claude models and their specific requirements
* revert targetNode changes
* bug: Block read_pickle and class definitions, restrict custom CSV field to read_csv() only
* pr
---------
Co-authored-by: Chloe Byun <[email protected]>
* Fix output node not selectable
* Fix highlight color
* Fix previous node displaying label and not ID
* Fix tool arguements not being called
* Fix dropdown values to not be bold
* Add standard sizing for all input text
* FIx syntax highlighting styling
* Use predefined tokens for font weight and size
* Fix dialog size of Source
* Fix color of syntax highlight in dark mode
* Fix the input fileds color in dark and regular mode
* Fix gemini comments
* FIx inconsistent spacing
* Standardise gap between label and field
* Remove export for unused function and standardize dialog size accrosss code, rich text,
and source
* Fix test error
* chore: update Node.js version consistency and optimize Docker build
- Bump .nvmrc from v20.19.2 to v20.20.2 to match CI
- Narrow package.json engines to ^20 across root and packages/server
- Exclude @flowiseai/agentflow and @flowiseai/observe from Docker build
to save ~40-50s per build (sdk packages not needed for app runtime)
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
* chore: add build:docker script and fix Docker build filter
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
* chore: update README files Node.js version to 20.0.0
---------
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: yau-wd <[email protected]>
* feat(models): add gpt-5.5 and gpt-5.5-pro to chatOpenAI
OpenAI released GPT-5.5 on April 23, 2026. Add both variants to the
chatOpenAI model list with confirmed pricing:
- gpt-5.5: /0 per 1M input/output tokens
- gpt-5.5-pro: 0/80 per 1M input/output tokens
* feat(models): add gpt-5.5 and gpt-5.5-pro to chatOpenAI_LlamaIndex
* chore: update agentflow workflow and add changelog
- Enhanced the npm dist-tag description in the publish-agentflow.yml workflow to clarify options for development, pre-release, and stable versions.
- Introduced a new CHANGELOG.md file for the @flowiseai/agentflow package, documenting notable changes and adhering to the Keep a Changelog format.
- Updated README.md to reflect the current development status and features of the agentflow package, including detailed descriptions of functionalities and examples.
* update TESTS.md to include TipTap mock