Skip to content

refactor(ui): consolidate bulk modals and sprint Primer shell#48

Merged
fathiraz merged 3 commits into
mainfrom
refactor/sprint-bulk-primer-modals
Jun 6, 2026
Merged

refactor(ui): consolidate bulk modals and sprint Primer shell#48
fathiraz merged 3 commits into
mainfrom
refactor/sprint-bulk-primer-modals

Conversation

@fathiraz

@fathiraz fathiraz commented Jun 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Introduce a shared ModalShell and route bulk/sprint dialogs through the modal factory for consistent Primer layout
  • Remove standalone bulk close/lock/open/pin/unpin modal components in favor of consolidated bulk action flows
  • Refresh sprint modal, settings, progress, and table widget UI to align with GitHub-native Primer CSS patterns
  • Extract sprint settings helpers with unit tests for field configuration logic

Changes

Modal infrastructure (src/ui/modal-shell.tsx, src/lib/modal-factory.tsx, src/lib/primer-css-helper.ts)

  • Added reusable modal shell (header slot, flat panel styling, motion tokens)
  • Updated modal factory to mount dialogs with shared shell semantics
  • Extended Primer CSS helper utilities used by sprint and bulk surfaces

Bulk actions (src/features/bulk-actions-*.tsx, deleted bulk-*-modal.tsx)

  • Wired bulk bar and modals to consolidated patterns; removed per-action modal files
  • Adjusted bulk delete modal and edit flyout/relationship pane for the new shell
  • Updated bulk edit flyout tests for the refactor

Sprint UI (src/features/sprint-*.tsx, src/features/sprint-settings-utils.ts)

  • Reworked sprint panel modal layout and settings view structure
  • Updated sprint injections, progress view, and group header widget
  • Added sprint-settings-utils plus tests for settings derivation

Content script (src/entries/content.ts)

  • Adjusted content entry wiring for sprint/bulk modal mounting

Test Plan

  • pnpm typecheck passes locally
  • Bulk bar: close, lock, open, pin, and unpin actions open the expected consolidated UI (no missing modals)
  • Bulk delete modal renders and confirms destructive flow
  • Bulk edit flyout still opens, edits fields, and passes existing unit tests
  • Sprint panel opens from project view; settings, progress, and end-sprint steps navigate correctly
  • Sprint group header widget shows loading/active/no-active states and opens the sprint panel
  • Modal keyboard focus and Escape behavior remain correct (no input trapped in GitHub page)

Summary by cubic

Consolidated bulk action modals and rebuilt the sprint panel on a shared ModalShell for a consistent Primer look and correct focus/Escape behavior. Restores close-reason selection, streamlines sprint widgets, and removes duplicate components.

  • Refactors

    • Added ModalShell and updated the modal factory to mount dialogs with shared Primer styling, motion, and Escape isolation.
    • Removed per-action bulk modals (BulkCloseModal, BulkLockModal, BulkOpenModal, BulkPinModal, BulkUnpinModal); routed remaining flows through the factory and ported close/delete to ModalShell.
    • Reworked sprint panel, settings, progress, and table widget to Primer patterns; added ProgressBar and updated header widget styling.
    • Extracted sprint-settings-utils with tests; extended primer-css-helper with chip/button presets; injected sprint UI via light DOM using ctx.
  • Bug Fixes

    • Restored bulk close reason radio and set mark-menu “Close” to COMPLETED per ADR; re-check selection after async PAT validation before opening the close modal.
    • Isolated modal Escape from global shortcuts and added ModalShell tests to verify.
    • Pruned detached sprint header widgets and stabilized tooltip mounting.
    • Clarified bulk edit empty states and relationship pane messaging.

Written for commit 63bbd43. Summary will update on new commits.

Review in cubic

Replace per-action bulk modal components with shared modal shell and
factory patterns; refresh sprint modal/settings to match GitHub-native
Primer CSS and extract sprint settings helpers with tests.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor auto review

No actionable issues found on changed lines.

No actionable issues found.

Generated automatically when this PR was submitted using Cursor CLI with --model auto.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 22 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/features/bulk-actions-bar.tsx
Comment thread src/features/sprint-injections.tsx
Comment thread src/ui/modal-shell.tsx
…cape

Restore bulk close reason selection via ModalShell, prune disconnected
sprint header widgets, and isolate modal Escape from global shortcuts.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 6 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/features/bulk-actions-bar.tsx
Comment thread src/features/bulk-actions-bar.tsx
Mark menu close always uses COMPLETED per ADR/regression spec.
Re-check selection after async PAT validation before opening modal.
@fathiraz fathiraz merged commit 99dd3d9 into main Jun 6, 2026
3 checks passed
@fathiraz fathiraz deleted the refactor/sprint-bulk-primer-modals branch June 6, 2026 13:52
@fathiraz

Copy link
Copy Markdown
Owner Author

/ecc-tools analyze

@ecc-tools

ecc-tools Bot commented Jun 14, 2026

Copy link
Copy Markdown

Analysis Queued

Analyzing fathiraz/refined-github-projects on pull request head 63bbd43d7d08

Analysis Pipeline
Stage Description Status
Compare Snapshot Resolving PR head/base diff before branch fallback pending
Commit History Fetching up to 200 commits (queued-mode cap) pending
File Sampling Extracting code patterns and structure pending
Pattern Detection AI analysis of conventions and workflows pending
Bundle Generation Creating skills, rules, commands, identity, and instincts pending
Pull Request Opening PR with generated files pending

Estimated time: 2-5 minutes depending on repository size.


10/10 analyses remaining this month (free tier) | ECC Tools

@ecc-tools

ecc-tools Bot commented Jun 14, 2026

Copy link
Copy Markdown

