Skip to content

feat(ui): maintainer dashboard panel for the existing @loopover chat Q&A surface #12549

feat(ui): maintainer dashboard panel for the existing @loopover chat Q&A surface

feat(ui): maintainer dashboard panel for the existing @loopover chat Q&A surface #12549

Triggered via pull request July 16, 2026 16:20
Status Failure
Total duration 4m 40s
Artifacts 4

ci.yml

on: pull_request
Matrix: validate-tests
validate-tests-merge
validate-tests-merge
validate
4s
validate
Fit to window
Zoom out
Zoom in

Annotations

16 errors and 10 warnings
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L95
Replace `·ok:·true,·data:·{·status:·"unsafe",·model:·"test-model",·estimatedNeurons:·20,·reason:·"chat·answer·failed·public·sanitizer"·}` with `⏎······ok:·true,⏎······data:·{⏎········status:·"unsafe",⏎········model:·"test-model",⏎········estimatedNeurons:·20,⏎········reason:·"chat·answer·failed·public·sanitizer",⏎······},⏎···`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L87
Replace `·ok:·true,·data:·{·status:·"quota_exceeded",·model:·"test-model",·estimatedNeurons:·900,·remainingBudget:·0·}` with `⏎······ok:·true,⏎······data:·{⏎········status:·"quota_exceeded",⏎········model:·"test-model",⏎········estimatedNeurons:·900,⏎········remainingBudget:·0,⏎······},⏎···`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L78
Replace `·status:·"declined",·reason:·"No·cached·deterministic·facts·are·available.",·suggestion:·"Run·`@loopover·preflight`·or·`@loopover·blockers`·for·the·deterministic·readiness·facts."` with `⏎········status:·"declined",⏎········reason:·"No·cached·deterministic·facts·are·available.",⏎········suggestion:⏎··········"Run·`@loopover·preflight`·or·`@loopover·blockers`·for·the·deterministic·readiness·facts.",⏎·····`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L68
Replace `·ok:·true,·data:·{·status:·"unavailable",·reason:·"Local·advisory·inference·(env.AI_ADVISORY)·is·not·configured."·}` with `⏎······ok:·true,⏎······data:·{⏎········status:·"unavailable",⏎········reason:·"Local·advisory·inference·(env.AI_ADVISORY)·is·not·configured.",⏎······},⏎···`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L60
Replace `·ok:·true,·data:·{·status:·"disabled",·reason:·"Chat·Q&A·is·not·enabled·on·this·instance·(settings.advisoryAiRouting.chatQa·is·off)."·}` with `⏎······ok:·true,⏎······data:·{⏎········status:·"disabled",⏎········reason:⏎··········"Chat·Q&A·is·not·enabled·on·this·instance·(settings.advisoryAiRouting.chatQa·is·off).",⏎······},⏎···`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L55
Replace `·method:·"POST",·label:·"Chat·Q&A",·body:·JSON.stringify({·question:·"Why·is·this·blocked?"·})` with `⏎········method:·"POST",⏎········label:·"Chat·Q&A",⏎········body:·JSON.stringify({·question:·"Why·is·this·blocked?"·}),⏎·····`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L50
Replace `·expect(screen.getByText("This·PR·is·blocked·on·a·failing·check.")).toBeTruthy()` with `⏎······expect(screen.getByText("This·PR·is·blocked·on·a·failing·check.")).toBeTruthy(),⏎····`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L46
Replace `·ok:·true,·data:·{·status:·"ok",·model:·"test-model",·estimatedNeurons:·12,·text:·"This·PR·is·blocked·on·a·failing·check."·}` with `⏎······ok:·true,⏎······data:·{⏎········status:·"ok",⏎········model:·"test-model",⏎········estimatedNeurons:·12,⏎········text:·"This·PR·is·blocked·on·a·failing·check.",⏎······},⏎···`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L28
Replace `·reviewability={[{·pr:·"acme/widgets#2",·title:·"Fix·flaky·test",·chatQaEnabled:·false·}]}` with `⏎········reviewability={[{·pr:·"acme/widgets#2",·title:·"Fix·flaky·test",·chatQaEnabled:·false·}]}⏎·····`
validate-code: apps/loopover-ui/src/components/site/app-panels/chat-qa-panel.test.tsx#L17
Replace `·target:·{·value:·question·}` with `⏎····target:·{·value:·question·},⏎·`
Tests
The backend test coverage suite failed (shard 6/6).
validate-tests (6)
Process completed with exit code 1.
Tests
The backend test coverage suite failed (shard 2/6).
validate-tests (2)
Process completed with exit code 1.
validate
Process completed with exit code 1.
CI
A required CI job failed or was cancelled.
validate-code: apps/loopover-ui/src/components/ui/calendar.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/button.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/breadcrumb.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/badge.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/avatar.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/aspect-ratio.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/alert.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/alert-dialog.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/ui/accordion.tsx#L1
This rule can't verify that `export *` only exports components
validate-code: apps/loopover-ui/src/components/site/api/try-it.tsx#L24
Fast refresh only works when a file only exports components. Use a new file to share constants or functions between components

Artifacts

Produced during runtime
Name Size Digest
coverage-blob-shard-1 Expired
3.74 MB
sha256:a8507d4204f4e38761d1ce9fbbf41c693f313dea3f4c56bc23530426abb4f7e5
coverage-blob-shard-3 Expired
3.69 MB
sha256:20b1fa6b7add79b182d663c6b23966ed5fc44f8dfbbe89dc91e90797c4728219
coverage-blob-shard-4 Expired
3.72 MB
sha256:3f8a690ba8c0f12e5ac42f519123409843a3269624d383699a3637a2c756bed0
coverage-blob-shard-5 Expired
3.65 MB
sha256:f5f73e847c9294dbdd15046605a2528b6cf182d6c0a2b0d905b5fb772c33f369