carlin

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 1b1cfd268a docs(changelog): Chinese export headers + field-mapping sheet (TEST-068)

10 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 6c2408a7a3 feat(export): Chinese headers for all fields + field-mapping sheet - new afmcore/export_field_zh.py: 3-layer translation (exact dict ~120 entries / pattern rules T-Rt-Cap-h-Area-dT-Tc + HousingWJ + arrows / component lexicon + node-temp tokens); passthrough when no rule matches - export headers now fully Chinese with units (461/461 english fields on real data, 0 residue) - xlsx gains a '字段对照' sheet: col#/category/Chinese header/native Motor-CAD field/unit for all 885 columns incl. metric keys - tests: 66 checks all pass; live re-export verified

10 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 7f397303a2 docs(changelog): Node Temperatures section fix (4-col remap + backfill)

11 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 4df84b67fb fix(export): Node Temperatures 4-column section misaligned (header 0[25], part names in data) - parse_export_full remaps the 4-col layout (node_id;name;value;unit) to (name, value, unit); category translated to Chinese - backfilled plan 33 raw_json from on-disk raw exports (no re-run needed) - regression tests +2 (52 total, all pass); re-export verified Ambient[°C]=25, Housing[°C]=40.02, no 0[25] residue

11 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 8ceac1f412 docs(changelog): results export (web key metrics + lossless full xlsx/csv)

12 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • ccc3dd10f5 feat(results): lossless full-field export (all Motor-CAD EM+thermal fields) - afmcore.metrics: new parse_export_full() keeps every exported field with section/name/value/unit; skips Node-to-Node matrix sections; INF/NaN kept as strings (JSON-safe). parse_export() now also skips non-finite values (fixes latent report crash on Motor-CAD 'INF' fields) - executor chain: solver captures raw_flat (EM + Thermal- prefixed thermal full exports) -> adapter -> task_executor -> report to backend - backend: SimulationResult.raw_json column (+ SQLite ALTER migration), _sync_results_to_plan persists raw_flat, export endpoints append all raw columns (Chinese section categories, name[unit] headers, dedup) - tests: 50 checks all pass; live e2e task fcc12b6c: 897 fields captured, 885-column xlsx verified
  • e943b93933 docs: 记录并行开发观察(export-xlsx 404->用户自行实现)+旧后端换启确认
  • Просмотр сравнение для этих 2 коммитов »

12 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 90f1e252e7 fix(results): CSV export endpoint + restart note; CSV button was pointing at plan-JSON download - new GET /api/plans/{id}/export-csv sharing _collect_export_rows with xlsx (single Chinese header row, utf-8-sig for Excel) - frontend: download CSV button now targets export-csv (was /download which returns plan definition JSON for the executor, never results) - tests: +7 csv checks (37 total, all pass); live-verified plan 33 via vite proxy (xlsx 7664B/5x55, csv 2504B)

13 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 1dd045f759 feat(results): Excel export of plan results with engineer-focused EM/thermal columns - new src/afmcore/xlsx_report.py: two-row-header xlsx writer adapted from torqrippswap write_summary_xlsx (category groups, freeze panes, autofilter) - backend GET /api/plans/{id}/export-xlsx with RFC 5987 Chinese filenames - frontend PlanDetail: 30+ metric Chinese labels, thermal columns auto-added to default view for thermal tasks, new Export Excel button - tests: scripts/test_xlsx_export.py 30 checks (unit + TestClient API) - requirements: openpyxl>=3.1.0

14 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

15 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 3342d3ce32 fix(executor): stop-simulation button now actually cancels the running task - PlanDetail.vue stopSimulation was a frontend stub that never called the backend; the old 100-point task kept running, so the progress banner (task total_points snapshot) diverged from the plan card (live estimate) after the user edited scan variables - Frontend: call POST /api/tasks/{task_id}/cancel, then refresh active-task - Executor: new _is_task_cancelled() polls GET /api/tasks/{id} between points (best-effort, network errors never abort); cancelled tasks break the loop and report partial results as cancelled - Tests: new scripts/test_executor_cancel.py (6 cases); regression m3+p5m2+config 32 cases all pass; vue-tsc clean

16 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 4f81c091fc feat(thermal): one-click start dialog gains thermal_mode selector PlanDetail preflight dialog now lets the engineer pick off/steady/coupled before confirming start; thermal_mode flows to start-simulation API. TaskManager form already had it. vue-tsc 0 errors.

