feat(workflow): LLM retry/timeout, node run UI, host forensics plugins#85
Merged
duguwanglong merged 9 commits intomainfrom Apr 15, 2026
Merged
Conversation
- LLMClient.ask: optional timeout_s, max_retries, retry_delay_s; propagate via REPL LLM proxy - Rex prompt_builder: route host-forensics-fast subagent - WebUI: share latest execution across Run tab and node drawer; single-node run, runtime I/O, expanded code editor; API + i18n - Add project plugins: host-forensics-fast agent, loop_host_forensics_fast workflow - Tests: workflow LLM, agent, SSH script, RunTab, NodeInfoPanel Made-with: Cursor
- Pass through ssh_user from init; build ssh_target as user@host when set - Skip double-prefix when host list item already contains user@ - Include ssh_user/ssh_target in triage_results, JSON bundle, and raw export - Refresh workflow.md inputs docs and sampleInputs Made-with: Cursor
Align WorkflowEngine and run_workflow defaults for heavier nodes (e.g. LLM/subworkflow). Made-with: Cursor
…t finalize - Write each host triage to host_triage/*.md; keep triage_results as light index only - Replace LLM finalize with index, manifest, and JSON bundle to avoid timeout at scale - Update meta/workflow.md descriptions; restore generic sampleInputs (no real IPs) Made-with: Cursor
… samples Replace example hostnames and ssh_user with <host-1>/<host-2>/<ssh-user> in workflow metadata and documentation. Ensure workflow.json ends with newline. Made-with: Cursor
- Build ToolContext for workflow run and single-node execution with optional sessionId, messageId, and agent; create hidden temp parent session when absent - Filter sessions with hideFromSessionManager from session list API - Wire PythonExecRuntime with tool registry for run-node path Made-with: Cursor
- Extract Verdict from subagent markdown; persist in triage_results and per-host md - Finalize step aggregates verdict counts in index, manifest, results JSON, summary - Document behavior in workflow.md; add unit tests for verdict extraction Made-with: Cursor
- loop_host_forensics_fast: ssh_host_cmd preflight, one retry on timeout, failure_category in triage_results, batch_host_triage_results.csv - runner: _resolve_workflow_node_timeout applies metadata node_timeout_s when caller passes default 300s - tests: workflow code snippets and node timeout resolution Made-with: Cursor
duguwanglong
approved these changes
Apr 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
LLMClient.ask: optional timeout_s, max_retries, retry_delay_s; propagate via REPL LLM proxy
Rex prompt_builder: route host-forensics-fast subagent
WebUI: share latest execution across Run tab and node drawer; single-node run, runtime I/O, expanded code editor; API + i18n
Add project plugins: host-forensics-fast agent, loop_host_forensics_fast workflow