# AIWK 최신 기준서 v154-pc-tree-local-renderer

## 현재 확정 기준
- profile/token 정본 저장소는 계속 `aiwk/v152/profile/{group}/{project}/{room_id}/{client_id}/{url5}` 이다. v154는 저장소 schema를 바꾸지 않는다.
- popup 접속창 상단에는 `🔑url5: {url5} 🧷tab: {tab_id}` 를 한 줄로 표시한다.
- Relay 연결지도는 PC 이름을 최상위 root로 하는 자체 트리 구조로 표시한다.
- 트리 구조는 `PC → group/project → room → client_id/url5/tab/endpoint/source` 순서다.
- 외부 CDN 또는 원격 JS는 사용하지 않는다. Chrome Extension side_panel/popup CSP를 고려하여 `side_panel.js` 자체 렌더러로 처리한다.
- Relay row source는 `source:wss`, `source:service_worker`, `source:comm_recent`, `source:chrome.storage`, `source:stale` 로 구분한다.
- `💻PC명 · PC:1/1개` 표시는 현재 item의 `pc_info`, `pc_binding`, `device` 계열 필드를 우선 사용하고, 없으면 `device-unknown`으로 표시한다.
- 페이지 localStorage 삭제만으로 Relay 목록이 사라지지 않는다. WSS runtime, extension service_worker, chrome.storage.local 항목이 별도로 남을 수 있다.

## v154에서 아직 서버까지 완성되지 않은 부분
- AIWK_PC.py의 `/identity` API와 WSS/PHP의 `_group_meta[room].AIWK_PC` 자동 등록/교체 로직은 다음 단계다.
- v154 Relay 트리는 서버가 `pc_info` 또는 `pc_binding`을 내려주면 즉시 표시할 수 있도록 UI 수신부를 먼저 준비한 것이다.

## 다음 예정
- AIWK_PC.py가 `pc_name`, `pc_hash`, `session_id`를 생성하고 `http://127.0.0.1:8768/identity` 로 제공한다.
- EXT4가 WSS register 전에 `/identity`를 호출해 `pc_info`를 register payload에 포함한다.
- WSS/PHP가 room 단위 `AIWK_PC.bound_devices`, `max_devices`, `replace_history`를 JSON에 저장한다.
