260414 Webapp Repair Part 1 — /api/ops, /graph
결론
/api/ops500 복구 완료: live curl200 OK./graph404 복구 완료: live curl200 OK, Knowledge Graph HTML 렌더 응답 확인.- 금지 파일(
shared/llm.py,shared/cycle_base.py)은 수정하지 않음.
수정 내역
1) /api/ops 500
- 파일:
~/.openclaw/workspace/scripts/pipeline/webapp/blueprints/market.py - 원인:
api_ops()가_L()반환값을 8개로 언패킹했지만, 현재_L()은 10개 loader를 반환해ValueError: too many values to unpack (expected 8)발생. - 조치: 필요한 loader만 인덱스로 명시 참조하도록 변경.
load_agent_worker_status→loaders[4]load_system_digest_summary→loaders[5]load_cowork_tasks→loaders[7]
2) /graph 404
- 파일:
~/.openclaw/workspace/scripts/pipeline/webapp/blueprints/vault.py - 원인: Knowledge Graph 화면은
/vault/knowledge-graph로만 등록되어 있고/graph별칭 라우트가 없었음. - 조치: 같은 view에
/graphroute alias 추가.
검증 결과
정적/앱 내부 검증
python3 -m py_compile webapp/blueprints/market.py webapp/blueprints/vault.py
=> OK
Flask test_client:
/api/ops 200 application/json 19278
/graph 200 text/html; charset=utf-8 26850
live server 검증
launchctl kickstart -k gui/$(id -u)/com.openclaw.sihwang-webapp 후 localhost:8080에서 확인.
/api/ops status=200 bytes=19278
/graph status=200 bytes=26850
/graph HTML 표식:
<title>Knowledge Graph — virtual-insanity</title>
<h1 ...>Knowledge Graph</h1>
fetch(`/api/vault/knowledge-graph?...`)
비고
- stealth-browser 도구는 현재 세션에 제공되지 않아 사용하지 못함.
- 대신 Flask 렌더링 + live curl HTML 응답으로 대체 검증함.
- 이 작업에서 의도한 변경은
/api/opsloader 언패킹 수정과/graphalias 추가뿐이다. 같은 파일의 기존 미커밋 변경은 다른 작업 맥락일 수 있어 건드리지 않았다.
자체 평가
- 정확성: 5/5
- 완성도: 4.5/5
- 검증: 4.5/5
- 최소 변경: 4.5/5
- 종합: 4.6/5