Repository navigation
Add Pipeline Console dashboard (scripts/dashboard_server.py) - #137
Merged
Merged
Conversation
Three-page operator console on port 8766, tracer bullet for the live observability stack (dsa110#48-dsa110#62): - / (telescope): live sky map (client-side LST meridian, Dec strip, A-team/VLA-cal/Sun + flux-limited catalog overlay), antenna liveness from DSA110_ANT_STATUS_JSON with bandpass-table fallback, geographic array scatter from antpos CSV (x/y, east/north, or lat/lon), data-age on every live element. - /pipeline: per-date stage coverage matrix (ingest->photometry), checkpoint/quarantine and QA-gate visibility, artifact viewer (traversal-guarded), token-gated control: batch_pipeline launch (dry-run default), clear-quarantine, job registry with log tail/kill. Fail-closed when DSA110_DASH_TOKEN is unset; no shell passthrough. - /science: eta-ranked variability table using canonical photometry.metrics formulas, per-source lightcurves with error bars, epoch-mosaic gallery with QA badges and photometry summaries. scripts/run_dashboard.sh: H17 launcher (casa6 python, persisted 0600 token, background/foreground). 20 tests in tests/test_dashboard_server.py; design review + live screenshots in outputs/dashboard-review-2026-07-15/.
- /api/dates: validate the 10-char date prefix in scan_ms/scan_cal so verify_* cal tables no longer create phantom dates - /api/sky: include SQL views in catalog sniffing — the VLA calibrator DB exposes per-band flux as the vla_20cm VIEW (236 sources >=2 Jy) - /api/antennas: sniff Excel-export headers in antpos CSVs (title rows, leading blank column, "Station Number") and point run_dashboard.sh at DSA110_Station_Coordinates.csv; preload casatools at module init so a pandas-first request order can't break the caltable import (CXXABI conflict between system and conda libstdc++) - /api/variability: accept production forced-phot schemas (dsa_peak_jyb/dsa_peak_err_jyb + source_id, measured_flux_jy + source_name) alongside flux_jy; guard non-finite errors - perf: thumbnail renders and RMS stats on a stride subsample (peak stays full-res); cold thumb 40s -> 1.2s on a 122 MB mosaic Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HuhqkSYeQaF8ar8ZDUwi6i
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
scripts/dashboard_server.py+run_dashboard.sh) for telescope / pipeline / science views — tracer bullet for issues Tracer-bullet: routed live observability server (one artifact wired end-to-end) #51–Activate mutating mosaic-on-demand routes (POST /create, DELETE /{name}) #61.outputs/dashboard-review-2026-07-15/.qa_server.pyormonitor_server.py; mutating routes fail closed withoutDSA110_DASH_TOKEN.Test plan
PYTHONPATH=. pytest tests/test_dashboard_server.py -q→ 25 passedruff check/ruff format --checkclean on dashboard files:8766diagnostics:has_positions=True,/api/skyn_sources=257,/api/datecold ~0.85s / warm ~0.45s, variabilitycanonical_metrics=trueMade with Cursor