Skip to content

fix(tessl): emit per-step dashboard progress during Modal scans - #119

Merged
neomatrix369 merged 3 commits into
mainfrom
docs/slice-42-a14-quality-tabs-plan
Aug 25, 2026
Merged

fix(tessl): emit per-step dashboard progress during Modal scans#119
neomatrix369 merged 3 commits into
mainfrom
docs/slice-42-a14-quality-tabs-plan

Conversation

@neomatrix369

@neomatrix369 neomatrix369 commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • fix(tessl): Tessl rows no longer bulk-insert as running at group start; Lint and Review (Quality) persist step-by-step via on_scanner_progress; dashboard adds pills for blocked, stale, interrupted, timed_out
  • docs(changelog): merge duplicate ### Fixed heading under [Unreleased]
  • docs(plan): blend quality tabs into slice 42 as A14–A15 (plan-only delta; supersedes standalone slice 54 stub — implementation is a follow-up on slice/42-quality-score-tabs)

Test Results

Stack Result Coverage
Python (pytest) 439 passed 95.6% line / branch 95% gate
Dashboard (prototypes/dc-dashboard) all passed 98.18% statements
CLI (cli/) all passed 98.14% statements

Quality Gates

  • ./scripts/quality-gates.sh — passed (ruff, mypy, xenon, vulture, bandit, gitleaks, markdownlint, shellcheck)
  • Pre-push coverage audit — passed

Test plan

  • modal deploy sandbox/scan_app.py
  • tripwire scan <skill-path> --force and confirm Tessl rows appear sequentially (only active step shows Running)
  • Dashboard shows blocked pill for Eval when Scenario Generation has not populated evals/

Checklist

  • ./scripts/quality-gates.sh passes locally
  • New tests added or updated (or change is docs-only)
  • Docs updated where applicable
  • No secrets or credentials committed

Made with Cursor

Complexity

Automatically refreshed by CI for product-code changes.

Scope Tool Result
Python (sandbox/) Radon highest CC 24 (rank D), 390 blocks
CLI (cli/) ESLint 0 function(s) above CC 10
Functions above the JavaScript threshold
  • CLI: no functions exceed cyclomatic complexity 10.

Supersedes the standalone slice 54 stub so dashboard ≥80 vs Rest triage
stays one Wave J contract with GWT-42.11–42.16 and updated trackers.
Bulk running placeholders made all five Tessl rows look frozen for the whole
group run even while Lint and Review were completing. Tessl rows now update
step-by-step via on_scanner_progress; dashboard labels blocked/stale states.
@github-actions

Copy link
Copy Markdown

code-review-graph review

Overall risk: 0.55 (MEDIUM) — 3 changed function(s)/class(es), 9 affected flow(s), 1 test gap(s)

Risk-scored changes

Risk Level Symbol Location Tested
0.55 medium sandbox/scan_app.py::_scan_item_inner sandbox/scan_app.py:186 yes
0.55 medium sandbox/scanners.py::run_tessl sandbox/scanners.py:1770 yes
0.30 low sandbox/scan_app.py::_on_scanner_start sandbox/scan_app.py:212 no

Affected execution flows

  • loadData — criticality 0.47, 21 node(s) across 2 file(s)
  • scan_item — criticality 0.42, 77 node(s) across 2 file(s)
  • _ignore — criticality 0.36, 2 node(s) across 1 file(s)
  • findingCountParts — criticality 0.29, 4 node(s) across 1 file(s)
  • formatFindingsHeadingLabel — criticality 0.29, 4 node(s) across 1 file(s)
  • ...and 4 more affected flow(s)

Test gaps

  • sandbox/scan_app.py::_on_scanner_start (sandbox/scan_app.py:212)

Token savings: this graph-backed report used ~75,829 fewer tokens (~89%) than reading every changed file in full (estimated, chars/4 approximation).


Powered by code-review-graph — local-first analysis; no code leaves the CI runner.

@neomatrix369 neomatrix369 changed the title fix(tessl): emit per-step dashboard progress during Modal scans fix(tessl): per-step scan progress + slice 42 quality tabs (A14–A15) Aug 25, 2026
@neomatrix369 neomatrix369 changed the title fix(tessl): per-step scan progress + slice 42 quality tabs (A14–A15) fix(tessl): emit per-step dashboard progress during Modal scans Aug 25, 2026
@neomatrix369
neomatrix369 merged commit 651173e into main Aug 25, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant