mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-13 23:54:03 +00:00
Flatten investigation intelligence block
This commit is contained in:
parent
0e5a494d4f
commit
0a29f2384d
4 changed files with 28 additions and 15 deletions
|
|
@ -248,6 +248,9 @@ That same overview now keeps AI intelligence and data-governance details
|
|||
inside a collapsed `Investigation context` disclosure, so runtime status and
|
||||
identity stay primary while secondary AI and policy signals remain available
|
||||
without competing with the first-screen monitoring story.
|
||||
Inside that disclosure, the AI intelligence summary now reads as compact
|
||||
label/value rows instead of metric tiles, so the opened investigation surface
|
||||
stays scan-first before the change summary and correlation reveal appear.
|
||||
Inside that disclosure, learned dependency and correlation detail now sits
|
||||
behind its own reveal instead of rendering at full depth immediately, so the
|
||||
opened investigation surface stays label-first and leaves relationship pattern
|
||||
|
|
|
|||
|
|
@ -1844,24 +1844,22 @@ const DrawerContent: Component<ResourceDetailDrawerProps> = (props) => {
|
|||
<div class="text-[11px] font-medium uppercase tracking-wide text-base-content mb-2">
|
||||
AI Intelligence
|
||||
</div>
|
||||
<div class="grid gap-2 sm:grid-cols-3">
|
||||
<div class="rounded border border-border bg-surface-hover px-2 py-1.5">
|
||||
<div class="text-[10px] text-muted">Health</div>
|
||||
<div class="text-sm font-semibold text-base-content">
|
||||
<div class="space-y-1.5 text-[11px]">
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<span class="text-muted">Health</span>
|
||||
<span class="font-semibold text-base-content">
|
||||
{intel().health.grade} · {Math.round(intel().health.score)}/100
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="rounded border border-border bg-surface-hover px-2 py-1.5">
|
||||
<div class="text-[10px] text-muted">Trend</div>
|
||||
<div class="text-sm font-semibold text-base-content capitalize">
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<span class="text-muted">Trend</span>
|
||||
<span class="font-semibold capitalize text-base-content">
|
||||
{intel().health.trend}
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="rounded border border-border bg-surface-hover px-2 py-1.5">
|
||||
<div class="text-[10px] text-muted">Notes</div>
|
||||
<div class="text-sm font-semibold text-base-content">
|
||||
{intel().note_count}
|
||||
</div>
|
||||
<div class="flex items-center justify-between gap-2">
|
||||
<span class="text-muted">Notes</span>
|
||||
<span class="font-semibold text-base-content">{intel().note_count}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3 space-y-1.5 text-[11px]">
|
||||
|
|
|
|||
|
|
@ -241,9 +241,16 @@ describe('ResourceDetailDrawer change history section', () => {
|
|||
expect(screen.queryByText('VM Child')).toBeNull();
|
||||
expect(screen.queryByText('Capabilities 1')).toBeNull();
|
||||
expect(screen.queryByText('Relationships 1')).toBeNull();
|
||||
expect(screen.queryByText('AI Intelligence')).toBeNull();
|
||||
|
||||
fireEvent.click(screen.getByRole('button', { name: 'Show context' }));
|
||||
await screen.findByText('AI Intelligence');
|
||||
expect(screen.getByText('Health')).toBeInTheDocument();
|
||||
expect(screen.getByText('A · 92/100')).toBeInTheDocument();
|
||||
expect(screen.getByText('Trend')).toBeInTheDocument();
|
||||
expect(screen.getByText('stable')).toBeInTheDocument();
|
||||
expect(screen.getByText('Notes')).toBeInTheDocument();
|
||||
expect(screen.getByText('3')).toBeInTheDocument();
|
||||
fireEvent.click(screen.getByRole('button', { name: 'Show correlations' }));
|
||||
expect(
|
||||
screen
|
||||
|
|
|
|||
|
|
@ -464,7 +464,12 @@ describe('ResourceDetailDrawer runtime and identity cards', () => {
|
|||
await waitFor(() => {
|
||||
expect(getByText('AI Intelligence')).toBeInTheDocument();
|
||||
});
|
||||
expect(getByText('AI health A · 92/100 · 1 correlation')).toBeInTheDocument();
|
||||
expect(getByText('Health')).toBeInTheDocument();
|
||||
expect(getByText('A · 92/100')).toBeInTheDocument();
|
||||
expect(getByText('Trend')).toBeInTheDocument();
|
||||
expect(getByText('stable')).toBeInTheDocument();
|
||||
expect(getByText('Notes')).toBeInTheDocument();
|
||||
expect(getByText('3')).toBeInTheDocument();
|
||||
expect(queryByText('Storage 1')).toBeNull();
|
||||
fireEvent.click(getByRole('button', { name: 'Show correlations' }));
|
||||
await waitFor(() => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue