feat: VRL & pipeline AI fixes — multiline inputs, surgical VRL replacement, layout, scroll#98
Conversation
Greptile SummaryThis PR delivers four cohesive improvements to the VRL editor and Pipeline AI dialog: a scroll fix for the Review tab message thread ( Key changes:
Confidence Score: 4/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Pipeline AI Review Tab] -->|sends current YAML| B[AI generates suggestions]
B -->|modify_vrl suggestion| C{Validate in suggestionStatuses}
C -->|validateSuggestions: componentKey exists?| D{configPath → string?}
D -->|no| E[status: invalid]
D -->|yes| F{value.includes targetCode?}
F -->|no| G[status: outdated]
F -->|yes| H[status: actionable]
H -->|user applies| I[applyModifyVrl]
I -->|getAtPath config| J{exact includes?}
J -->|no| K[error: target not found]
J -->|yes| L[replaceAll → newConfig]
L --> M[update node in store]
N[VRL Editor AI Panel] -->|replace_code suggestion| O{computeVrlSuggestionStatuses}
O -->|exact includes?| P[status: actionable]
O -->|normalized match?| P
O -->|neither| Q[status: outdated]
P -->|user applies| R[applyVrlSuggestion]
R -->|exact match| S[replaceAll ← all occurrences]
R -->|normalized match| T[slice+concat ← first occurrence only]
|
Mark modify_vrl suggestions as "outdated" when targetCode is not found in the config value, instead of showing them as actionable and failing on apply.
Summary
min-h-0to flex container chain so the review tab message thread scrolls correctly<Input>with auto-growing<textarea>in both Generate and Review tabs (Enter submits, Shift+Enter for newlines)modify_vrlsuggestion type that performs targetCode→code string replacement within VRL config fields instead of overwriting entire sections. Updated types, applier, validator, suggestion cards, prompts, and dialog validation.toolsPanel/aiPanelOpeninto singlerightPanelstate; toolbar moved above editor; right panel shows tools OR AI (never both); editor stays full-width alwaysTest plan
pnpm tsc --noEmit— no new errors in modified files