Spaces:
Paused
Paused
|
Download docs/execution-integrity-audit.md from whassan/SensorflowStudio: direct link, hf CLI and curl.
- Browser
- Download file 7.6 kB
-
https://huggingface.co/spaces/whassan/SensorflowStudio/resolve/main/docs/execution-integrity-audit.md
- Command line
-
hf download hf://spaces/whassan/SensorflowStudio/docs/execution-integrity-audit.md
-
curl -L -o execution-integrity-audit.md https://huggingface.co/spaces/whassan/SensorflowStudio/resolve/main/docs/execution-integrity-audit.md
7.6 kB
| # Sensorflow Studio — Execution Integrity & Observability Audit | |
| **Date:** 2026-08-14 | |
| **Scope:** Legacy Studio (`static/`, `app_backend.py`, `sensorflow/`, `train.py`, `infer.py`, `autograder.py`) | |
| **Mirror:** `hf-space/` copies are effectively identical for these surfaces — findings apply to both. | |
| **Prime directive:** A UI state is NOT evidence. PASS / Done / 100% / Found / `success:true` / toasts / YAML alone / file existence alone are not proof of execution. | |
| --- | |
| ## Stage integrity table | |
| | COMPONENT | CURRENT BEHAVIOR | ACTUAL EXECUTION? | EVIDENCE | RISK | REQUIRED FIX | | |
| |-----------|------------------|-------------------|----------|------|--------------| | |
| | 1 Dataset Configuration / Load & Preprocess | Save config writes JSON; Pre-Check = script file existence; “Load Catalog Metadata” returns hardcoded KPIs (`ingestion_pct: "100.0%"`) after `sleep(0.3)`; Validate & Browse is real disk scan. Toast “saved & verified” without path checks. | **Partial** — browse real; catalog preprocess is not load | `app_backend.py` precheck/details/preprocess; `static/app.js` save/browse handlers | **High** | Real Load & Preprocess with discovery counts + ledger; never show 100% Loaded from catalog | | |
| | 2 3D Ingest & Fusion | Calls fusion engine; vendor adapters default `demo_stub`; local path can be real. UI PASS when `manifest.json` exists. | **Yes local**; **stub vendors** | ingest API + adapters; gate badges | **Medium** | PASS/DONE only with provenance; surface `demo_stub` + execution_id | | |
| | 3 3D Perception / Auto-label (SAM) | Frontend hardcodes `no_sam: true`. Automator falls back to GT/synthetic masks; still `status: ok` → PASS. | **No real SAM** on Studio UI path | `static/app.js` perception handler; `perception_automator.py` | **Critical** | Record model/checkpoint/counts; NOT_EXECUTED if model not run; refuse fake SUCCESS | | |
| | 4 Temporal Tracking | Real Kalman+Hungarian over proposals. | **Yes** (inputs may be fake) | track API | **Medium** | Propagate contamination; ledger entry | | |
| | 5 Quality Gate | Real metric math vs sequence GT; contaminated proposals inflate pass. | **Yes math**; honesty depends on inputs | quality gate API | **High** | Fail closed on stub/GT-fallback; evidence card | | |
| | 6 Launch Gate | Threshold check on metric card. | **Yes** (inherited) | launch gate evaluator | **Medium** | Same provenance gate | | |
| | 7 Model Setup (2D) | UI model card only; no weight verification. | **No** | model cards in `app.js` | **Low–Medium** | Verify weights exist before train/infer | | |
| | 8 Training Execution | Spawns real `train.py`. Status fabricates losses; forces progress=1.0; ignores exit_code. UI “Process finished” with no verdict. | **Partial** | train start/status; `train.py` | **Critical** | PID, command, exit_code, checkpoint hash, ledger | | |
| | 9 Auto-Labeler Inference | Runs `infer.py` with check=True. Empty source exits 0 → ok + empty images. UI always success toast. | **Partial** | infer API; `infer.py` | **High** | Counts + checkpoint + exit_code; NOT_EXECUTED/FAILED if 0 images / missing weights | | |
| | 10 Auto-Grader Quality | Real autograder when predictions exist; empty issues → “Perfect score!”. | **Yes** (heuristic) | grade API; `autograder.py` | **Medium** | Metrics only from grader output; ledger | | |
| | 11 MITL Review | Hardcoded Unsplash samples; claims HF ingest; Mock Triage Auditor. | **No** | nvidia/load; mitl/evaluate | **Critical** | Label fixtures; never SUCCEEDED for mock ingest | | |
| | 12 Model Benchmarking | `fallback_mock` hardcoded metrics with `status: ok`. | **No** (unless live card) | `/api/benchmark/compare` | **Critical** | Refuse OK without live metrics; stub = NOT_EXECUTED | | |
| | 13 Export & Deploy | May run Ultralytics export; returns path without exists(); UI “✓ complete” without `res.ok`. | **Partial** | export API | **High** | Verify artifact; ledger | | |
| | 14 MCP Settings | Real R/W when file exists; invented servers + “changes simulated”. | **Partial** | mcp APIs | **Medium** | Honest status; evidence stub | | |
| | 15 SSAM Safety | Hardcoded CA intersections presented as statewide FHWA dataset. | **No real lake** | ssam endpoints + catalog | **High** | Label synthetic demo; stub evidence | | |
| --- | |
| ## High-risk fake-success occurrences | |
| ### Backend (`app_backend.py`) | |
| | Location | Pattern | | |
| |----------|---------| | |
| | `/api/precheck` | Success = `train.py` / `infer.py` / `autograder.py` **file existence only** | | |
| | `/api/train/status` | Fabricates decreasing losses; forces `progress=1.0`; ignores process `returncode` | | |
| | `/api/infer/run` | Empty run still `status: ok` when script exits 0 with 0 images | | |
| | `/api/export` | Returns export path without verifying file exists | | |
| | `/api/nvidia/load` | Hardcoded samples; claims HF ingest success | | |
| | MITL evaluate | Mock Triage Auditor returned as success-shaped response | | |
| | `/api/benchmark/compare` | `fallback_mock` hardcoded metrics, `status: ok` | | |
| | `DATASET_METADATA_STORE` | Hardcoded `ingestion_pct: "100.0%"` catalog KPIs | | |
| | `/api/dataset/preprocess` | `time.sleep(0.3)` + catalog echo — no disk load | | |
| | MCP get/toggle | Invented config / “changes simulated” with ok/warning | | |
| | SSAM store | Hardcoded intersections as statewide dataset | | |
| | `/api/pipeline/status` | File existence ⇒ `*_complete: true` | | |
| ### Frontend (`static/app.js`) | |
| | Location | Pattern | | |
| |----------|---------| | |
| | Gate badges | Completion stages → **PASS** from file-complete; never FAIL | | |
| | Config save | “verified successfully” without `res.ok` / path validation | | |
| | Training poll | “Process finished” with no exit_code / success check | | |
| | Infer | Always success toast (even empty / `!res.ok`) | | |
| | Grader | Empty issues → “Perfect score!” | | |
| | Export | “✓ Export complete” without `res.ok` | | |
| | Perception | **`no_sam: true` hardcoded** | | |
| ### Scripts / sensorflow | |
| | Location | Pattern | | |
| |----------|---------| | |
| | `train.py` dgx-spark | Prints remote offload; uses local device | | |
| | `infer.py` | No images → print and **exit 0** | | |
| | `perception_automator.py` | Silent SAM off; synthetic masks/LiDAR; GT class copy | | |
| | Vendor adapters | Built-in ~3-frame `demo_stub` lakes | | |
| --- | |
| ## Cross-cutting patterns | |
| 1. **`status: "ok"` / success toast without evidence** | |
| 2. **File existence = done/PASS** | |
| 3. **Hardcoded metrics / “100%” catalog KPIs** | |
| 4. **Simulated delays / stubs claiming complete** | |
| 5. **Subprocess integrity gaps** (exit ignored, empty exit 0) | |
| 6. **GT contamination loop** (`no_sam` → synthetic/GT proposals → quality/launch PASS) | |
| 7. **Frontend rarely checks `res.ok`** | |
| --- | |
| ## What is relatively honest today | |
| - Validate & Browse (`/api/dataset/browse`) — real filesystem scan | |
| - Local ingest (non-stub) — real frames → manifest | |
| - Tracking / quality math / launch thresholds / autograder heuristics / YOLO train+infer — real when inputs and deps exist | |
| - Catalog preprocess messaging partially hardened (`catalog_only`, `browse_hint`) but KPIs still read as Loaded | |
| --- | |
| ## Remediation shipped in `feat/execution-integrity` | |
| **Implemented:** Execution ledger + APIs; real Dataset Load & Preprocess; Auto-Label / Infer / Train / Grader evidence wiring; YAML semantic validation; script verification; backend health; Strict Mode; Evidence Cards + Global Execution Console; failure + deterministic tests; remaining stages show honest `NOT_EXECUTED` / unverified stubs. | |
| **Deferred (honest stubs only):** Full MITL/HF ingest, real SSAM lake, real MCP process probes, SAM GPU path when checkpoint absent, full 15-stage process verification beyond Dataset/Auto-Label/Train/Grader. | |