17 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • f9027f4488 docs: CHANGELOG entry for thermal simulation + task-level three-mode switch

17 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 7dbaff2070 feat(thermal): task-level three-mode thermal switch (off/steady/coupled) - Backend: thermal_mode field flows from CreateTaskRequest/start-simulation into task.json - Executor: execute_task reads task.thermal_mode, passes through adapter.run_point to solver - Solver: run_single_point gains thermal_mode param + coupled branch (do_magnetic_thermal_calculation) - Frontend: TaskManager three-mode radio with per-mode cost hints, default steady - Verified: coupled mode end-to-end PASS (TEST-062), temp_rise +29.91, thermal_resistance +2.058 - Docs: KNOWLEDGE_BASE 2.7, CONVERSATION_LOG, TEST_RECORDS TEST-062

17 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • d326b5df30 fix(analytics): derive metric defs from single source of truth (add thermal/structural metrics) analytics.py kept a hardcoded 11-metric electromagnetic-only METRIC_DEFS, silently dropping the 7 thermal + 4 structural metrics from /analytics/metrics. Now imports METRIC_DEFINITIONS from afmcore.metrics (35 metrics) and derives the display dict. test_analytics.py passes.
  • 553a04e22f feat(thermal): hardwire ambient_temperature into executor config (default 25C) - RobustMotorCADSolver: add ambient_temperature param; override Ambient_Temperature (write+verify) before steady-state thermal solve - Plumb through adapter -> executor -> entry script -> config (default 25.0, EXECUTOR_AMBIENT env) - verify_enable_thermal.py now exercises the constructor param path (re-verified end-to-end PASS) - Docs: CONVERSATION_LOG, TEST_RECORDS
  • f5749a94a7 test(thermal): add verify_enable_thermal.py + TEST-061 end-to-end PASS Verified the executor enable_thermal plumbing on real Motor-CAD: RobustMotorCADSolver(enable_thermal=True) runs EM + steady-state thermal, merges 7 thermal metrics, and writes them to scan_results.csv. temp_rise +27.57, thermal_resistance +5.657 (ambient=25).
  • ad55b2145e feat(thermal): add --ambient override + verify temp-rise turns positive; fix test_executor_m3 - run_thermal.py: add --ambient N to override Ambient_Temperature in-memory (verified writable/readback) - Measured: ambient=25 turns temp_rise_c +27.57 (was -56.88) and thermal_resistance_k_w +5.657 (was -11.07), confirming 125C anomaly was the root cause - test_executor_m3.py: make_task now sets status=pending so claim-reject path is exercised (was a test-fixture gap, not a production bug) - Docs: KNOWLEDGE_BASE ambient fix table, CONVERSATION_LOG
  • a9738cd75a docs(thermal): record coupled-vs-steady benchmark + executor enable_thermal plumbing + git recovery
  • Просмотр сравнение для этих 38 коммитов »

18 часов назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • de7761eadc fix: AI plan generation timeout - frontend 30s->180s, backend max_tokens 4000->2000

1 неделя назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 17f81b561f fix: frontend testing fixes - TaskManager unicode + DB auto-migration - TaskManager.vue: decode 219 unicode escape sequences to Chinese - database.py: add _migrate_existing_tables() auto-migration for SQLite - ALTER TABLE adds 8 new SimulationResult columns if missing - Handles model additions without requiring DB reset - task_manager.py: fix import (SessionLocal from database, Task from models.task) Verified: - All 10 frontend pages load with Chinese text - Project detail page no longer 500 error - Plan detail page shows 3 results all OK - Plans list API returns 200 with 1 plan, 3 results

1 неделя назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • b4f3971f3f fix: second-round P1 and risk-item fixes from code review Status unification (3.4-34): - New src/status_constants.py with POINT_OK/POINT_FAILED/TASK_* constants - robust_motorcad.py and task_executor.py: lowercase ok/failed -> uppercase OK/FAILED Session management (3.4-25): - task_manager.py: 7x next(get_db()) -> with SessionLocal() as db: API security (E4): - main.py: optional API key middleware (AFM_API_KEY env var) - ai.py ChatRequest: max_tokens Field(le=8192) upper bound Solver stability (3.1-1): - solver_core.py: point_timeout=600s via daemon thread - solver_core.py: max_consecutive_failures=3 auto reconnect Data safety: - plans.py: plan_id adds 6-char random hex suffix to avoid collisions - projects.py + experience.py: list endpoints limit Query(le=200), skip Query(ge=0) - experience.py: create_experience dedup by source_plan_id + params_json Verification: - 75 Python files pass py_compile - All .py files pure ASCII compliant - Key module imports verified Updated docs/CODE_REVIEW_RESPONSE.md with second-round fix record

