-
Notifications
You must be signed in to change notification settings - Fork 46.2k
feat(frontend): support multiple node execution results and accumulated data display #11834
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
β¦rendering ### Changes - Refactored `AgentOutputs` and `CustomNode` components to handle multiple execution results, ensuring the latest result is used for output rendering. - Updated `useNodeOutput` to retrieve the latest input and output data from the node store. - Enhanced `NodeDataRenderer` and `NodeDataViewer` to support grouped execution results, improving the display of output data. - Introduced new methods in `nodeStore` for managing accumulated input and output data, along with clearing execution results. ### Impact - Improves the accuracy of displayed outputs by using the most recent execution results. - Enhances user experience by providing a clearer view of execution data across multiple runs. ### Testing - Verified that the updated components render the correct output data based on the latest execution results. - Ensured that all existing tests pass with the new data handling logic.
|
Warning Rate limit exceeded
β How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. π¦ How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. π Files selected for processing (1)
WalkthroughRefactors node execution handling to store multiple execution results per node, tracks latest and accumulated input/output data in the store, adds helpers for normalizing/rendering execution items, updates UI components to use array-based executionResults and latest result, and clears execution state before manual runs. Changes
Sequence DiagramsequenceDiagram
participant UI as Flow Editor UI
participant RunHook as useRunInputDialog
participant Store as NodeStore
participant Helpers as Output Helpers
participant Renderer as Output Renderer
UI->>RunHook: user triggers manual run
RunHook->>Store: clearAllNodeExecutionResults()
RunHook->>Store: cleanNodesStatuses()
Note over RunHook,Store: graph execution starts
loop for each node result
Graph->>Store: updateNodeExecutionResult(nodeId, result)
Store->>Helpers: accumulateExecutionData(accum, result.input/output)
Helpers-->>Store: merged accumulated data
Store->>Store: set latestNodeInput/OutputData[nodeId]
Store->>Store: append/getNodeExecutionResults(nodeId)
end
UI->>Store: getLatestNodeExecutionResult(nodeId)
Store-->>UI: latest result
UI->>Store: getLatestNodeOutputData(nodeId)
Store-->>UI: latestOutputData
UI->>Renderer: render latestOutputData
UI->>Store: getNodeExecutionResults(nodeId)
Store-->>UI: NodeExecutionResult[]
UI->>Helpers: createOutputItems / getExecutionEntries
Helpers-->>UI: Output items grouped by exec
UI->>Renderer: display grouped executions / ViewMoreData
Estimated code review effortπ― 4 (Complex) | β±οΈ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
π₯ Pre-merge checks | β 3β Passed checks (3 passed)
βοΈ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This stack of pull requests is managed by Graphite. Learn more about stacking. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
π€ Fix all issues with AI agents
In
`@autogpt_platform/frontend/src/app/`(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsx:
- Around line 87-167: Two icon-only copy buttons lack accessible labels; add
descriptive aria-labels to the Button that calls
copyExecutionId(result.node_exec_id) (e.g., "Copy execution id
{result.node_exec_id}") and to the Button that calls
handleCopy(`${result.node_exec_id}-${key}`, normalizedValue) (e.g., "Copy data
for pin {beautifyString(key)} in execution {result.node_exec_id}"). Locate the
Buttons by the onClick handlers copyExecutionId and handleCopy in the
ViewMoreData component and add aria-label props with the described strings to
each button.
In
`@autogpt_platform/frontend/src/app/`(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.ts:
- Around line 32-70: The fallback that converts non-string values to JSON in
createOutputItems can throw (e.g., circular refs or BigInt) and crash the UI;
wrap the JSON.stringify call used when no renderer is found (the branch that
selects TextRenderer from globalRegistry and pushes into items) in a try/catch
and if stringify throws use a safe fallback like String(value) (or a
placeholder) for the value before pushing the OutputItem; ensure you keep the
same metadata/renderer and key generation (`item-${index}`).
In `@autogpt_platform/frontend/src/app/`(platform)/build/stores/nodeStore.ts:
- Around line 337-403: The handler updateNodeExecutionResult currently
overwrites latestNodeInputData/latestNodeOutputData and skips refreshing
accumulatedNodeInputData/Output when a duplicate node_exec_id is received, which
can corrupt "latest" and accumulated caches; fix by, when detecting a duplicate
(in updateNodeExecutionResult for the matching node), produce an updatedResults
array that replaces the matching result (existingResults.map(...) used already),
then recompute accumulatedNodeInputData[nodeId] and
accumulatedNodeOutputData[nodeId] by reducing over updatedResults with
accumulateExecutionData (instead of leaving accumulated unchanged), and set
latestNodeInputData[nodeId] / latestNodeOutputData[nodeId] from the most recent
entry in updatedResults (e.g., the last element) so duplicates don't incorrectly
become the latest unless they truly are the latest; keep the current accumulate
path for non-duplicates.
π Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
π Files selected for processing (12)
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.ts
π§° Additional context used
π Path-based instructions (8)
autogpt_platform/frontend/**/*.{ts,tsx}
π CodeRabbit inference engine (.github/copilot-instructions.md)
autogpt_platform/frontend/**/*.{ts,tsx}: Always run pnpm install before frontend development, then use pnpm dev to start development server on port 3000
For frontend code formatting and linting, always run pnpm formatIf adding protected frontend routes, update
frontend/lib/supabase/middleware.ts
autogpt_platform/frontend/**/*.{ts,tsx}: Use generated API hooks from@/app/api/__generated__/endpoints/for data fetching in frontend
Use function declarations (not arrow functions) for components and handlers in frontend
Only use Phosphor Icons in frontend; never use other icon libraries
Never usesrc/components/__legacy__/*or deprecatedBackendAPIin frontend
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/**/*.{ts,tsx,json}
π CodeRabbit inference engine (.github/copilot-instructions.md)
Use Node.js 21+ with pnpm package manager for frontend development
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/src/**/*.{ts,tsx}
π CodeRabbit inference engine (.github/copilot-instructions.md)
autogpt_platform/frontend/src/**/*.{ts,tsx}: Use generated API hooks from@/app/api/__generated__/endpoints/(generated via Orval from backend OpenAPI spec). Pattern: use{Method}{Version}{OperationName} (e.g., useGetV2ListLibraryAgents). Regenerate with: pnpm generate:api. Never use deprecated BackendAPI or src/lib/autogpt-server-api/*
Use function declarations for components and handlers (not arrow functions). Only arrow functions for small inline lambdas (map, filter, etc.)
Use PascalCase for components, camelCase with use prefix for hooks
No barrel files or index.ts re-exports in frontend
For frontend render errors, use component. For mutation errors, display with toast notifications. For manual exceptions, use Sentry.captureException()
Default to client components (use client). Use server components only for SEO or extreme TTFB needs. Use React Query for server state via generated hooks. Co-locate UI state in components/hooks
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/**/*.{js,ts,jsx,tsx}
π CodeRabbit inference engine (AGENTS.md)
Format frontend code using
pnpm format
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/**
π CodeRabbit inference engine (autogpt_platform/CLAUDE.md)
autogpt_platform/frontend/**: Install frontend dependencies usingpnpm iinstead of npm
Generate API client from OpenAPI spec usingpnpm generate:api
Regenerate API client hooks usingpnpm generate:apiwhen OpenAPI spec changes
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/**/*.{ts,tsx,css}
π CodeRabbit inference engine (autogpt_platform/CLAUDE.md)
Use only Tailwind CSS for styling in frontend, with design tokens and Phosphor Icons
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.tsautogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.tsautogpt_platform/frontend/src/app/(platform)/build/stores/types.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.tsautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/src/**/*.tsx
π CodeRabbit inference engine (autogpt_platform/CLAUDE.md)
Use design system components from
src/components/(atoms, molecules, organisms) in frontend
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
autogpt_platform/frontend/src/app/**/*.tsx
π CodeRabbit inference engine (autogpt_platform/CLAUDE.md)
Create frontend pages in
src/app/(platform)/feature-name/page.tsxwith correspondingusePageName.tshook and localcomponents/subfolder
Files:
autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsxautogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx
𧬠Code graph analysis (5)
autogpt_platform/frontend/src/app/(platform)/build/stores/types.ts (1)
autogpt_platform/frontend/src/app/(platform)/build/hooks/useSubAgentUpdate/types.ts (1)
IncompatibilityInfo(16-27)
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsx (1)
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.ts (3)
NodeDataType(6-6)getExecutionEntries(77-83)normalizeToArray(15-18)
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsx (7)
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.ts (2)
NodeDataType(6-6)OutputItem(8-13)autogpt_platform/frontend/src/lib/utils.ts (1)
beautifyString(147-156)autogpt_platform/frontend/src/components/atoms/Button/Button.tsx (1)
Button(12-152)autogpt_platform/frontend/src/components/contextual/OutputRenderers/components/OutputItem.tsx (1)
OutputItem(13-30)autogpt_platform/frontend/src/components/contextual/OutputRenderers/index.ts (1)
OutputItem(19-19)autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers/components/OutputItem.tsx (1)
OutputItem(13-30)autogpt_platform/frontend/src/app/(platform)/library/agents/[id]/components/NewAgentLibraryView/components/selected-views/OutputRenderers/index.ts (1)
OutputItem(19-19)
autogpt_platform/frontend/src/app/(platform)/build/stores/nodeStore.ts (2)
autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts (1)
NodeExecutionResult(485-506)autogpt_platform/frontend/src/app/(platform)/build/stores/helpers.ts (1)
accumulateExecutionData(1-16)
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx (1)
autogpt_platform/frontend/src/lib/autogpt-server-api/types.ts (1)
NodeExecutionResult(485-506)
β° Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: types
- GitHub Check: Seer Code Review
- GitHub Check: e2e_test
- GitHub Check: Check PR Status
π Additional comments (11)
autogpt_platform/frontend/src/app/(platform)/build/stores/types.ts (1)
1-14: LGTM β centralizedNodeResolutionDatatype looks consistent.autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/RunInputDialog/useRunInputDialog.ts (1)
156-158: LGTM β pre-run reset aligns with new execution-history behavior.autogpt_platform/frontend/src/app/(platform)/build/stores/helpers.ts (1)
1-15: LGTM β accumulation helper is clear and deterministic.autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/CustomNode.tsx (2)
37-37: LGTM β data shape updated for execution history.
78-83: LGTM β latest-result derivation is consistent with history storage.autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/useNodeOutput.tsx (2)
10-20: LGTM β latest execution data now sourced via store getters.
42-48: LGTM β updated return shape aligns with new data flow.autogpt_platform/frontend/src/app/(platform)/build/components/BuilderActions/components/AgentOutputs/AgentOutputs.tsx (1)
41-46: No action needed. The code correctly handles execution result orderingβnodeExecutionResultsis always appended chronologically via the spread operator ([...existingResults, result]), and duplicate results (checked bynode_exec_id) are updated in place rather than re-added, ensuring the last element is always the most recent result.autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/NodeOutput.tsx (1)
19-148: LGTM β latest/accumulated wiring looks consistent.The updated data flow and rendering logic align with the new execution-history model and keep the UI behavior coherent.
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/useNodeDataViewer.ts (1)
19-166: LGTM β grouped execution support is clean and readable.The grouping logic and new handlers integrate well with the helper utilities.
autogpt_platform/frontend/src/app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/NodeDataViewer/NodeDataViewer.tsx (1)
39-307: LGTM β grouped rendering and store-backed resolution are solid.The new grouped view and data resolution logic are well-integrated with the updated store API.
βοΈ Tip: You can disable this entire section by setting review_details to false in your review settings.
...ild/components/FlowEditor/nodes/CustomNode/components/NodeOutput/components/ViewMoreData.tsx
Show resolved
Hide resolved
...app/(platform)/build/components/FlowEditor/nodes/CustomNode/components/NodeOutput/helpers.ts
Show resolved
Hide resolved
### Changes - Removed unused `useNodeStore` and `useShallow` imports from `NodeOutput.tsx`. - Simplified the mapping of output data in `NodeDataRenderer` by directly using `latestOutputData` values. - Updated the `handleCopy` function to use the simplified value variable. ### Impact - Streamlines the output rendering logic, improving code readability and maintainability. - Reduces unnecessary dependencies, enhancing performance. ### Testing - Verified that the output rendering remains consistent with the latest execution results.
β¦omNode components ### Changes - Updated import paths for `NodeResolutionData` to use the new `types` module. - Simplified the data handling logic in `useNodeDataViewer` by removing unnecessary `useMemo` hooks, improving readability and performance. - Cleaned up imports in `useSubAgentUpdateState` to align with the new structure. ### Impact - Enhances code clarity and maintainability by reducing complexity in data processing. - Ensures consistency in import paths across components. ### Testing - Verified that the functionality of the affected components remains intact after the refactor.
### Changes - Updated the logic for handling duplicate node execution results by using `findIndex` instead of `some`. - Improved the update mechanism for existing results to ensure that input and output data changes are accurately reflected. - Recomputed accumulated input and output data when duplicates are found, enhancing data integrity. ### Impact - Increases the accuracy of node execution data management, ensuring that the latest results are used effectively. - Enhances code clarity and maintainability by streamlining the update process for node execution results. ### Testing - Verified that the updated logic correctly handles duplicate results and maintains the integrity of accumulated data.
β¦ results handling ### Changes - Removed unused `NodeExecutionResult` type and `executionResults` prop from `NodeDataViewerProps`. - Simplified the logic for resolving execution results by directly using the `useNodeStore` hook. - Updated the component to ensure consistent handling of data types and improved readability. ### Impact - Enhances code clarity and maintainability by reducing unnecessary complexity in the component. - Ensures that the latest execution results are effectively utilized in the data viewer. ### Testing - Verified that the component functions correctly with the updated logic and maintains expected behavior.
0ubbe
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome β€οΈ π―

Changes ποΈ
Checklist π
For code changes: