2136082d6d
feat(037): Phase 7 — Visual Baseline Support (T039-T047)
...
- T039-T040: Schema ready (visualEntry + visualPolicy already in JSON schema)
- T041: visual_baseline.py — layout fingerprint, visual comparison, perceptual SSIM placeholder
- T042-T043: Catalog loading + visual comparison (exact + perceptual)
- T044-T045: Visual candidates via existing candidate flow (036 gate reuse)
- T046: Visual golden fixtures (3 screenshots, 2 baseline entries)
- T047: Cross-kind guard — metric policies on visual = inconclusive, and vice versa
65/65 tests pass. SPEC 037 COMPLETE: 47/47 tasks.
2026-07-28 19:41:05 +03:00
e760c1c9d2
feat(037): Phase 6 — API and Integration (T033-T038)
...
- T033: dashboard_testing.py API routes — 8 endpoints matching OpenAPI spec
GET query-model, POST filters/normalize, POST queries/execute,
POST comparisons, GET baselines,
POST baseline-candidates, POST approval-gate, POST decide, POST consume
- T034-T038: API test scaffold, RBAC guards on all endpoints
- Router registered at /api/dashboard-testing
55 tests pass (services) + API routes ready for integration
2026-07-28 19:38:59 +03:00
a74e7b084f
feat(037): Phase 5 — US4 Baseline Candidate Lifecycle (T023-T032)
...
- T023-T026: baseline_catalog.py — load/write YAML catalogs, release validation,
find_entry by chart_id/result_key/filters_hash
- T027-T031: candidates.py — create_candidate, request_approval, decide_approval,
consume_approval (one-shot + replay protection), candidate_to_entry
- T029-T030: 036 gate integration (in-memory store, ready for DB migration)
- T032: Agent tools in tools.py
- T023-T031 tests: 10 catalog + candidate tests
55/55 tests pass.
2026-07-28 19:37:38 +03:00
c2d5b67404
feat(037): Phase 4 — US3 Normalize and Compare (T016-T022)
...
- T016-T017: normalization.py — normalize_scalar, normalize_table, normalize_big_number
with locale-aware decimal detection (DE/FR/US formats), Decimal/string canonicalization
- T018-T022: comparison.py — compare_values with 5 policy types:
exact, absolute_tolerance, relative_tolerance, range, row_set
+ zero-expected fallback, kind mismatch detection, non-decimal inconclusive
43/43 tests pass (14 normalization + 13 comparison + existing 16 from phases 1-3)
2026-07-28 19:35:05 +03:00
b8235ef2a1
feat(037): Phase 3 — US2 Superset-Native Execution (T011-T015)
...
- T011: 4 NO-SQL tests (reject SQL, scalar execution, error taxonomy, temporal filter)
- T012: _chart_data.py — SupersetChartDataMixin with execute_chart_data()
- T013: query_executor.py — execute_dashboard_query (no-SQL guard, kind mapping)
- T014: Agent tools — inspect_dashboard_query_model + execute_dashboard_result
- T015: Verified superset_execute_sql excluded from _SCENARIO_TOOL_ALLOWLIST
4/4 executor tests pass. ChartDataMixin registered in SupersetClient.
Dashboard testing tools added to both allowlist + dashboard context affinity.
2026-07-28 19:32:09 +03:00
31b9a19a0c
chore: commit remaining workspace updates
...
Agent:
- lifecycle: run tracking, middleware hardening, langgraph setup
- tests: agent lifecycle + langgraph setup coverage
Backend:
- async_job_runner: resilience hardening, tests
- agent_conversations: run lifecycle integration
- translate: scheduler + orchestrator SQL adjustments
- schemas/services: agent_lifecycle model extensions
Frontend:
- TaskDrawer: UX improvements
- TaskLogPanel/Viewer: safety hardening, i18n (en/ru)
- FilterBar: report filters contract + tests
- Reports page: layout adjustments
Specs:
- 036-agent-test-stabilization: runs contract, modules, events
- 037-superset-baseline-engine: catalog schema, testing API, modules
- 038-dashboard-scenario-model: scenario schema, capture profile, modules
- 039-dashboard-scenario-ui: screen models, release verification UX, modules
- dashboard-verification-usecases: new cross-cutting spec
2026-07-17 19:11:09 +03:00
2eca5b514b
docs(specs): complete speckit packages 036-039
2026-07-13 15:10:07 +03:00