live-debug: show the LAL drop reason#92
Merged
Merged
Conversation
The OAP dsl-debugging session response now carries an optional per-sample 'reason' explaining WHY a LAL step stopped the pipeline (parse failure, non-matching regexp, non-log-body input). Surface it in the live debugger: - api-client: add optional SessionSample.reason. - LalCell: render the reason under the abort marker when present. - DebugLal: pass the sample's reason to the cell. - i18n: add the 'drop reason' label (en + zh-CN). Backward compatible: reason is optional, so an OAP version that does not send it (older dev builds) renders exactly as before — the block only appears when a reason is present. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
There was a problem hiding this comment.
Pull request overview
Adds support in Horizon UI’s live debugger (LAL view) to display the OAP-provided per-sample “drop reason” explaining why a pipeline step stopped (e.g., parse failure / regexp non-match / input-type mismatch). This improves diagnosability beyond the existing “stopped” signal.
Changes:
- Extend the api-client
SessionSampletype with optionalreason?: stringfor backward-compatible consumption. - Render an additional “drop reason” block in
LalCellwhenreasonis present, and plumb the field fromDebugLalinto the cell. - Add i18n strings for the new label (en + zh-CN; other locales rely on fallback-to-en behavior).
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/api-client/src/dsl-debugging.ts | Adds optional SessionSample.reason with clear documentation and backward-compat notes. |
| apps/ui/src/i18n/locales/en.json | Adds the drop reason label in the source (English) catalog. |
| apps/ui/src/i18n/locales/zh-CN.json | Adds the drop reason label translation for zh-CN. |
| apps/ui/src/features/operate/live-debug/LalCell.vue | Displays the drop reason under the cell content when provided; styling matches existing warn/accent patterns. |
| apps/ui/src/features/operate/live-debug/DebugLal.vue | Passes sample.reason down into LalCell from the per-cell sample. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The reason rendered in the dense matrix cell — where it truncates like any long value — but not in the full-cell popout, which is where you go to read a cell in full. Add a `reason` prop + wrapped block to LalCellPopout and thread the sample's reason through openCellPopout so the detail view shows the complete explanation.
wankai123
approved these changes
Jul 3, 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.
What
Surface the new OAP drop reason in the live debugger's LAL view. When a LAL rule stops a log at a parse step — a
json {}/yaml {}parse failure, atext { regexp }non-match, or a non-log-body input — the OAPdsl-debuggingsession response now carries a per-samplereasonexplaining why. Previously the UI could only showcontinueOn = false(that a step stopped, never why).Pairs with the OAP change apache/skywalking#13937.
Changes
SessionSample.reason.reasonto the matrix cell, and thread it throughopenCellPopoutto the detail popout.drop reasonlabel (en + zh-CN; other locales fall back to en).Backward compatibility
reasonis optional. An OAP version that doesn't send it (older dev builds, or MAL/OAL samples which don't populate it) renders exactly as before — the reason block isv-ifon the reason, so it only appears when present. No change to any existing sample display. The BFF forwards the session response raw, soreasonrides through with no BFF change.Validation
type-check,lint,license:checkclean;apps/uiunit tests 133 passed. Previewed in the local dev stack against the demo OAP with a mockedreasononcontinueOn:falseALS samples (the paired OAP change isn't merged yet): the reason renders in the matrix cell and, now, fully in the detail popout.