From 3de14164fcadabbf2a3b2bcb4fa0df46319621fb Mon Sep 17 00:00:00 2001 From: Dmytro Tkachenko Date: Sat, 29 Aug 2026 12:09:36 +0300 Subject: [PATCH] feat(insights): collapsible Alert categories + Watch list accordions The PM Insights "Alert categories" and "Watch list" sections are now accordions: each heading is a button (chevron + category-count badge, aria-expanded/aria-controls) that collapses/expands its card grid. Both default open; the per-card ticket expand and the Per-PM roll-up table are unchanged. - Section accordion component + sections state in Insights/index.tsx - ChevronIcon that rotates with the section's open state - .grid[hidden] rule so a collapsed grid actually hides (beats .grid on specificity + source order) - bump 2.3.0 -> 2.3.1 (root + client), CHANGELOG [2.3.1] - engineer artifact + INDEX line; verifier-log PASS entry verifier PASS (verifier-log 2026-08-29 12:07): reproduced tsc + vite build; confirmed the [hidden] collapse in the compiled CSS; no per-card regression; no new dependency. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01VEsaHQx8cXr1hFrKU42UK6 --- CHANGELOG.md | 10 +++++ claude_artifacts/INDEX.md | 1 + claude_artifacts/engineer-20260829-120746.md | 31 ++++++++++++++++ claude_artifacts/verifier-log.md | 1 + client/package.json | 2 +- client/src/components/icons/index.tsx | 8 ++++ .../src/pages/Insights/Insights.module.scss | 37 +++++++++++++++++++ client/src/pages/Insights/index.tsx | 30 +++++++++++---- package.json | 2 +- 9 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 claude_artifacts/engineer-20260829-120746.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 3703440..c7589c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to **FORGE** are documented here. Format based on [Keep a Changelog](https://keepachangelog.com/); this project uses [Semantic Versioning](https://semver.org/). +## [2.3.1] — 2026-08-29 + +### Changed +- **PM Insights — collapsible sections.** The **Alert categories** and **Watch list** + sections are now accordions: each heading is a button (chevron + a category-count + badge, `aria-expanded`/`aria-controls`) that collapses/expands its card grid. Both + default to open; the per-card ticket expand and the **Per-PM roll-up** table are + unchanged. Adds a `ChevronIcon` (rotates with the section) and a `.grid[hidden]` rule + so a collapsed grid actually hides. + ## [2.3.0] — 2026-08-27 ### Added diff --git a/claude_artifacts/INDEX.md b/claude_artifacts/INDEX.md index e9fb3b9..187d0cf 100644 --- a/claude_artifacts/INDEX.md +++ b/claude_artifacts/INDEX.md @@ -1,4 +1,5 @@ # Artifact index +- [engineer-20260829-120746](engineer-20260829-120746.md) — PM Insights: "Alert categories" + "Watch list" now collapsible accordions (new `Section`, `ChevronIcon`, `.grid[hidden]` collapse, `aria-expanded`/`aria-controls`). v2.3.1. verifier PASS. - [engineer-20260827-190753](engineer-20260827-190753.md) — Jira statusDurations+movements + chart #17 (Active tab), /api/analytics/jira-durations, seed-enriched from board_state. v2.3.0. - [engineer-20260827-185932](engineer-20260827-185932.md) — Extension Jira sync (SNOW→Jira, attach-only /api/sync/jira, custom-domain + PAT). v2.2.0. Live-verified attach-only. diff --git a/claude_artifacts/engineer-20260829-120746.md b/claude_artifacts/engineer-20260829-120746.md new file mode 100644 index 0000000..4f5e318 --- /dev/null +++ b/claude_artifacts/engineer-20260829-120746.md @@ -0,0 +1,31 @@ +# engineer — PM Insights: Alert categories + Watch list as accordions + +**Date:** 2026-08-29 · v2.3.1 · branch `feature/insights-accordions` + +## Built +- **Client** (`pages/Insights/index.tsx`): new `Section({title, count, open, onToggle, children})` + accordion — a ` + + + ); +} + function AlertCard({ g, open, onToggle, showProblem }: { g: AlertGroup; open: boolean; onToggle: () => void; showProblem?: boolean }) { const shown = showProblem ? g.tickets.filter((_, i) => i < g.problematic || open) : g.tickets; return ( diff --git a/package.json b/package.json index 1591947..d3158b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "forge", - "version": "2.3.0", + "version": "2.3.1", "description": "FORGE 2.0 — ServiceNow ticket analytics portal (RITM/SCTASK) with roles, PM insights, and a Chrome sync extension", "main": "dist/index.js", "private": true,