docs(evidence): FU3 follow-up debug — 把 conversion 跑通的 5 個根因鏈 - #113
Conversation
接續前一 PR(#112)的「C1 真實 conversion deferred」項目,operator 在 /ui 表單按「送出 ifc-ready」沒看到下載轉檔,debug 後完整閉環跑通。 5 個根因鏈(由淺到深): 1. edge-local:// scheme 走 placeholderSuccess 不真實下載 → 改 http://host.docker.internal:8910/<file> 2. 許良宇圖書館建築_2026.ifc 不存在(只有 ... - 轉檔測試N.ifc)→ 改用實際檔名 3. compose STORAGE_HOST_ROOT default 相對路徑 → 設 $env:RUNTIME_STORAGE_ROOT 為 absolute host path 4. host-native conversion service 49101 沒拿到 STORAGE_ROOT env → 用 cmd /c set wrapper 強制 5. 隱藏 bug:Stop-Process 只殺 wrapper 沒殺 python child(PID 29888 stale 2 小時)→ 直接殺 port 49101 owner 完整閉環跑通 evidence: - ifc_ready_job_id = ifcready_1779705788713_69bdc794 - conversion_status = ready - viewer_url = http://127.0.0.1:8004/ui/open?session=review_session_9911e2e39f77 文件含 4 項 enhancement 建議(屬未來 OpenSpec change)。
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds a debugging evidence document that records the successful completion of an IFC conversion flow in the edge BIM server console. The file details the conversion outcome and systematically analyzes five root-cause chains explaining issues encountered, providing both immediate findings and deferred improvement recommendations. ChangesIFC Conversion Debug Evidence
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR adds a new evidence/debug write-up documenting an FU3 follow-up investigation where an operator could not observe the expected IFC download/conversion flow after submitting “ifc-ready” in the coordinator /ui, and captures the identified root-cause chain plus mitigations.
Changes:
- Added a markdown evidence report describing 5 root-cause links (URL scheme fallback, fixture filename mismatch, STORAGE_HOST_ROOT relative path, host-native conversion STORAGE_ROOT env propagation, and stale conversion-service process).
- Included concrete repro/mitigation commands and suggested future OpenSpec change-ids.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Start-Process -FilePath 'cmd.exe' ` | ||
| -ArgumentList '/c','set STORAGE_ROOT=C:\Repos\active\iot\AI-BIM-governance && pwsh.exe -NoProfile -ExecutionPolicy Bypass -File bim-streaming-server\scripts\start-host-native-conversion-service.ps1' ` | ||
| -WorkingDirectory (Get-Location).Path |
| 直接殺 port 49101 的 owner PID,不要靠 `scripts/.run/*.pid` 的 wrapper id。 | ||
|
|
||
| ## 改善建議(未在本輪做) | ||
|
|
||
| 1. **修 `adapter_from_env`**(`ifc2usdc_powershell_adapter.py:868`)讓它顯式 | ||
| propagate `STORAGE_ROOT` env 給 `Ifc2UsdcPowershellConverterAdapter` | ||
| constructor,避免依賴 env inheritance 不可靠 | ||
| 2. **改 `scripts/start-all.ps1`** wrapper 與 child process tracking:寫 | ||
| wrapper PID 也寫 child python PID 進 `.pid` 檔(`.wrapper.pid` / | ||
| `.child.pid`),讓 `stop-all.ps1` 兩個都殺 |
| - `streaming-server-adapter-explicit-storage-root`(對應 #2) | ||
| - `scripts-start-all-child-pid-tracking`(對應 #2 後半) | ||
| - `dev-console-ifc-path-input-validation`(對應 #3) |
接續 #113 follow-up debug 把 conversion 跑通後,用 Chrome MCP javascript_tool 直接抓 viewer DOM testid 驗 C2 spec scenarios。 Test session: - review_session_97a62e18d895 - conversion_job stream_conv_20260526020354_c33202a9 - IFC: 270_0dac5239-a2aa-4257-9946-c2b6da6bd24d_model.ifc (341MB) C2 PR #108 spec delta verification: - MODIFIED 3 / ADDED 2 / REMOVED 2 全綠 - TopBar 真實顯示 project_demo_270 / version_demo_270 / session - Tri-ready: File=yes / Runtime=yes / Semantic=no(誠實標,因 coordinator 未把 quality_metrics_summary 注入 stream_config) - Stage truth matched: expected=loaded=stream_conv_../model.usdc + WebRTC started - 預設 viewer 無 USDAsset / 無 DemoControl / 無 ReviewLauncher(刪除生效) - ?debug=1 切換:select count 0→1,Element mapping / DemoControlPanel 出現 C2 archive evidence gate 達成。Inspector 4 層完整拆分與 Bottom Strip 留 Phase 2 follow-up(已在 PR #108 description 註明)。Semantic ready=yes 需新 OpenSpec change `coordinator-forward-quality-metrics-summary` 把 quality summary 注入 stream_config。
接續 #112,operator 在 /ui 表單按「送出 ifc-ready」沒看到下載轉檔,debug 後完整閉環跑通。
5 個根因鏈(由淺到深)
edge-local://scheme 走 placeholderSuccess 不真實下載 → 改http://host.docker.internal:8910/<file>許良宇圖書館建築_2026.ifc不存在(只有... - 轉檔測試N.ifc)→ 改用實際檔名STORAGE_HOST_ROOTdefault 相對路徑 → 設$env:RUNTIME_STORAGE_ROOT為 absolute host pathSTORAGE_ROOTenv → 用cmd /c setwrapper 強制Stop-Process只殺 wrapper 沒殺 python child(PID 29888 stale 2 小時)→ 直接殺 port 49101 owner跑通 evidence
ifc_ready_job_id = ifcready_1779705788713_69bdc794conversion_status = readyviewer_url = http://127.0.0.1:8004/ui/open?session=review_session_9911e2e39f774 項 enhancement 建議(屬未來 OpenSpec change)
coordinator-edge-local-host-copy-fallback(對應 feat(demo): 完成 BIM review demo UI 驗收 #1)streaming-server-adapter-explicit-storage-root(對應 fix(coordinator): timeout BimControlClient fetches to stop test flakiness #4)scripts-start-all-child-pid-tracking(對應 stop-all.ps1 未完全停止所有本地服務 #5)dev-console-ifc-path-input-validation(對應 feat(demo): 完成 BIM review demo UI 驗收 #1)🤖 Generated with Claude Code
Summary by CodeRabbit