Chat improvements#30
Conversation
Greptile SummaryThis PR ships three improvements: (1) a custom link-safety modal that portals to All issues from the previous review round have been addressed: the userinfo ( Confidence Score: 5/5Safe to merge — all prior security and logic findings have been remediated and no new P0/P1 issues were found. Every issue flagged in the previous review round (userinfo URL bypass, setTimeout leak, duplicate artifact IDs, ReDoS) has been directly addressed in this PR. The new inline-display feature is well-structured: the display argument is stripped before MCP forwarding, built-in executors ignore it safely, safe-regex guards the if_output_matches path, and the sub-agent executor destructures only { task } so the field is never forwarded to the API. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Model
participant executeToolCalls
participant Executor as Tool Executor (built-in / MCP)
participant applyInlineDisplay
participant MultiModelResponse
Model->>executeToolCalls: tool_call { name, arguments: { ...params, display: { when, match, layout } } }
executeToolCalls->>Executor: toolCall (MCP: stripDisplayArg strips display first)
Executor-->>executeToolCalls: ToolExecutionResult { success, artifacts[] }
executeToolCalls->>applyInlineDisplay: (toolCall, result)
note over applyInlineDisplay: Reads display directive from toolCall.arguments<br/>Runs safeRegex + length cap for if_output_matches<br/>Appends display_selection artifact if condition met
applyInlineDisplay-->>executeToolCalls: result (with optional display_selection artifact)
executeToolCalls-->>MultiModelResponse: results map
MultiModelResponse->>MultiModelResponse: getDisplaySelectionForRound merges all display_selection artifacts, deduplicates IDs via Set
MultiModelResponse-->>Model: rendered artifact panel
Reviews (2): Last reviewed commit: "Review fixes" | Re-trigger Greptile |
No description provided.