1 неделя назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • d64345683c fix: address third-party code review V1.0 P0 issues (20+ fixes) Data integrity: - A1: single source of truth for metric keys (metrics_constants.py) - A2: mock fallback removed; failures reported as status=failed - A3/A4/A5: task_executor reuses RobustMotorCADSolver, no bare pymotorcad - A7: GUI self._plan persisted on scan start - A8: api_client handles 204 empty response body Stability: - B1: BatchScheduler Lock -> RLock (deadlock fix) - B2: closeEvent with worker cancel/wait prevents QThread crash - B3: VariableTable get_variables validates per-row with row numbers - B4: ScanWorker.run try/finally ensures solver.disconnect() - B5: run_single_point early break instead of return (point persisted) - B7: local task files renamed to .done.json after execution AI logic: - C1: explicit METRIC_DIRECTIONS map replaces substring matching - C2: all 6 convergence criteria executed (optimum_stability + surrogate_error) - C3: L0 prescreen requires minimum 3 checks, 0 checks = not feasible - C4: trust region anchor respects objective_direction (min/max) - C5: trust region center migrates to new best point Frontend: - D1: 994 unicode escapes decoded to Chinese in 7 Vue files - D2: axios response interceptor unwraps .data globally - D3: ECharts dynamic import mod.default || mod - D4: heatmap uses real parameter bins; convergence labeled running-best Deployment/security: - E1: .dockerignore excludes .env/.git/node_modules/*.mot - E2: docker-compose no longer shadows KIMI_API_KEY with empty string - E3: SQLite data volume persisted in docker-compose - F2: cascade delete-orphan + PRAGMA foreign_keys=ON - F3: 3 web backend .py files escaped to pure ASCII Discipline: - F4: Git preflight is hard rejection (no Continue anyway) - F5: GET /download read-only; POST /start-execution for state change - Added docs/CODE_REVIEW_RESPONSE.md with full audit

1 неделя назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • ce4fe7abb3 docs: add TEST-003 record - expanded metric parsing verified (7->14 metrics) TEST-003 results: - All steps successful: connection/popup suppression/preflight/probing/ write-back verification/magnetic calculation(133.5s)/export/parse/disconnect - Parsed metrics improved from 7 to 14 after METRIC_DEFINITIONS expansion - New metrics parsed: output_power, em_power, shaft_torque, stall_torque, torque_constant, phase_current_peak, line_current_rms - Key results: efficiency 86.06%, total loss 41.945W, shaft torque 0.49456Nm, stall torque 9.364Nm, torque constant 0.01757 Nm/A - Still not parsed: average torque (virtual work), torque ripple - need further investigation of field name matching (possible invisible characters) - Third consecutive successful test run - system stability verified

1 неделя назад

carlin запушил(а) master в carlin/pcb-afm-simulation-system

  • 4159bf7161 docs: add project discipline (README update mandatory), test records doc, and P4 completion in README 1. AGENTS.md - Added 'Project Discipline' section: - Every phase/milestone completion MUST update README.md - Every test MUST be recorded in docs/TEST_RECORDS.md (work traceability) - Git commit message format convention - Build artifacts exclusion rules 2. docs/TEST_RECORDS.md - Created test record document: - TEST-001: Motor-CAD connection & variable probing (2026-08-28) - Partially successful: 11/14 variables, found 2 bugs - Bug 1: GUI popups on get_variable for non-existent names - Bug 2: export_results API missing solution_type param - TEST-002: Full flow verification after fixes (2026-08-28) - All successful: connection/calc/export/parse - Popup suppression verified, export API fixed - Actual results: efficiency 86.06%, total loss 41.945W - 8 pending test items listed 3. README.md - Updated to V1.3: - Document version: V1.2 -> V1.3 (Phase 4 complete) - Current status updated to include Phase 4 - Added Phase 4 milestone table (5 milestones + 2 patches) - Added Phase 4 core capabilities summary (10 AI pages, dual-system loop, batch scheduler, real-time monitor, advanced visualization, 16 robustness measures, auto report, deployment, Motor-CAD verification)

1 неделя назад