diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-23 14:54:27 +0200 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-23 14:54:27 +0200 |
| commit | caa3bcd8b7f49aec834d6f3d0ed05e7d56bcf393 (patch) | |
| tree | 5049c9a7bf92a92a304f77747b7a9ee01e2ae809 /api/debug/error.php | |
| parent | 940bf43ba5cbed2d0a9afa4c70ffbc3df5cb3f90 (diff) | |
feat(newos4-debug): dashboard triage + thread panels, mobile layout, gate error.php
- Triage card reads admin/docs/newos4-triage-latest.json defensively: missing/unreadable
renders as a warning pill, never as zeros (a zero here reads as "nothing is wrong").
Freshness pill goes stale past 26h so a dead collector cannot look healthy.
- Maintenance thread merges in-app `feedback` reports (kind=maintenance) with agent
replies from data/maintenance/replies.json into one chronological view.
- Mobile: <=640px single column, smaller type, .table-scroll wrappers, Type column
hidden, max-width clamp. verify-mobile.py: 360/390px, light+dark -> ALL VIEWPORTS OK,
page width == viewport (no horizontal overflow).
- "Last ingest" now uses max(ingested_at) instead of end($errors): after the prune the
array is not chronological and the header contradicted the triage card by 3 days.
- Auto-refresh only fires while the tab is visible (was an unconditional 30s reload).
- Fixed triage checks parsing: digest ships {exit, findings[]}, not a list of strings —
the first render fataled on stripos(array). Verified 15,167 B render, 0 PHP errors.
nginx (not in git): error.php added to the admin-gated read regex alongside
stats|errors|clusters|dashboard|agent-replies — error.php?hash= was still serving stacks
to anonymous callers. All six now answer 302 without a session.
Diffstat (limited to 'api/debug/error.php')
0 files changed, 0 insertions, 0 deletions