{{-- Top cards --}}
@foreach ($metrics as $m)

{{ $m['label'] }}

{{ $m['value'] }}

{{ $m['sub'] }}
@endforeach

{{ __('Faults') }}

{{ __('Alerts go to :email.', ['email' => $alertEmail ?: __('nobody — set ERROR_ALERT_EMAIL')]) }}

@foreach (['open' => __('Open'), 'resolved' => __('Resolved'), 'all' => __('All')] as $key => $label) @endforeach
{{-- Everything the list shows, every page, as one file for a developer or Claude. --}} {{ __('Export for Claude') }}
@forelse ($errors as $error) @empty @endforelse
{{ __('Reference') }} {{ __('What broke') }} {{ __('Where') }} {{ __('Who') }} {{ __('Times') }} {{ __('Last seen') }} {{ __('Actions') }}
@if ($error->isResolved()) {{ __('Resolved') }} @elseif ($error->severity() === 'danger') {{ __('Frequent') }} @elseif ($error->severity() === 'warning') {{ __('Recurring') }} @else {{ __('New') }} @endif

{{ $error->shortClass() }}

{{ \Illuminate\Support\Str::limit($error->message, 150) }}

{{ \Illuminate\Support\Str::limit($error->url ?? '—', 60) }}

{{ \Illuminate\Support\Str::limit($error->location(), 60) }}

{{ $error->user_name ?? ($error->source === 'console' ? __('Background task') : __('Not signed in')) }} @if ($error->team_name) {{ $error->team_name }} @endif {{ number_format($error->occurrences) }} {{ $error->last_seen_at?->timezone($displayTimezone)->format('j M, H:i') ?? '—' }}
{{ __('Details') }} @if ($error->isResolved()) {{ __('Reopen') }} @endif
@if ($errors->hasPages())
{{ $errors->links() }}
@endif
{{-- One fault, in full --}} {{ $viewing?->reference ?? __('Fault') }} · {{ $viewing?->shortClass() }} @if ($viewing)

{{ $viewing->message }}

{{ $viewing->location() }}

@php $facts = [ __('Page') => $viewing->url ?: '—', __('Method') => $viewing->method ?: ($viewing->source === 'console' ? __('Command line') : '—'), __('Route') => $viewing->route_name ?: '—', __('Person') => $viewing->user_name ?: __('Not signed in'), __('Workspace') => $viewing->team_name ?: '—', __('IP address') => $viewing->ip ?: '—', __('Times seen') => number_format($viewing->occurrences), __('First seen') => $viewing->first_seen_at?->timezone($displayTimezone)->format('D j M Y, H:i') ?? '—', __('Last seen') => $viewing->last_seen_at?->timezone($displayTimezone)->format('D j M Y, H:i') ?? '—', __('Last alerted') => $viewing->notified_at?->timezone($displayTimezone)->format('D j M Y, H:i') ?? __('Never'), ]; @endphp @foreach ($facts as $label => $value)
{{ $label }}
{{ $value }}
@endforeach
@if ($viewing->user_agent)

{{ __('Browser') }}

{{ $viewing->user_agent }}

@endif @if (! empty($viewing->context['chain'] ?? []))

{{ __('Underlying cause') }}

    @foreach ($viewing->context['chain'] as $link)
  • {{ $link }}
  • @endforeach
@endif @if (! empty($viewing->context['input'] ?? []))

{{ __('What was being submitted') }}

@foreach ($viewing->context['input'] as $key => $value) @endforeach
{{ $key }} {{ $value }}
@endif @if ($viewing->trace)
{{ __('Stack trace') }}
{{ $viewing->trace }}
@endif @if ($viewing->isResolved())

{{ __('Resolved by :who on :when', [ 'who' => $viewing->resolver?->name ?? __('someone'), 'when' => $viewing->resolved_at?->timezone($displayTimezone)->format('j M Y'), ]) }}

@if ($viewing->resolution_note)

{{ $viewing->resolution_note }}

@endif
@else
@endif
@endif
{{ __('Remove') }} @if ($viewing) {{-- The same text as the download, straight to the clipboard, so one fault can go into a Claude chat without a file in between. --}}
{{ __('Copy for Claude') }} {{ __('Copied') }}
{{ __('Download') }} @endif
{{ __('Close') }} @if ($viewing && ! $viewing->isResolved()) {{ __('Mark resolved') }} @endif