Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 4.56 KB

File metadata and controls

57 lines (44 loc) · 4.56 KB

TA-processer — Current State (post-blocking-fix pass)

This document records the actual current state of the TA-processer desktop application, after addressing the blocking issues raised in the prior acceptance review. It is written to match what is demonstrably true, not aspirational.

Date: 2026-07-16


What works (verified)

area status evidence
Backend algorithm migration ✅ pytest parity 10/10 + real-data regression 8/8 (matrices bit-identical, IRF FWHM 2e-11, lifetimes 3–4 sig figs vs TA-skill golden)
Seven-step pipeline (data flow) ✅ All 7 stages run end-to-end on the canonical Average.csv fixture via scripts/run_real_data_regression.py; each stage produces its expected artifacts (raw→local_exp confirmed; fit confirmed in the regression suite)
Per-stage parameters wired to UI ✅ StageParams panel builds the correct params dict for each stage (wl_range, background_range, chirp/IRF/life-bounds/bootstrap…); the run button forwards them — step 2 (crop) and onward no longer fail with 'wl_range'
Scientific pages (real data, not stand-ins) ✅ IRF chart ① shows observed trace + erf-step fit at the selected wavelength; local_exp overlays 1/2/3-exponential fits from {1,2,3}exp_parameters.csv; global-fit page reads stages/fit/*, shows 95% CI + Boot SR + kinetic-scheme diagram (no AICc)
Import wizard ✅ Modal with orientation / transpose / delimiter / time-unit (fs/ps/ns) / wavelength-unit (nm/µm) → canonical standard matrix via normalize_import
Report / reproduction / export closure ✅ Top-bar buttons: 查看报告 (opens analysis_report.html), 导出复现包 (generates per-stage standalone Python scripts + TA_reproduction.ipynb via write_reproduction_bundle), 出版导出 (PNG/SVG/PDF save dialog)
Windows installer ✅ TA-processer-0.1.0-x64-setup.exe (148 MB) builds via npm run build:win; bundles the PyInstaller ta_engine.exe under resources/ta_engine/. No code signing (first release)
Frozen Python backend ✅ ta_engine.exe responds to JSON-Lines (ping→pong, raw stage) with no system Python
Unhandled page errors ✅ fixed artifact:read returns "" for missing files instead of throwing; slides gracefully show stage-unavailable for not-yet-run stages
Immutable revision tracking ✅ each stage manifest records upstream_hash (sha256 of the input it consumed) for downstream-staleness detection
Electron layout / theme ✅ presentation-style console (topbar + global-controls + slide-stage + bottom-stepper), light/dark theme, matches the TA-skill dashboard information architecture

Known limitations / not yet done

area status note
macOS installer ❌ not built electron-builder.yml has the mac/dmg config stubbed; must be built on a macOS host. Not buildable on Windows.
Code signing / notarization ❌ first release is unsigned (offline lab build). Config placeholders exist; requires CI secrets.
Seven-step Electron e2e through the renderer ⚠️ flaky The backend completes all 7 stages in seconds when driven directly. When driven through the Electron renderer's runStage in a tight Playwright loop, the local_exp stage's runStage promise occasionally does not resolve (renderer re-entrancy on progress events). The data flow is correct — see the Python-driven full run. The renderer integration test needs a more robust harness (background-page or per-run await) — tracked as a test-infrastructure task.
Per-stage detail plots partial Chirp-curve overlay, FWHM-vs-λ, and SAS/population render from real artifacts. The interactive per-chart settings popover (axis/colorbar live edit) is not yet wired.

How to verify each claim

# 1. Backend parity + regression
python -m pytest tests/backend -q          # 10 fast
python -m pytest tests/backend -m slow -q  # 8 real-data (≈2–3 min)

# 2. Full seven-step data flow on the canonical fixture
python scripts/run_real_data_regression.py --stages raw,crop,background,chirp,irf,local_exp,fit
#    (fit needs a full window; results land under build/real-data-regression/results/)

# 3. Desktop build + Windows installer
cd apps/desktop && npm run build
CSC_IDENTITY_AUTO_DISCOVERY=false npm run build:win   # → release/TA-processer-0.1.0-x64-setup.exe

# 4. Frozen backend standalone
printf '{"cmd":"ping"}\n{"cmd":"quit"}\n' | backend/dist/ta_engine/ta_engine.exe   # → {"type":"pong"}

# 5. Layout e2e
cd apps/desktop && npx playwright test --config=playwright.config.ts -g "console renders"