Skip to content

docs(evidence): FU3 follow-up debug — 把 conversion 跑通的 5 個根因鏈 - #113

Merged
monkey1sai merged 1 commit into
mainfrom
docs/fu3-followup-debug-2026-05-25
May 25, 2026
Merged

monkey1sai merged 1 commit into
mainfrom
docs/fu3-followup-debug-2026-05-25

Conversation

@monkey1sai

@monkey1sai monkey1sai commented May 25, 2026 •

Copy link
Copy Markdown
Owner

接續 #112,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)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added evidence documentation detailing file conversion workflow analysis with root cause identification and improvement recommendations for conversion processes.

Review Change Stack

接續前一 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)。
Copilot AI review requested due to automatic review settings May 25, 2026 12:06
@monkey1sai
monkey1sai merged commit 3bd6e0b into main May 25, 2026
1 of 2 checks passed
@monkey1sai
monkey1sai deleted the docs/fu3-followup-debug-2026-05-25 branch May 25, 2026 12:06
@coderabbitai

coderabbitai Bot commented May 25, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9f576271-f48c-4510-b3a2-bd39febdb4b9

📥 Commits

Reviewing files that changed from the base of the PR and between 62a4ee0 and 77d5bae.

📒 Files selected for processing (1)
  • docs/evidence/2026-05-25-fast-mvp-edge-bim-server-console/fu3-followup-debug-conversion-ready.md

📝 Walkthrough

Walkthrough

This 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.

Changes

IFC Conversion Debug Evidence

Layer / File(s) Summary
Conversion debug findings and root-cause analysis
docs/evidence/2026-05-25-fast-mvp-edge-bim-server-console/fu3-followup-debug-conversion-ready.md
Documents successful IFC conversion closure with verification data (jobId, conversion status, viewer URL). Traces five root causes from implementation-level issues (scheme placeholder returns) through environment configuration gaps (missing STORAGE_ROOT) to process lifecycle problems (stale Python subprocess). Lists deferred improvements with change-id references.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • monkey1sai/AI-BIM-governance#105: The fast-MVP C1 fallback semantic-mapping and /ui three-stage ready semantics are the design foundation that this PR's debug evidence validates and analyzes through real-world conversion outcomes.

Poem

🐰 A debug trail unfolds with care,
Five roots revealed, from shallow air,
To process depth where ghosts remain—
Conversion loops now clear, profane!
Evidence blooms in markdown's light.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/fu3-followup-debug-2026-05-25

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +91 to +93
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
Comment on lines +108 to +117
直接殺 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` 兩個都殺
Comment on lines +126 to +128
- `streaming-server-adapter-explicit-storage-root`(對應 #2)
- `scripts-start-all-child-pid-tracking`(對應 #2 後半)
- `dev-console-ifc-path-input-validation`(對應 #3)
monkey1sai added a commit that referenced this pull request May 26, 2026
接續 #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。
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.

2 participants