GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — improvement(files): update execution for passing base64 strings by icecrasher321 · Pull Request #2906 · simstudioai/sim Conversation
Contributor
SummaryHydrate base64 strings into outputs during execution. Type of Change
TestingTested manually Checklist
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Greptile SummaryThis PR implements base64 string hydration for file outputs during workflow execution, enabling downstream blocks to access file content directly without additional fetches. Key Changes:
Architecture:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Client
participant ExecuteRoute as /api/workflows/[id]/execute
participant ExecutionCore
participant BlockExecutor
participant FileParseAPI as /api/files/parse
participant Storage as Execution Storage
participant Redis as Redis Cache
Client->>ExecuteRoute: POST (includeFileBase64: true)
ExecuteRoute->>ExecutionCore: executeWorkflowCore()
ExecutionCore->>BlockExecutor: execute block (e.g., File Parser)
BlockExecutor->>FileParseAPI: parse file
FileParseAPI->>Storage: uploadExecutionFile()
Storage-->>FileParseAPI: UserFile (with key)
FileParseAPI-->>BlockExecutor: ParseResult with UserFile
Note over BlockExecutor: if includeFileBase64 && containsUserFileWithMetadata
BlockExecutor->>Redis: cache.get(file)
alt Cache hit
Redis-->>BlockExecutor: base64 string
else Cache miss
BlockExecutor->>Storage: downloadFileFromStorage()
Storage-->>BlockExecutor: Buffer
BlockExecutor->>BlockExecutor: bufferToBase64()
BlockExecutor->>Redis: cache.set(file, base64, ttl)
end
BlockExecutor-->>ExecutionCore: output with UserFile.base64
ExecutionCore-->>ExecuteRoute: ExecutionResult
ExecuteRoute->>ExecuteRoute: hydrateUserFilesWithBase64(output)
ExecuteRoute->>Redis: cleanupExecutionBase64Cache(executionId)
ExecuteRoute-->>Client: Response with base64 hydrated files
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cursor review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cursor review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cursor review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@cursor review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
* fix(google): wrap primitive tool responses for Gemini API compatibility (#2900) * fix(canonical): copilot path + update parent (#2901) * fix(rss): add top-level title, link, pubDate fields to RSS trigger output (#2902) * fix(rss): add top-level title, link, pubDate fields to RSS trigger output * fix(imap): add top-level fields to IMAP trigger output * improvement(browseruse): add profile id param (#2903) * improvement(browseruse): add profile id param * make request a stub since we have directExec * improvement(executor): upgraded abort controller to handle aborts for loops and parallels (#2880) * improvement(executor): upgraded abort controller to handle aborts for loops and parallels * comments * improvement(files): update execution for passing base64 strings (#2906) * progress * improvement(execution): update execution for passing base64 strings * fix types * cleanup comments * path security vuln * reject promise correctly * fix redirect case * remove proxy routes * fix tests * use ipaddr * feat(tools): added textract, added v2 for mistral, updated tag dropdown (#2904) * feat(tools): added textract * cleanup * ack pr comments * reorder * removed upload for textract async version * fix additional fields dropdown in editor, update parser to leave validation to be done on the server * added mistral v2, files v2, and finalized textract * updated the rest of the old file patterns, updated mistral outputs for v2 * updated tag dropdown to parse non-operation fields as well * updated extension finder * cleanup * added description for inputs to workflow * use helper for internal route check * fix tag dropdown merge conflict change * remove duplicate code --------- Co-authored-by: Vikhyath Mondreti <[email protected]> * fix(ui): change add inputs button to match output selector (#2907) * fix(canvas): removed invite to workspace from canvas popover (#2908) * fix(canvas): removed invite to workspace * removed unused props * fix(copilot): legacy tool display names (#2911) * fix(a2a): canonical merge (#2912) * fix canonical merge * fix empty array case * fix(change-detection): copilot diffs have extra field (#2913) * improvement(logs): improved logs ui bugs, added subflow disable UI (#2910) * improvement(logs): improved logs ui bugs, added subflow disable UI * added duplicate to action bar for subflows * feat(broadcast): email v0.5 (#2905) --------- Co-authored-by: Vikhyath Mondreti <[email protected]> Co-authored-by: Vikhyath Mondreti <[email protected]> Co-authored-by: Emir Karabeg <[email protected]>
785e3a76
Deployed
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.