# AIWK 최신 기준서 v157-heart-title-sticky-common

## 현재 절대 기준

- AIWK는 IG/Heart가 title 맨 앞에 붙인 하트 모양 3개를 색상과 무관하게 보존한다.
- AIWK는 하트 3개의 의미를 판단하지 않는다. 실제 추적 허용/차단은 Heart/IG 쪽 규칙이 담당한다.
- AIWK 상태점 3개와 client/R/T 표시는 보존된 하트 3개 뒤에 붙인다.
- AIWK가 실행 중 한 번이라도 title 맨 앞 하트 3개를 발견하면 `heartPrefixSticky`로 기억한다.
- 이후 Instagram/기존 루프/다른 스크립트가 일시적으로 title을 `상태점3 C1 R/T...` 또는 원제목만으로 바꿔도, AIWK는 기억한 하트 3개를 다시 앞에 복원한다.
- title에 이미 누적된 `하트3 + AIWK상태점 + client/R/T - ...` 반복 prefix는 다음 title 갱신 때 1개만 남기고 제거한다.
- title 파싱/정리/포맷은 `AIWK_COMMON/core/aiwk_title.js` 공통 함수 기준으로 맞춘다.
- AIWK 단독 title은 기존처럼 `상태점3 client_id R:0000 T:0000 - 원제목` 형식을 쓴다.

## title 예시

- `❤️💛❤️ Instagram` → `❤️💛❤️ 🟢🟡🔴 C1 R:0000 T:0000 - Instagram`
- `💛💛💛 Instagram` → `💛💛💛 🟢🟡🔴 C1 R:0000 T:0000 - Instagram`
- `❤️❤️❤️ 🟡🟢🟡 C1 R:0000 T:0000 - ❤️❤️❤️ 🟡🟢🟡 C1 R:0000 T:0000 - Instagram`
  → `❤️❤️❤️ 🟡🟢🟡 C1 R:0000 T:0000 - Instagram`
- 하트를 한 번 기억한 뒤 현재 title이 `🔴🟢🟡 C1 R:0000 T:0000 - Instagram`로 잠깐 바뀌어도
  → `❤️❤️❤️ 🔴🟢🟡 C1 R:0000 T:0000 - Instagram`로 복원한다.

## v157 수정 기준

- `AIWK_COMMON/core/aiwk_title.js`
  - title 공통 파서/포맷터 신규 추가
  - leading heart 3개 읽기, AIWK prefix 제거, nested prefix dedupe, meta parse, format 담당
- `AIWK_COMMON/core/aiwk_comm.js`
  - `heartPrefixSticky` 추가
  - 현재 title에서 하트가 사라져도 기존 sticky 하트를 복원하도록 title update 로직 수정
  - AIWK prefix만 남은 순간에는 `state.titleOriginal`을 덮어쓰지 않도록 수정
- `AIWK_EXT4/popup.js`
  - 표시용 title clean을 공통 title 함수 우선 사용으로 변경
  - 버전 문자열 v157로 정리
- `AIWK_RELAY/side_panel.js`, `AIWK_RELAY/side_panel.html`
  - Relay 표시 버전 v157로 정리
  - Relay title meta parse를 공통 title 함수 우선 사용으로 변경
- `manifest.json`, `AIWK_EXT4/manifest.json`
  - `0.0.157 / v157-heart-title-sticky-common` 반영

## 현재 남은 문제

- Windows Chrome 확장 실제 로딩 테스트는 별도 현장 확인 필요.
- AIWK 창관리/연결지도/자동 딜레이 UI 이식은 이번 패치 범위에서 제외.

## 바로 다음 작업

- Chrome 확장 재로드 후 Instagram 탭 title이 주기적으로 `🔴🟢🟡 C1...`로 하트를 잃지 않는지 확인한다.
- Relay 상단이 `AIWK Relay v157`로 표시되는지 확인한다.
- Relay 탭 목록에서 반복 title이 사라지는지 확인한다.
