-
Notifications
You must be signed in to change notification settings - Fork 5
feat(web-ui): Glitch Capture REQ detail view and sidebar entry point (#569) #578
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
04146ab
989cfe0
94d1702
86fa12a
0c48d1c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -134,6 +134,10 @@ Persistent left sidebar with icon + label navigation: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4. **Execution** (play/monitor icon) - only visible when runs are active | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5. **Blockers** (alert icon) - badge count for open blockers | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6. **Review** (git branch icon) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7. **PROOF9** (checkmark icon) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8. **Sessions** (command-line icon) - badge count for active sessions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Sidebar action button**: A **"Capture Glitch"** button (Add01Icon) is always visible at the bottom of the sidebar. Clicking it opens `CaptureGlitchModal` without navigating away from the current page. This is the primary entry point for the glitch capture closed loop from anywhere in the app. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Secondary Navigation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Workspace breadcrumb** at top: shows current repo path, links to workspace root | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -367,10 +371,21 @@ ProofPage (/proof) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| └── (click → loads GateEvidencePanel for that run) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ProofRequirementPage (/proof/[req_id]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── RequirementDetail | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── ObligationsList | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── EvidenceHistory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| └── WaiveForm | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── RequirementHeader | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── Title, severity badge, ProofStatusBadge | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── MarkdownDescription (ReactMarkdown, images disallowed) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── MetadataRow (created_at, source, source_issue, created_by, waiver expiry) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── ScopeChips (files, routes, components, APIs, tags from ProofScope) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── ObligationsTable ← new (Phase 3.5C) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── ObligationRow[] (gate name, Latest Run pass/fail badge, link to evidence) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── Latest Run column: shows most-recent run result per gate | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── EvidenceHistory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── FilterBar (gate select, result select, search input, Reset Filters) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ ├── EvidenceTable (sortable: gate, result, run_id, timestamp, artifact) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ │ └── EvidenceRow[] (click run_id → focusRun filter) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| │ └── EmptyState CTA: "Capture a Glitch" link when no evidence exists | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ├── GateEvidencePanel (loads artifact content for latest run) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| └── WaiveDialog (modal, opens via Waive button in header) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
373
to
+388
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Architectural mismatch: Documented components don't exist as discrete exports. The documentation describes the While the described functionality is correctly implemented, developers looking for these named components will not find them in the codebase. Update the documentation to accurately reflect the inline implementation pattern or refactor the implementation to match the documented component hierarchy. 📝 Proposed documentation fix to match actual implementation ProofRequirementPage (/proof/[req_id])
-├── RequirementHeader
-│ ├── Title, severity badge, ProofStatusBadge
-│ ├── MarkdownDescription (ReactMarkdown, images disallowed)
-│ ├── MetadataRow (created_at, source, source_issue, created_by, waiver expiry)
-│ └── ScopeChips (files, routes, components, APIs, tags from ProofScope)
-├── ObligationsTable ← new (Phase 3.5C)
-│ └── ObligationRow[] (gate name, Latest Run pass/fail badge, link to evidence)
-│ └── Latest Run column: shows most-recent run result per gate
-├── EvidenceHistory
-│ ├── FilterBar (gate select, result select, search input, Reset Filters)
-│ ├── EvidenceTable (sortable: gate, result, run_id, timestamp, artifact)
-│ │ └── EvidenceRow[] (click run_id → focusRun filter)
-│ └── EmptyState CTA: "Capture a Glitch" link when no evidence exists
-├── GateEvidencePanel (loads artifact content for latest run)
-└── WaiveDialog (modal, opens via Waive button in header)
+├── Header section (inline JSX)
+│ ├── Title, severity badge, ProofStatusBadge
+│ ├── Description (ReactMarkdown, images disallowed)
+│ ├── Metadata row (created_at, source, source_issue, created_by, waiver expiry)
+│ └── Scope chips (files, routes, components, APIs, tags from ProofScope)
+├── Obligations section (inline JSX table)
+│ └── Obligation rows (gate name, status, Latest Run link)
+│ └── Latest Run column: clickable run_id that filters evidence history
+├── Evidence History section (inline JSX)
+│ ├── Filter controls (gate select, result select, search input, Reset Filters)
+│ ├── Evidence table (gate, result, run_id, timestamp, artifact)
+│ │ └── Evidence rows (click run_id → focusRun filter)
+│ └── Empty state with "Run Gates →" CTA linking to /review
+└── Waiver section (inline JSX with modal dialog)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **API Endpoints Used:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct the navigation label from "PROOF9" to "Proof".
The documentation claims the navigation item is labeled "PROOF9", but the actual implementation in
AppSidebar.tsxuses "Proof" as the label (line 37:label: 'Proof'). Update the documentation to match the implemented label.📝 Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents