Skip to content

feat(devtools): structured rebuild error panel (amicode #1022) - #340

Merged
jeonghun-jj-lee merged 1 commit into
local/amicodefrom
amico/issue-1022-error-ui
Sep 12, 2026
Merged

feat(devtools): structured rebuild error panel (amicode #1022)#340
jeonghun-jj-lee merged 1 commit into
local/amicodefrom
amico/issue-1022-error-ui

Conversation

@jeonghun-jj-lee

Copy link
Copy Markdown
Contributor

Part of harmoniqs/amicode#1016 / harmoniqs/amicode#1022.

Replaces the single-span truncated-stderr error display in Developer Tools with a structured error panel that shows classified errors with fix steps.

Changes

Controller (developer-tools-controller.ts)

  • New RebuildErrorInfo type: { message, fix[], detail? }
  • rebuildError signal changed from string to RebuildErrorInfo
  • Accepts both structured (new) and flat-string (legacy) errors from the bridge
  • Timeout error now carries fix steps

Component (developer-tools.tsx)

  • RebuildStatusIndicator split into:
    • RebuildStatusBadge — inline dot + label in the heading (shows only "Failed")
    • RebuildErrorPanel — block below rebuild buttons with:
      • Error message (red, bold)
      • Numbered fix steps (<ol>)
      • Collapsible raw detail (Show/Hide toggle → monospace <pre>)

CSS (amicode.css)

  • .devtools-error-panel: tinted danger background
  • .devtools-error-fix-steps: numbered list
  • .devtools-error-detail: monospace scrollable pre block
  • All styles use existing theme variables for light/dark compat

Companion PR

The extension-side error catalog and bridge changes are in harmoniqs/amicode#1033.

Replace the single-span truncated-stderr error display in Developer
Tools with a structured error panel:

Controller (developer-tools-controller.ts):
- New RebuildErrorInfo type: { message, fix[], detail? }
- rebuildError signal changed from string to RebuildErrorInfo
- Accepts both structured (new) and flat-string (legacy) errors from
  the bridge for backward compatibility
- Timeout error now carries fix steps

Component (developer-tools.tsx):
- RebuildStatusIndicator split into RebuildStatusBadge (inline dot +
  label in heading, shows only 'Failed') and RebuildErrorPanel (block
  below rebuild buttons)
- RebuildErrorPanel renders: error message (red, bold), numbered fix
  steps (ordered list), collapsible detail (Show/Hide details toggle
  with monospace pre block)

CSS (amicode.css):
- .devtools-error-panel: tinted danger background with border
- .devtools-error-message: flexbox with status dot
- .devtools-error-fix-steps: numbered list with secondary text
- .devtools-error-detail-toggle: minimal button
- .devtools-error-detail: monospace scrollable pre block

All styles use existing theme variables (--text-danger-base,
--surface-danger-strong, --text-secondary-base) for light/dark compat.
@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 5792d361-0be2-42aa-9359-d866bac2c724


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jeonghun-jj-lee
jeonghun-jj-lee marked this pull request as ready for review September 12, 2026 16:08
@jeonghun-jj-lee
jeonghun-jj-lee merged commit 2c3da73 into local/amicode Sep 12, 2026
3 of 4 checks passed
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