Analyzing 200 commits...

@ecc-tools

ecc-tools Bot commented Jun 14, 2026

Copy link
Copy Markdown

Analysis Complete

Generated ECC bundle from 3 commits | Confidence: 65%

View Pull Request #49

Repository Profile
Attribute Value
Language TypeScript
Framework Not detected
Commit Convention conventional
Test Directory colocated
Changed Files (23)
Metric Value
Files changed 23
Additions 1281
Deletions 1413

Top hotspots

Path Status +/-
src/features/sprint-settings-view.tsx modified +366 / -350
src/features/sprint-modal.tsx modified +243 / -274
src/features/bulk-delete-modal.tsx modified +93 / -116
src/features/bulk-close-modal.tsx modified +87 / -119
src/features/bulk-lock-modal.tsx removed +0 / -167

Top directories

Directory Files Total changes
src/features 17 2388
src/lib 2 124
src/ui 1 82
src/ui/__tests__ 1 79
src/features/__tests__ 1 14
Analysis Depth Readiness (commit-history, 7%)

ECC Tools uses this to decide whether recommendations should stay at commit-history/setup guidance or expand into CI, security, harness, reference-set, AI-routing, and team backlog work.

Area Status Evidence / Next Step
Commit history Partial 3 commits sampled
CI/CD signals Missing Add workflow files or CI troubleshooting evidence so ECC Tools can reason about pipeline setup.
Security evidence Missing Add AgentShield, audit, SARIF, SBOM, or security review evidence so recommendations can cover security posture.
Harness configuration Missing Add Claude, Codex, OpenCode, Zed, dmux, MCP, plugin, or cross-harness config evidence for harness-agnostic recommendations.
Reference/eval evidence Missing Add fixtures, golden traces, reference sets, or evaluator benchmarks so deeper recommendations have regression evidence.
AI routing and cost controls Missing Add model-routing, budget, usage, or cost-control files before relying on AI-heavy automation recommendations.
Team handoff and project tracking Missing Add roadmap, runbook, project, Linear, or follow-up tracking docs so generated work can land in a team queue.
Reference Set Readiness (0/7, 0%)
Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.
Likely Future Issues (1)
Severity Signal Why it may show up
MEDIUM User-facing UI changes may ship without browser coverage 2 user-facing UI paths changed; 0 browser or e2e coverage files changed
  • User-facing UI changes may ship without browser coverage: The PR changes components, pages, or other user-facing UI files without touching any obvious browser or end-to-end coverage.
Suggested Follow-up Work (1)
Type Suggested title Targets
PR test: add browser coverage for src/ui/__tests__/modal-shell.test.tsx + src/ui/modal-shell.tsx src/ui/__tests__/modal-shell.test.tsx, src/ui/modal-shell.tsx
  • test: add browser coverage for src/ui/tests/modal-shell.test.tsx + src/ui/modal-shell.tsx: Backfill browser coverage before another user-facing UI change lands on the touched surface.

Copy-ready bodies

test: add browser coverage for src/ui/tests/modal-shell.test.tsx + src/ui/modal-shell.tsx

## Summary
- Add browser or end-to-end coverage for the recently changed user-facing surface.

## Why
- Backfill browser coverage before another user-facing UI change lands on the touched surface.

## Touched paths
- `src/ui/__tests__/modal-shell.test.tsx`
- `src/ui/modal-shell.tsx`

## Validation
- Add or extend browser / e2e coverage for the changed component, page, or flow.
- Exercise the visible user journey that depends on the touched UI surface.
Review Activity (3 reviews, 5 inline comments, 0 unresolved threads)
Signal Count
Approvals 0
Change requests 0
Comment-only reviews 2
Dismissed reviews 0
Pending reviews 0
Review threads 5
Unresolved threads 0
Outdated threads 1
Latest review Commented
Latest submitted at 2026-06-06T13:16:34Z

Latest reviewer states

Reviewer State Submitted
@cubic-dev-ai[bot] Commented 2026-06-06T13:16:34Z
@github-actions[bot] Commented 2026-06-06T08:20:58Z
Review Follow-up Signals (2)
Severity Signal Evidence
MEDIUM Re-check outdated review discussions 1 outdated review thread(s) may refer to older code
MEDIUM Get an explicit approval No approving review is recorded for this PR

Recommended next actions

  • Confirm the latest pushed code resolves stale review feedback before relying on old comments.
  • Ask for an approval after requested changes and unresolved discussions are addressed.
Detected Workflows (2)
Workflow Description
modal-shell-refactor-or-bugfix Refactoring or fixing modal-related UI components by updating shared modal shells, related modal components, and their tests.
sprint-ui-enhancement-or-bugfix Making enhancements or bugfixes to sprint-related UI components and utilities, often in conjunction with modal changes.
Generated Instincts (25)
Domain Count
git 3
code-style 9
testing 9
workflow 4

After merging, import with:

/instinct-import .claude/homunculus/instincts/inherited/refined-github-projects-instincts.yaml

Files

  • .claude/ecc-tools.json
  • .claude/skills/refined-github-projects/SKILL.md
  • .agents/skills/refined-github-projects/SKILL.md
  • .agents/skills/refined-github-projects/agents/openai.yaml
  • .claude/identity.json
  • .codex/config.toml
  • .codex/AGENTS.md
  • .codex/agents/explorer.toml
  • .codex/agents/reviewer.toml
  • .codex/agents/docs-researcher.toml
  • .claude/homunculus/instincts/inherited/refined-github-projects-instincts.yaml
  • .claude/commands/modal-shell-refactor-or-bugfix.md
  • .claude/commands/sprint-ui-enhancement-or-bugfix.md

ECC Tools | Everything Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant