Collapse equal pair cells, hide display columns by default, fold field filters, and keep failed sheets first so diffs stand out.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show localized phases with progress bars on the runs tab and result board, and make cancel/status easier to act on during long compares.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show pending check items instead of a fake 100% pass, publish sheet results as each finishes, and use keyset chunk loads with rows-loaded progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
Run compares in the background with progress, persist fails first, and store success as sampled key+row_id hydrated from source so million-row sheets no longer block the API.
Co-authored-by: Cursor <cursoragent@cursor.com>
Create tasks via pick-NE or import log; re-import appends batches like collects, without inventory NE or SSH.
Co-authored-by: Cursor <cursoragent@cursor.com>
RR vpnv6 wrap lines with next-hop+metrics were collapsing ECMP legs; store raw_line_count/declared_total before DB truncate so collect stats stay accurate.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the horizontal scrollbar in the viewport, sticky enable/title columns, and show selected/total (and unbound) counts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show collecting over paused schedule, enqueue sync so collect_running flips immediately, and expose export on metric sheets with a card layout for Commands.
Co-authored-by: Cursor <cursoragent@cursor.com>
Decouple heavy CLI parse via ParsePool, keep ECMP/multi-RD keys, and expose per-command CLI lines vs DB rows with raw.txt export.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add an Aux column for each monitor item. Drop ip_route/ipv6_route as summary enrich aux so FIB stays a standalone collect profile. Export defaults to primary commands only.
Co-authored-by: Cursor <cursoragent@cursor.com>
Skip Dest/Network headers when Total routes is 0; capture direction from match groups; expose workbook compare/data/sheet stats and prefer batch aliases in compare/cutover pickers.
Co-authored-by: Cursor <cursoragent@cursor.com>
Filter peers by AFI (and VRF pairs for CE), support zip/pair bindings in discover UI, and tag FIB rows with address_families.
Co-authored-by: Cursor <cursoragent@cursor.com>
Open a blocking discover dialog for VRF selection, reorder profile columns with scroll/hints, and reuse shared collect cache between light/heavy monitor items.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remap legacy if_intf items, skip duplicate CLI+metric work, hide aux command duplicates in the workbook, use profile titles for sheet tabs, sticky table headers, and let scheduled tasks trigger collect-now when idle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load batch summaries without metric payloads, fetch sheet rows on demand, and show collect commands with a raw-log viewer.
Co-authored-by: Cursor <cursoragent@cursor.com>
Mapped interfaces are the expect set and must appear after cutover; unmapped same-name down/up is anomaly. Success presets no longer treat bare unchanged as green.
Co-authored-by: Cursor <cursoragent@cursor.com>
Derive fail from missing+mismatch only, recompute pass rate accordingly, and put check-item count on one row aligned with fail/success/%.
Co-authored-by: Cursor <cursoragent@cursor.com>
Treat missing+mismatch as fail, match as success, and added as a special filter; show three right-aligned sheet badges.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fill started_at from batch lists, show compact times, and right-align color-only -/+~/ = counts per sheet.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the batch-run label, resolve NE from job tasks, and slim left-nav badges to pass or non-zero fail counts only.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep device and collect time beside export actions; drop the run verdict row and show miss/extra/mismatch/match badges on each left-nav check item.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enrich run detail with before/after NE labels, and keep present-side values readable for added/removed rows instead of striking them out.
Co-authored-by: Cursor <cursoragent@cursor.com>
Make field purpose visible in the sticky table header so reviewers can tell identity vs check vs context at a glance.
Co-authored-by: Cursor <cursoragent@cursor.com>
Key stays single-value; other fields always render a paired 前/后 cell so cutover diffs are readable at a glance.
Co-authored-by: Cursor <cursoragent@cursor.com>