You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: track model execution status with failure icon in explorer (#54)
* feat: track model execution status and show failure icon in explorer
Implement model-level execution status tracking (NOT_STARTED, RUNNING,
SUCCESS, FAILED) at DAG node level with visual indicators in the file
explorer. Status is tracked per individual DAG node, ensuring accurate
status for each model even when downstream dependencies fail.
Backend changes:
- Add RunStatus enum and 4 new fields to ConfigModels (run_status,
failure_reason, last_run_at, run_duration)
- Migration 0003_add_model_run_status
- Update file_explorer.load_models to return status fields
- Add _update_model_status to DAG executor — called before execution
(RUNNING), after success (SUCCESS), and on exception (FAILED with
reason)
- Update execute/views.py to return 400 on DAG execution failures
- Fix clear_cache decorator to re-raise exceptions instead of
swallowing them silently
Frontend changes:
- Add getModelRunStatus helper to render colored dot badges next to
model names in the explorer tree
- Running: blue, Success: green, Failed: red
- Show Popover on hover over failed status with full error message
and last run timestamp
- Trigger explorer refresh via setRefreshModels after runTransformation
succeeds or fails
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address PR review feedback on model run status tracking
- Drop optional ConfigModels import; it's always present in the OSS build
- Track run_duration via time.monotonic() and persist on SUCCESS/FAILED
- Skip RUNNING update for non-executable parent nodes so they don't get
stuck with a permanent blue badge in selective execution
- Raise explicit errors when session/project_id missing instead of silent no-op
- Stop returning raw exception strings from execute_run_command (CodeQL)
- Refresh explorer tree on context-menu run failure so FAILED badge appears
- Move getModelRunStatus to module scope and use antd theme tokens instead
of hardcoded hex colors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: satisfy prettier multiline formatting for status dot style spans
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat: increase project_schema max_length from 20 to 1024
Requested by @tahierhussain in PR #55 review — the project_schema
field was too short for schemas with long names or multiple schemas.
Bundled into migration 0003 alongside the model run-status fields
since both target the core app and depend on 0002_seed_data.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address Greptile P1s — CLI-safe timezone import + DB connection leak
P1: `from django.utils import timezone` at module level crashes when
visitran is used as a standalone CLI without Django installed.
Wrapped in try/except with a minimal fallback that provides
timezone.now() via stdlib datetime.
P1: close_db_connection() was only called in the success path of
execute_run_command. On exception the connection leaked. Moved
to a finally block so it always runs regardless of outcome.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments