58 lines
4.3 KiB
Markdown
58 lines
4.3 KiB
Markdown
# Pinned Explanations Panel (Copy-Safe Ticket Creation)
|
|
|
|
## Module
|
|
Web
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Floating panel for pinning AI explanations and evidence summaries with multi-format export (Markdown, Plain Text, JSON, HTML, Jira). Supports session persistence, drag reordering, and one-click copy-to-clipboard for creating evidence-backed tickets in external issue trackers.
|
|
|
|
## Implementation Details
|
|
- **Feature directory**: `src/Web/StellaOps.Web/src/app/features/lineage/`
|
|
- **Routes**: `lineage.routes.ts`
|
|
- **Components**:
|
|
- `attestation-links` (`src/Web/StellaOps.Web/src/app/features/lineage/components/attestation-links/attestation-links.component.ts`)
|
|
- `audit-pack-export` (`src/Web/StellaOps.Web/src/app/features/lineage/components/audit-pack-export/audit-pack-export.component.ts`)
|
|
- `export-options` (`src/Web/StellaOps.Web/src/app/features/lineage/components/audit-pack-export/export-options/export-options.component.ts`)
|
|
- `merkle-display` (`src/Web/StellaOps.Web/src/app/features/lineage/components/audit-pack-export/merkle-display/merkle-display.component.ts`)
|
|
- `signing-options` (`src/Web/StellaOps.Web/src/app/features/lineage/components/audit-pack-export/signing-options/signing-options.component.ts`)
|
|
- `cgs-badge` (`src/Web/StellaOps.Web/src/app/features/lineage/components/cgs-badge/cgs-badge.component.ts`)
|
|
- `compare-panel` (`src/Web/StellaOps.Web/src/app/features/lineage/components/compare-panel/compare-panel.component.ts`)
|
|
- `diff-table` (`src/Web/StellaOps.Web/src/app/features/lineage/components/diff-table/diff-table.component.ts`)
|
|
- `explainer-step` (`src/Web/StellaOps.Web/src/app/features/lineage/components/explainer-timeline/explainer-step/explainer-step.component.ts`)
|
|
- `explainer-timeline` (`src/Web/StellaOps.Web/src/app/features/lineage/components/explainer-timeline/explainer-timeline.component.ts`)
|
|
- `export-dialog` (`src/Web/StellaOps.Web/src/app/features/lineage/components/export-dialog/export-dialog.component.ts`)
|
|
- `keyboard-shortcuts-help` (`src/Web/StellaOps.Web/src/app/features/lineage/components/keyboard-shortcuts-help/keyboard-shortcuts-help.component.ts`)
|
|
- `lineage-compare-panel` (`src/Web/StellaOps.Web/src/app/features/lineage/components/lineage-compare-panel/lineage-compare-panel.component.ts`)
|
|
- `lineage-compare` (`src/Web/StellaOps.Web/src/app/features/lineage/components/lineage-compare/lineage-compare.component.ts`)
|
|
- `lineage-component-diff` (`src/Web/StellaOps.Web/src/app/features/lineage/components/lineage-component-diff/lineage-component-diff.component.ts`)
|
|
- ... and 32 more components
|
|
- **Services**:
|
|
- `audit-pack` (`src/Web/StellaOps.Web/src/app/features/lineage/services/audit-pack.service.ts`)
|
|
- `explainer` (`src/Web/StellaOps.Web/src/app/features/lineage/services/explainer.service.ts`)
|
|
- `lineage-export` (`src/Web/StellaOps.Web/src/app/features/lineage/services/lineage-export.service.ts`)
|
|
- `lineage-graph` (`src/Web/StellaOps.Web/src/app/features/lineage/services/lineage-graph.service.ts`)
|
|
- **Models**:
|
|
- `src/Web/StellaOps.Web/src/app/features/lineage/components/audit-pack-export/models/audit-pack.models.ts`
|
|
- `src/Web/StellaOps.Web/src/app/features/lineage/components/diff-table/models/diff-table.models.ts`
|
|
- `src/Web/StellaOps.Web/src/app/features/lineage/components/explainer-timeline/models/explainer.models.ts`
|
|
- `src/Web/StellaOps.Web/src/app/features/lineage/components/node-diff-table/models/diff-table.models.ts`
|
|
- `src/Web/StellaOps.Web/src/app/features/lineage/components/pinned-explanation/models/pinned.models.ts`
|
|
- **Source**: SPRINT_20251229_001_007_FE_pinned_explanations.md
|
|
|
|
## E2E Test Plan
|
|
- **Setup**:
|
|
- [ ] Log in with a user that has appropriate permissions
|
|
- [ ] Navigate to `/lineage`
|
|
- [ ] Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed)
|
|
- **Core verification**:
|
|
- [ ] Verify the panel/drawer opens on trigger (click, keyboard shortcut)
|
|
- [ ] Verify the panel displays the correct detail data for the selected item
|
|
- [ ] Verify the panel can be closed (X button, Escape key, backdrop click)
|
|
- **Edge cases**:
|
|
- [ ] Verify graceful handling when backend API is unavailable (error state)
|
|
- [ ] Verify responsive layout at different viewport sizes
|
|
- [ ] Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes)
|