NS8 slice: Make diagnostics and navigation production-ready #52

Closed
opened 2026-06-21 09:12:13 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: Diagnostics from LSPs, linters, build/test/check jobs, and internal errors share one provider-aware panel and navigation grammar.

AUTHORITY: Parent #43; KEYMAP.md Coding tools and language operations; req: coding/006-007, ui/002, testing/001-004.

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes; parent #43 may be commented/checklisted.
  • Handoff state: committed clean, tracker commented/closed.

PARENT: #43 via explicit issue link and parent checklist.

SCOPE: Diagnostic model/source/severity, diagnostics panel, status summaries, next/previous diagnostic, filter by source/provider, diagnostic range selection, stale diagnostic invalidation. Reuse src/diagnostics.zig and panel primitives.

BOUNDARIES: Do not implement tool spawning here except fake/fixture providers or minimal integration needed to prove the diagnostic path. Do not hide source conflicts.

ACCEPTANCE:

  • Space d shows diagnostics with file, range, severity, message, and provider/source.
  • Space d n/p and Space g e navigate diagnostics and restore editor focus.
  • Diagnostics can be filtered by provider/source and selected as an object range (s d).
  • Diagnostics from multiple providers are preserved, not flattened into ambiguous messages.
  • Stale diagnostics are cleared or marked when files change/provider versions advance.
  • Empty diagnostics, duplicate ranges, huge messages, deleted files, and invalid ranges are handled safely.

VERIFICATION:

  • zig build test
  • Headless tests with two diagnostic providers, stale document versions, filters, next/previous navigation, invalid ranges, and diagnostic selection.
  • zig build v1-smoke

BLOCKERS: none.

OBJECTIVE: Diagnostics from LSPs, linters, build/test/check jobs, and internal errors share one provider-aware panel and navigation grammar. AUTHORITY: Parent #43; KEYMAP.md `Coding tools and language operations`; req: coding/006-007, ui/002, testing/001-004. AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes; parent #43 may be commented/checklisted. - Handoff state: committed clean, tracker commented/closed. PARENT: #43 via explicit issue link and parent checklist. SCOPE: Diagnostic model/source/severity, diagnostics panel, status summaries, next/previous diagnostic, filter by source/provider, diagnostic range selection, stale diagnostic invalidation. Reuse `src/diagnostics.zig` and panel primitives. BOUNDARIES: Do not implement tool spawning here except fake/fixture providers or minimal integration needed to prove the diagnostic path. Do not hide source conflicts. ACCEPTANCE: - `Space d` shows diagnostics with file, range, severity, message, and provider/source. - `Space d n/p` and `Space g e` navigate diagnostics and restore editor focus. - Diagnostics can be filtered by provider/source and selected as an object range (`s d`). - Diagnostics from multiple providers are preserved, not flattened into ambiguous messages. - Stale diagnostics are cleared or marked when files change/provider versions advance. - Empty diagnostics, duplicate ranges, huge messages, deleted files, and invalid ranges are handled safely. VERIFICATION: - `zig build test` - Headless tests with two diagnostic providers, stale document versions, filters, next/previous navigation, invalid ranges, and diagnostic selection. - `zig build v1-smoke` BLOCKERS: none.
tmk241 added the sliceready-for-agentgoal labels 2026-06-21 09:12:13 +00:00
Author
Owner

Implemented and committed #52 as 5224fe4 Add provider-aware diagnostics rail.

What changed:

  • Added provider/version/severity diagnostic rows, stale/fresh panel rendering, and safe invalid/empty row handling.
  • Added Space d diagnostics rail with open, next, previous, and provider-filter actions on the shared panel model.
  • Added g e next-diagnostic jump and s d diagnostic object selection.
  • Preserved duplicate ranges from multiple providers and source identity in panel rows.
  • Marked diagnostics stale after document mutations so old rows cannot silently drive edits/navigation.

Verification:

  • zig build test
  • zig build
  • zig build v1-smoke
  • zig build run -- --help
  • zig build run -- src/main.zig
  • redgate list /opt/repositories/mim/REQUIREMENTS.md
  • redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md

Tests added:

  • regular diagnostics panel provider preservation, filtering, and next navigation
  • regular g e diagnostic jump
  • regular s d diagnostic object selection
  • adversarial empty, stale, duplicate-provider, and invalid-range diagnostics
  • diagnostic row sanitize/parse model coverage
Implemented and committed #52 as `5224fe4 Add provider-aware diagnostics rail`. What changed: - Added provider/version/severity diagnostic rows, stale/fresh panel rendering, and safe invalid/empty row handling. - Added `Space d` diagnostics rail with open, next, previous, and provider-filter actions on the shared panel model. - Added `g e` next-diagnostic jump and `s d` diagnostic object selection. - Preserved duplicate ranges from multiple providers and source identity in panel rows. - Marked diagnostics stale after document mutations so old rows cannot silently drive edits/navigation. Verification: - `zig build test` - `zig build` - `zig build v1-smoke` - `zig build run -- --help` - `zig build run -- src/main.zig` - `redgate list /opt/repositories/mim/REQUIREMENTS.md` - `redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` Tests added: - regular diagnostics panel provider preservation, filtering, and next navigation - regular `g e` diagnostic jump - regular `s d` diagnostic object selection - adversarial empty, stale, duplicate-provider, and invalid-range diagnostics - diagnostic row sanitize/parse model coverage
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#52