9b5eac3ba4
ErrorOverview was a one-line `Name: message` stub; Ink v7.0.4 renders a full ERROR overview. Ports it faithfully: - white-on-red ` ERROR ` label + message, dim cwd-relative file:line:column origin - a code excerpt around the throwing line (padded gutter, error line highlighted, `Line N` / `Line N, error` aria-labels) - the parsed stack (`- fn (file:line:col)`, cwd-relative, StackUtils nodeInternals filtering, unparsable-line fallback, fs.existsSync guard) Adds code-excerpt@4.0.0 + stack-utils@2.0.6 (the versions Ink uses). The error boundary now keeps the raw thrown value for display (Ink stores the raw value; ErrorOverview renders a stack only when one exists) -- so a non-Error throw no longer shows a misleading synthetic framework stack. The exit/reject path still receives a wrapped Error (semantics unchanged). The unparsable-stack fallback emits a literal backslash-t to match Ink's JSX. Showing String(value) for a non-Error message (vs Ink's blank) is a documented additive divergence (ink-divergences.md). Adds 4 error-overview tests. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>