codex-agent-view 0.4.7 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "codex-agent-view",
3
- "version": "0.4.7",
4
- "description": "Follow Codex work and participating agent progress in a clear, read-only live view inside the official Codex app.",
3
+ "version": "0.5.0",
4
+ "description": "Follow Codex work and participating agent progress in a clear, read-only live view opened from the official Codex app.",
5
5
  "author": {
6
6
  "name": "Junho Yoon",
7
7
  "url": "https://github.com/JunhoYoon95"
@@ -13,7 +13,8 @@
13
13
  "interface": {
14
14
  "displayName": "Codex Agent View",
15
15
  "shortDescription": "See work and agent progress.",
16
- "longDescription": "See active work, a privacy-minimized request summary, participating agents, and progress inside the official Codex app. Select the plugin first, then explicitly invoke the bundled $show-agents skill to open the live view; the plugin does not append or auto-run action text.",
16
+ "longDescription": "Open a read-only live view of active Codex work, privacy-minimized request summaries, participating agents, and progress in your default browser. Invoke @codex-agent-view or choose Quick start; no separate skill picker or $ command is required.",
17
+ "defaultPrompt": "Open the Codex Agent View live monitor in my default browser.",
17
18
  "developerName": "Junho Yoon",
18
19
  "category": "Productivity",
19
20
  "brandColor": "#123F35",
package/README.ko.md CHANGED
@@ -2,18 +2,18 @@
2
2
 
3
3
  > [Read in English](https://github.com/JunhoYoon95/codex-agent-view/blob/main/README.md)
4
4
 
5
- Codex Agent View는 Codex가 지금 어떤 작업을 수행하고 있고 어떤 에이전트가 참여하는지 한눈에 보여주는 읽기 전용 companion plugin이다. 공식 Codex 앱을 그대로 사용하며, 신뢰한 hook이 로컬 실시간 연결을 준비하고 bundled **Show Agents** skill이 안에서 현황 화면을 연다. Codex를 대체하거나 작업을 제어하지 않는다.
5
+ Codex Agent View는 Codex가 지금 어떤 작업을 수행하고 있고 어떤 에이전트가 참여하는지 한눈에 보여주는 읽기 전용 companion plugin이다. 신뢰한 Codex hook이 데이터를 로컬에 유지하고, `@codex-agent-view` 번으로 운영체제 기본 브라우저에 monitor를 연다. Codex를 대체하거나 작업을 제어하지 않는다.
6
6
 
7
7
  > 비공식 커뮤니티 프로젝트이며 OpenAI의 공식 제품, 제휴 제품, 공식 지원 프로젝트가 아니다.
8
8
 
9
9
  ## 한국어 사용법
10
10
 
11
- ### 빠른 시작: 설치 후에는 Codex 앱 안에서만 사용
11
+ ### 빠른 시작
12
12
 
13
- README는 `codex-agent-view@0.4.7` 사용법을 설명한다. **최초 설치만** 일반 터미널에서 아래 exact-version 명령으로 진행한다.
13
+ Public npm `latest`는 historical `codex-agent-view@0.4.8`이다. Current source는 별도의 사용자용 `$show-agents` 선택을 없애고 로컬 monitor를 기본 브라우저에 여는 **미배포 `0.5.0` release candidate**다. 아래 exact candidate 명령은 `0.5.0` publish가 완료된 뒤에만 사용할 수 있다. 이 source 문서를 registry 공개 증거로 취급하지 않는다.
14
14
 
15
15
  ```bash
16
- npm install --global codex-agent-view@0.4.7
16
+ npm install --global codex-agent-view@0.5.0
17
17
  codex-agent-view install
18
18
  ```
19
19
 
@@ -25,31 +25,33 @@ codex-agent-view install
25
25
  2. Codex 앱의 **Plugins** 화면에서 `Codex Agent View`가 설치·활성화됐는지 확인한다.
26
26
  3. Hook 검토 화면이 표시되면 `hooks/hooks.json`과 `node "${PLUGIN_ROOT}/scripts/send-hook.mjs"` command를 확인하고 현재 definition을 직접 trust한다. 앱 버전이 hook 검토 UI를 제공하지 않을 때만 설치 과정의 일부로 interactive Codex CLI의 `/hooks`를 사용한다.
27
27
  4. 활성화와 hook 검토를 마친 뒤 Codex 앱에서 **새 task**를 만든다. 설치 전에 시작된 task의 과거 event는 재생되지 않는다.
28
- 5. Plugin 카드의 **지금 사용해보기**를 눌러 Codex 앱 task `@codex-agent-view` plugin만 선택한다. Plugin 카드는 다음 사용법을 설명할 starter prompt를 덧붙이거나 평문을 skill 호출처럼 취급하지 않는다.
29
- 6. task에서 bundled `$show-agents` skill명시적으로 선택해 호출한다. Live 화면을 닫았다면 `@codex-agent-view`가 선택된 task에서 `$show-agents`를 다시 명시 호출한다.
28
+ 5. Plugin 카드의 **지금 사용해보기**를 누르거나 Codex 앱 task에서 `@codex-agent-view`를 선택해 전송한다. 현재 source는 로컬 monitor를 준비하거나 재사용한 인증된 화면을 운영체제 기본 브라우저에 연다.
29
+ 6. Monitor를 보는 동안 browser tab열어 둔다. 닫았다면 `@codex-agent-view`를 다시 실행한다. 별도 skill을 선택하거나 localhost 주소를 복사하지 않는다.
30
30
 
31
- **지금 사용해보기는 skill 호출이 아니다.** Codex plugin의 `interface.defaultPrompt`는 starter text이며, `$show-agents`처럼 보이는 text도 skill 선택으로 해석된다고 보장되지 않는다. 따라서 Codex Agent View는 plugin 카드 starter prompt를 정의하지 않는다. `@codex-agent-view`로 plugin을 선택한 다음 Codex 앱의 skill UI에서 `$show-agents`를 명시적으로 선택한다. 일반 사용에는 terminal command, 외부 browser 또는 localhost URL 관리가 필요 없다.
31
+ Bundle에는 Codex plugin 실행 capability를 제공하기 위한 내부 skill 하나가 남지만, 이는 구현 세부사항이지 사용자가 번째로 해야 동작이 아니다. 사용자는 skill picker를 열거나 `$show-agents`를 입력하지 않는다. Plugin 실행이 최소 권한 local URL을 준비한 기본 browser를 직접 연다. 일반 사용에는 terminal command localhost URL 수동 관리가 필요 없다.
32
32
 
33
- Trust된 첫 hook이 도착하면 plugin sender가 로컬 backend를 내부적으로 준비하고 같은 event 전달을 재시도한다. 사용자는 task ID를 등록하거나 `start`, `status`, `doctor`를 실행할 필요가 없다. **Show Agents**는 healthy backend를 재사용하고 Codex 안에서 live 화면 열기를 시도한다. 앱이 필요한 Browser capability제공하지 않거나 permission이 허용되지 않으면 private URL 노출하는 대신 화면을 없다고 안내한다. Tokenized localhost URL대화에 노출하지 않으며 외부 browser도 정상 사용 흐름에 포함되지 않는다.
33
+ Trust된 첫 hook이 도착하면 plugin sender가 로컬 backend를 내부적으로 준비하고 같은 event 전달을 재시도한다. 사용자는 task ID를 등록하거나 `start`, `status`, `doctor`를 실행할 필요가 없다. 현재 launch capability는 `codex-agent-view open`을 정확히 한 번 실행한다. 이 command가 owned monitor준비하거나 재사용하고 bounded viewer grant를 받은 운영체제에 인증된 local view의 기본 browser open을 요청한다. Command는 runtime bearer보내기 전에 fresh nonce/HMAC ownership proof로 exact owned monitor를 검증하고, 그 process의 runtime token으로 서명한 1회용 60초 bootstrap grant를 발급받는다. URL fragment에는 bounded grant만 들어가며 installation-owned viewer credential과 runtime/control token들어가지 않는다. 모든 request는 exact `127.0.0.1:<port>` authority와 origin-form target을 사용한다. Cookie, CORS access와 사용자가 관리하는 localhost URL은 없다.
34
34
 
35
- 공개 Codex plugin API에는 prompt 없이 앱 시작과 동시에 sidebar, panel 또는 Browser tab을 생성하는 기능이 없다. 따라서 live 화면을 Codex 안에서 `$show-agents` skill을 명시 선택해야 한다. 이미 오른쪽에 열린 live tab2초마다 자동 갱신하고, backend가 같은 loopback origin으로 돌아오면 일시 연결 단절·monitor 재시작·package upgrade 뒤에도 자동 재연결한다. Live view를 호출한 task 자신은 앱이 제공한 `CODEX_THREAD_ID`로 제외하므로 viewer task가 목록 위에 반복 노출되지 않는다. Monitor재시작되면 live 관찰 window는 새로 시작하며 read-only viewer credential만 유지된다.
35
+ 공개 Codex plugin API로는 흐름의 sidebar, panel 또는 in-app Browser tab을 안정적으로 만들 없다. 따라서 현재 source는 운영체제 기본 browser를 안정적인 표시 surface로 사용한다. Bootstrap은 access/recovery/refresh가 절대 연장할 없는 signed 30분 credential-family 만료 시각을 처음에 고정한다. 15분 access credential같은 family 안에서만 자동 갱신되어 tab이 family 끝까지 끊기지 않는다. Recovery는 `localStorage`가 아니라 tab-scoped `sessionStorage`에만 둔다. 이전에 인증된 같은 tab은 일시적인 page access 오류 **다시 연결**을 사용할 있다. 인증 정보가 없는 새 tab이나 family만료된 tab은 안전하게 access를 새로 만들 수 없으므로 `@codex-agent-view`를 다시 실행해 새 인증 화면을 연다. Validated `CODEX_THREAD_ID`는 family에 signed binding된다. Bootstrap은 발급 process 안에서 1회만 쓸 수 있고 monitor가 재시작되면 즉시 무효가 된다.
36
36
 
37
37
  Live UI의 기본 언어는 영어이며 language selector에서 **English**, **한국어**, **Español**을 고를 수 있다. 활동은 refresh 때 접히는 disclosure toggle 없이 계속 보이고, 2초 polling 간격도 유지한다. 각 작업에는 `UserPromptSubmit`에서 만든 첫 번째 유효 요청 요약을 표시할 수 있다. Sender는 원문 중 최대 4,096자만 검사하고 일반적인 credential, 이메일 주소, 링크와 절대 경로를 가린 뒤 한 줄·최대 180자로 제한하며 전체 요청 원문은 즉시 버린다. 이후의 짧은 follow-up은 이 첫 요약을 덮지 않는다. 실제 확인한 `SubagentStart` payload는 `agent_id`, `agent_type`만 제공하며 전용 할당 작업 설명 field가 없다. 따라서 작업 전체의 요청 요약은 보여주되 prompt나 tool input에서 에이전트별 할당 내용을 추측하지 않는다.
38
38
 
39
- 요약하면 설치는 터미널에서 한 번, 조회·상태 확인·live 화면 열기와 이후 사용은 Codex 안에서 수행한다.
39
+ 요약하면 설치는 터미널에서 한 번, 실행은 Codex 앱에서 `@codex-agent-view` 번, 모니터링은 plugin이 browser tab에서 한다.
40
40
 
41
41
  ### 현재 상태
42
42
 
43
- `0.4.7`은 lifecycle 정확성 patch완성한다. `SessionEnd` 최종 우선순위, 늦은 event 차단과 정직한 **종료 미확인** 표시에 더해, 정상 또는 늦게 도착한 `SubagentStop`과 `PostToolUse`가 recent activity의 대응 start 항목을 **중지됨** 또는 **완료**로 갱신한다. 따라서 종료된 agent tool의 이전 recent activity가 잘못 **실행 중**으로 남지 않는다. 아래의 기존 제품 구성은 그대로 유지한다.
43
+ 현재 source는 미배포 `0.5.0` external-browser launch release candidate다. `@codex-agent-view` 한 번이 bundle의 내부 capability실행해 view를 준비하고 기본 browser를 열며, 사용자용 `$show-agents` picker와 panel은 이상 사용 흐름에 없다. Runtime bearer 전에는 ownership을 증명하고 URL에는 1회용 60초 process-signed bootstrap grant만 넣는다. Fixed 30분 signed family 안에서 15분 access를 자동 갱신하고 recovery는 tab-scoped이며 family deadline을 연장하지 않는다. Monitor restart는 사용 전 bootstrap만 무효화하고 이미 exchange된 family는 original expiry까지 새 in-memory 관찰 window에 재연결할 수 있다. Family 만료 뒤에는 `@codex-agent-view`를 다시 실행한다. Publish, public artifact 검증과 공식 기본 browser E2E는 아직 남아 있다.
44
44
 
45
- - 공식 Codex 앱의 내장 thread tools를 우선 사용하는 app-native active-task snapshot skill
46
- - `.codex-plugin/plugin.json`, local marketplace catalog, genuine Codex skill
45
+ Historical public `0.4.8` evidence로 `npm run check` 153개 test, plugin validation과 package dry-run을 통과했다. npm `latest` `0.4.8`, signature가 있는 25-file registry artifact, exact global install, installed/enabled plugin `0.4.8`, hook 9종, healthy doctor, main/tag CI, annotated tag와 public GitHub Release를 확인했다. 공식 Codex 앱에서는 subagent start/stop이 ordered timestamp와 최종 stopped 상태로 실제 전달됐다. 그 release의 기존 in-app Browser 흐름에서도 grant 인증, fragment 제거, 같은 tab bare-root recovery 성공과 새 tab의 recovery button 부재를 확인했다. 이 release evidence는 미배포 `0.5.0` external-browser candidate의 검증 근거가 아니다.
46
+
47
+ - `@codex-agent-view`/Quick start를 default-browser `open` 1회로 routing하는 내부 launch skill
48
+ - `.codex-plugin/plugin.json`, local marketplace catalog, single genuine Codex skill
47
49
  - 부모 task용 `SessionStart`, `SessionEnd`, `UserPromptSubmit`, `Stop`과 subagent/tool/permission hook wiring
48
50
  - privacy-minimized hook sender와 bounded in-memory reducer
49
51
  - `127.0.0.1` 전용 token-authenticated local HTTP runtime
50
52
  - 첫 trusted hook에서 backend를 내부 준비하고 최초 event 전달을 재시도하는 fail-open sender
51
53
  - 부모 task/session, subagent, 최근 활동, permission wait 상태를 표시하는 local UI
52
- - `start`, `status`, `doctor`, `install`, `uninstall` CLI
54
+ - Plugin 내부 normal-use `open`과 maintainer용 `start`, `status`, `doctor`, `install`, `uninstall` CLI
53
55
  - 명시적 설치·hook trust·제거 경로
54
56
 
55
57
  Homebrew Codex CLI와 공식 앱에 포함된 embedded Codex executable에서는 plugin 설치와 lifecycle payload를 검증했다. 그러나 `0.2.0`을 실행 중인 공식 앱 process에 설치·enable한 실사용 재현에서는 실제 subagent 2개를 실행해도 monitor가 event를 0건 수신했다. Monitor, plugin 등록, enable, 설치 bundle은 정상이었지만 앱 log에는 sender 실행 흔적이 없었다. 같은 app process가 설치 전의 `hooks/list` snapshot을 유지한 정황이 있으며, CLI JSON으로 exact hook trust 상태를 확인할 수 없어 config snapshot과 trust 중 어느 경계에서 skip됐는지는 확정하지 않았다.
@@ -72,7 +74,7 @@ Maintainer npm 2FA는 `auth-and-writes` mode로 활성화됐고 `codex-agent-vie
72
74
 
73
75
  공개 `0.4.0` release 당시 evidence: npm `latest`/version, Apache-2.0 license, executable mapping, registry signature, 25 files, package size `52614 B`, unpacked size `189181 B`, shasum `cc379e593f4cafa5dd56f32e6741eab5ba3f4497`와 exact SRI를 확인했다. Registry tarball은 release tarball과 byte-identical이다. Exact tarball publish로 npm metadata에 `gitHead`가 없으므로 그 field를 통한 source 일치는 주장하지 않는다. Annotated `v0.4.0` tag는 release commit `11f7b0511a39c5f5a61cb6da7b91fb3b8e915c6b`을 가리키고 [GitHub Release v0.4.0](https://github.com/JunhoYoon95/codex-agent-view/releases/tag/v0.4.0), main/tag CI가 공개·성공했다. 이 기기에 public exact `0.4.0`을 다시 설치해 CLI/plugin version 일치, installed/enabled, hook wiring 9종과 실제 sessions 7개 event 수신을 확인했다. Show Agents Browser request는 재설치 중 계속 열려 있던 app process에서 `queued`였고 tab을 관찰하지 못했으므로 앱 완전 재시작/new task 전까지 exact visual-panel E2E 완료는 주장하지 않는다.
74
76
 
75
- `0.4.0` known issue: manifest의 `defaultPrompt: ["Show Agents"]`는 평문 plugin-level text starter였다. 이 text는 implicit invocation이 disabled된 `show-agents` skill을 호출하지 않으므로 plugin 카드나 **바로 사용하기** 동작 자체를 skill 실행으로 취급한 안내는 잘못이었다. `0.4.1`은 이를 `Open @ and select the bundled Show Agents skill.`이라는 instructional starter로 교체했지만, 이것도 호출이 아니라 안내였다. 현재 source는 plugin `interface.defaultPrompt`를 완전히 제거한다. **지금 사용해보기**는 `@codex-agent-view`만 선택하고 사용자가 Codex 앱에서 `$show-agents`를 명시 선택한다. 각 public release와 exact app E2E evidence는 별도로 검증해 기록한 범위에서만 주장한다.
77
+ `0.4.0` known issue: manifest의 `defaultPrompt: ["Show Agents"]`는 평문 plugin-level text starter였다. 이 text는 implicit invocation이 disabled된 `show-agents` skill을 호출하지 않으므로 plugin 카드나 **바로 사용하기** 동작 자체를 skill 실행으로 취급한 안내는 잘못이었다. `0.4.1`은 이를 `Open @ and select the bundled Show Agents skill.`이라는 instructional starter로 교체했지만, 이것도 호출이 아니라 안내였다. Public `0.4.8`은 이후 명시적 skill 선택을 요구했다. 미배포 current source는 plugin에 내부 launch capability 하나만 두고 사용자용 skill-picker 단계를 없앤다. 각 public release와 exact app E2E evidence는 별도로 검증해 기록한 범위에서만 주장한다.
76
78
 
77
79
  공개 `0.4.1`: npm `latest`/version, Apache-2.0 license, executable mapping, registry signature, 25 files, package size `53650 B`, unpacked size `193424 B`, shasum `ee2ae0b8b36016f5c57bade067027202b1508d1d`, integrity `sha512-WC4f5MPmvpkXeKM+1BVAYqW4+hoaUrB4yQFoUYgc0pnjyY7hP1CdSR5NJ3QWmvJ6Ikmmb1d+58UL4hkKoyhm1Q==`를 확인했다. Release tarball과 registry tarball은 byte-identical이다. Exact tarball publish로 npm metadata에 `gitHead`가 없으므로 그 field를 통한 source 일치는 주장하지 않는다. Annotated `v0.4.1` tag는 commit `a1de67be5413fa38b8dd1b62f74353463f6e641e`을 가리키며 [GitHub Release v0.4.1](https://github.com/JunhoYoon95/codex-agent-view/releases/tag/v0.4.1), main CI run `30710490358`, tag CI run `30710848474`가 공개·성공했다. 이 기기의 CLI/plugin은 `0.4.1`로 일치하고 plugin installed/enabled 및 hook wiring 9종을 확인했다. Runtime은 install 교체 중 정상 종료돼 현재 `monitor_not_running`이고 persisted hook trust는 `unknown`이다. Codex 앱 process가 설치 전부터 열려 있었으므로 앱 완전 재시작/new task 전까지 direct **Show Agents** visual E2E는 미확인이다.
78
80
 
@@ -86,7 +88,7 @@ Release commit `a7d938c`와 `e2b0543`을 push했고 main CI run `30713618590`이
86
88
 
87
89
  Codex Agent View는 historical audit이나 session replay 제품이 아니라 현재 활동을 보여주는 live companion이다. Bounded in-memory state와 monitor 재시작 시 reset은 privacy와 단순한 failure boundary를 위한 의도된 완성 설계다. SQLite/영구 history는 누락된 요구사항이 아니다. 실제 사용자 요구가 입증될 때에만 retention, migration, deletion, privacy 비용을 별도 검토하는 명시적 opt-in 기능 후보로 취급한다.
88
90
 
89
- - 안의 현재 task snapshot은 공식 Codex 앱이 제공하는 내장 thread tools의 explicit status와 `subAgentActivity`를 우선 사용한다.
91
+ - Historical release는 공식 Codex 내장 thread tools의 explicit status와 `subAgentActivity`를 우선하는 별도 app-native task snapshot을 제공했다. Current source는 사용자 진입점을 hook 기반 browser monitor 하나로 통합한다.
90
92
  - Hook event는 local monitor의 세부 lifecycle 상태에 대한 source of truth다. Monitor state는 bounded memory에만 있고 재시작하면 새 관찰 window가 시작된다. 별도 private viewer credential은 task history가 아니라 인증 metadata다.
91
93
  - `Stop`은 관찰된 root turn과 session/work-item 요약을 즉시 `completed`로 표시한다. 진행 중이던 child agent나 tool은 자체 stop/tool completion 신호를 관찰하지 못했으므로 해당 row에서 별도로 `completion_not_observed`로 표시한다. `SessionEnd`는 terminal priority를 가지며, 그 시점에도 열려 있는 child agent·tool·permission은 완료로 추정하지 않고 `interrupted`로 표시한다.
92
94
  - 공식 `SessionEnd` 전달은 최대 30분 지연될 수 있다. 종료 hook을 관찰하지 못한 채 활동이 열린 상태로 남으면 새 event가 없는 5분 뒤 `completion_not_observed`(**종료 미확인**)로 바꾸며 `completed`로 추정하지 않는다. 지연되거나 누락된 terminal event 때문에 오래된 활동을 완료·성공으로 잘못 표시하지 않기 위한 경계다.
@@ -99,29 +101,29 @@ Codex Agent View는 historical audit이나 session replay 제품이 아니라
99
101
  - Sender는 기존 bounded retry와 fail-open 동작을 유지한다. Disk queue나 persistent replay가 없으므로 hook budget 안에 전달하지 못한 event를 나중에 재생하지 않는다.
100
102
  - 별도로 실행한 App Server는 앱 내장 thread tools와 다른 process다. 공식 앱의 live source로 간주하거나 둘을 같은 API로 설명하지 않는다.
101
103
 
102
- 별도로 실행한 Codex `0.146` App Server의 `thread/list` fallback도 실제 확인했지만 현재 root/subagent가 모두 `notLoaded`로 나타나 공식 앱의 live running/completed 상태를 공유하지 않았다. Persisted parent ID, alias, depth 보강은 가능했지만 live 판별에는 채택하지 않았다. `0.3.0`의 primary snapshot은 이 별도 server가 아니라 현재 공식 앱이 직접 제공하는 내장 thread tools를 사용한다.
104
+ 별도로 실행한 Codex `0.146` App Server의 `thread/list` fallback도 실제 확인했지만 현재 root/subagent가 모두 `notLoaded`로 나타나 공식 앱의 live running/completed 상태를 공유하지 않았다. Persisted parent ID, alias, depth 보강은 가능했지만 live 판별에는 채택하지 않았다. Historical `0.3.0`의 primary snapshot은 이 별도 server가 아니라 공식 앱이 직접 제공하는 내장 thread tools를 사용했다.
103
105
 
104
- ### npm, Codex live view, Plugins Directory의 역할
106
+ ### npm, local browser view, Plugins Directory의 역할
105
107
 
106
- - Plugin 카드의 **지금 사용해보기**는 `@codex-agent-view`만 선택한다. Starter text를 덧붙이거나 skill을 dispatch한다고 주장하지 않는다. Live view열거나 다시 Codex 앱에서 `$show-agents`를 명시 선택하며, 별도 monitor 실행이나 task ID 등록은 필요 없다.
108
+ - Current source의 plugin 카드 **지금 사용해보기**는 `@codex-agent-view` 전송과 같은 단일 흐름을 시작한다. Local monitor준비하거나 재사용하고 인증된 화면을 기본 browser에 연다. 사용자용 skill picker, monitor command, task ID 등록은 필요 없다.
107
109
  - npm은 plugin bundle, 내부 hook sender/runtime과 static UI를 사용자 machine에 배포하는 최초 설치 경로다.
108
- - Live view는 사용자가 안에서 `$show-agents`를 명시 호출했을 때만 열린다. 외부 website나 telemetry dashboard가 아니다.
109
- - 공개 plugin API 시작 no-prompt sidebar/panel/Browser tab 생성을 제공하지 않는다. 최초 live view 열기에는 skill 선택이 필요하고, 열린 tab 같은 설치의 viewer credential과 loopback origin이 유지되는 동안 일시 단절·monitor 재시작·upgrade 뒤에도 자동 갱신·재연결한다.
110
+ - Live view는 운영체제 기본 browser에 표시하는 local-only page이며 hosted website나 telemetry dashboard가 아니다. Plugin이 열기 때문에 사용자가 private localhost URL을 복사하지 않는다.
111
+ - 공개 plugin API 흐름의 sidebar, panel 또는 in-app Browser tab 안정적으로 생성할 없다. 이전에 인증된 browser tab은 fixed family lifetime 안의 일시적 오류에서 다시 연결할 수 있다. 닫힌 tab, 인증 정보가 없는 tab, 만료된 family는 `@codex-agent-view`를 다시 실행해 안전하게 새로 연다.
110
112
  - Universal Plugins Directory는 npm의 대체재가 아니다. 공개 directory의 in-app custom UI 경로는 public HTTPS MCP server와 domain verification이 필요해 local-only/no-external-server 원칙과 충돌한다. 현재는 별도의 listing/skills 제출 가능성만 검토하며, 심사·publish 전에는 Codex plugin 검색으로 설치할 수 있다고 안내하지 않는다.
111
113
 
112
114
  Hook event가 누락·중복·역순으로 올 수 있으므로 UI의 `unknown`, `stopped_without_start`, 빈 상태는 그대로 해석해야 한다. 빈 session 목록은 “이 monitor가 event를 관찰하지 못함”이며 “실행 중인 task가 없음”의 증거가 아니다.
113
115
 
114
- ### 공식 Codex 앱에서 사용 — 권장
116
+ ### 공식 Codex 앱에서 실행 — 권장
115
117
 
116
- 이 절차는 위의 빠른 시작에서 설치와 활성화를 마친 뒤 **새 task**에서 수행한다. 별도 terminal이나 외부 browser 사용하지 않는다.
118
+ 이 절차는 위의 빠른 시작에서 설치와 활성화를 마친 뒤 **새 task**에서 수행한다. Codex 앱이 실행을 시작하고 monitor 자체는 운영체제 기본 browser 유지된다.
117
119
 
118
- 1. Codex Agent View plugin 카드의 **지금 사용해보기**를 누른다. 동작은 `@codex-agent-view`만 선택하며 prompt를 제출하거나 skill을 호출하지 않는다.
119
- 2. Codex 앱에서 bundled `$show-agents` skill을 명시 선택한다. Skill은 trusted hook이 자동 준비한 healthy backend를 재사용하고, 아직 준비되지 않았다면 내부적으로 준비한 뒤 앱에서 live 화면 열기를 시도한다.
120
- 3. Panel은 `CODEX_THREAD_ID`로 이 viewer 호출 task를 제외하고, 나머지 진행 중인 작업과 참여 에이전트를 먼저 배치하며 사람이 읽을 수 있는 프로젝트·요청 요약·에이전트·상태 문구를 표시한다. Session ID는 표시하지 않으며 전체 요청 원문, preview, tool input/output과 full workspace path도 숨긴다.
120
+ 1. Codex Agent View plugin 카드의 **지금 사용해보기**를 누르거나 Codex task에서 `@codex-agent-view`를 선택해 전송한다.
121
+ 2. Plugin의 단일 내부 execution capability가 trusted hook이 자동 준비한 backend를 재사용하거나 아직 없으면 준비한 뒤 인증된 live view를 기본 browser에 연다. 별도 `$show-agents` 선택은 없다.
122
+ 3. Page는 `CODEX_THREAD_ID`로 이 viewer 호출 task를 제외하고, 나머지 진행 중인 작업과 참여 에이전트를 먼저 배치하며 사람이 읽을 수 있는 프로젝트·요청 요약·에이전트·상태 문구를 표시한다. Session ID는 표시하지 않으며 전체 요청 원문, preview, tool input/output과 full workspace path도 숨긴다.
121
123
  4. Language selector에서 **English**, **한국어**, **Español**을 선택한다. 기본값은 영어이고 언어 전환 뒤에도 2초 refresh는 유지된다.
122
- 5. 앱의 Browser capability 또는 permission사용할 없으면 private localhost URL을 노출하거나 외부 browser를 여는 대신 실패를 안내한다.
124
+ 5. Monitor를 보는 동안 browser tab열어 둔다. 운영체제가 browser를 열지 못하면 private authenticated localhost URL을 출력하지 않고 실패를 안내한다.
123
125
 
124
- 오른쪽 live 화면을 닫았다면 Codex 앱 task에서 `@codex-agent-view`를 선택하고 `$show-agents`를 다시 명시 호출한다. 붙여 넣은 `@codex-agent-view $show-agents` 문자열이 skill 선택으로 재해석된다고 가정하지 않는다. 열린 tab은 일시 단절·monitor 재시작·upgrade 뒤에도 자동 재연결한다. 요청 실패 화면에는 **연결 다시 시도** 버튼이 있고, 인증이 거부되거나 사라진 화면에는 안 복구 안내와 현재 tab 인증을 다시 확인하는 버튼이 나타난다. 다만 페이지가 private credential을 스스로 발급하거나 복구할 수는 없으므로 재확인이 실패하면 Codex 앱에서 실제 `$show-agents` skill을 선택해 새 인증 화면을 연다. 복구에 terminal command, private URL 복사 또는 외부 browser는 필요 없다. 재시작된 monitor과거 event를 재생하지 않고 새 in-memory 관찰 window를 표시한다.
126
+ Browser tab을 닫았다면 `@codex-agent-view`를 다시 실행한다. Fixed 30분 family 동안 같은 tab은 recovery를 `sessionStorage`에만 보관하고 15분 access를 자동 갱신하며, 일시적인 page-level access 실패에 **다시 연결** button을 표시한다. 다른 tab이나 인증 이력이 없는 tab에는 recovery가 없고 family 만료 뒤에도 recovery는 무효다. 어느 경우든 `@codex-agent-view`를 다시 실행한다. 복구에 terminal command, private URL 복사, cookie 또는 CORS access는 필요 없다. Monitor restart는 새 in-memory 관찰 window를 시작하고 이전 process의 미사용 bootstrap을 즉시 무효화한다.
125
127
 
126
128
  ### 요구사항과 검증 범위
127
129
 
@@ -184,7 +186,7 @@ node bin/codex-agent-view.mjs install
184
186
 
185
187
  ### Maintainer·고급 진단 전용 CLI
186
188
 
187
- 이 절은 package 개발자와 문제 보고를 위한 진단 참고 자료이며 일반 사용자 사용법이 아니다. 설치가 끝난 사용자는 plugin 카드 또는 앱 picker에서 `@codex-agent-view`를 선택한 Codex 안에서 `$show-agents`를 명시 선택한다. 아래 명령과 localhost 주소를 정상 사용 순서에 넣거나 사용자에게 직접 관리하도록 요구하지 않는다.
189
+ 이 절은 package 개발자와 문제 보고를 위한 진단 참고 자료이며 일반 사용자 사용법이 아니다. 설치가 끝난 사용자는 `@codex-agent-view`를 실행하고 plugin이 browser tab을 사용한다. 아래 명령과 localhost 주소를 정상 사용 순서에 넣거나 사용자에게 직접 관리하도록 요구하지 않는다.
188
190
 
189
191
  Source checkout에서 local runtime을 별도로 검증해야 할 때만 다음처럼 실행할 수 있다.
190
192
 
@@ -214,16 +216,16 @@ Plugin enable/trust와 앱 재시작 뒤 생성되거나 재개되는 task는 tr
214
216
 
215
217
  ### npm 설치 명령 참고
216
218
 
217
- 아래 명령은 `0.4.7`을 exact version으로 설치한다.
219
+ 아래 명령은 미배포 `0.5.0` release candidate를 대상으로 하며 그 version publish된 뒤에만 동작한다. 그전까지 public npm `latest`는 historical `0.4.8`이다.
218
220
 
219
221
  ```bash
220
- npm install --global codex-agent-view@0.4.7
222
+ npm install --global codex-agent-view@0.5.0
221
223
  codex-agent-view install
222
224
  ```
223
225
 
224
- 명령 뒤에는 Codex 앱을 완전히 다시 열고 Plugins 화면에서 설치·활성화와 hook trust를 확인한 다음 새 task를 만든다. 첫 trusted hook이 backend 준비와 event 전달을 내부 처리하므로 사용자가 monitor CLI를 실행하지 않는다. Plugin 카드의 **지금 사용해보기**로 `@codex-agent-view`를 선택하고 앱에서 `$show-agents`를 명시 선택한다. Panel닫은 뒤에도 같은 방식으로 skill 다시 선택한다.
226
+ `0.5.0`이 publish되어 위 명령이 성공한 뒤에는 Codex 앱을 완전히 다시 열고 Plugins 화면에서 설치·활성화와 hook trust를 확인한 다음 새 task를 만든다. 첫 trusted hook이 backend 준비와 event 전달을 내부 처리하므로 사용자가 monitor CLI를 실행하지 않는다. `@codex-agent-view`를 실행해 기본 browser를 열고 tab닫았다면 다시 실행한다. Public `0.4.8`에는 기존 in-app skill 흐름이 남아 있다.
225
227
 
226
- `0.4.7` 설치 경로는 위의 global package 설치와 명시적인 `codex-agent-view install` command 조합이다. 이후 일반 사용은 Codex 안에서 진행한다. 이전의 유효한 설치에서 upgrade하면 installation-owned read-only viewer credential 유지하며, `0.4.3`에서 검증한 legacy `0.4.2` migration 동작도 그대로 보존한다. Token과 private URL은 출력하지 않는다.
228
+ Candidate `0.5.0` 설치 경로는 위의 global package 설치와 명시적인 `codex-agent-view install` command 조합이다. Upgrade의 explicit `install`은 authenticated maintenance lifecycle로 registration과 bundle을 교체한다. Installation-owned viewer credential historical migration 경계는 보존한다. Launch workflow는 persistent token을 출력하지 않고 viewer credential이나 runtime/control bearer를 browser target에 넣지 않는다.
227
229
 
228
230
  Version별 npm, install, migration, CI, tag와 GitHub Release evidence는 [docs/distribution.md](docs/distribution.md)에 보존한다. 각 evidence는 실제 확인한 뒤에만 갱신한다.
229
231
 
@@ -263,7 +265,7 @@ Source checkout을 직접 실행한 경우에만 같은 명령의 `node bin/code
263
265
 
264
266
  ### Maintainer troubleshooting
265
267
 
266
- 이 절의 CLI 확인은 명시적인 문제 조사용이다. 정상 사용자는 plugin 카드 또는 앱 picker에서 `@codex-agent-view`를 선택하고 `$show-agents`를 명시 선택한다.
268
+ 이 절의 CLI 확인은 명시적인 문제 조사용이다. 정상 사용자는 plugin 카드 또는 앱 picker에서 `@codex-agent-view`를 실행하고 plugin이 연 browser tab을 사용한다.
267
269
 
268
270
  #### `status`가 runtime file 또는 connection error를 출력함
269
271
 
package/README.md CHANGED
@@ -2,18 +2,18 @@
2
2
 
3
3
  > [Read in Korean](https://github.com/JunhoYoon95/codex-agent-view/blob/main/README.ko.md)
4
4
 
5
- Codex Agent View gives you a clear, read-only view of what Codex is working on and which agents are moving each work item forward. It stays inside the official Codex app, starts its local live connection through trusted hooks, and opens through the bundled **Show Agents** skill.
5
+ Codex Agent View gives you a clear, read-only view of what Codex is working on and which agents are moving each work item forward. Trusted Codex hooks keep the data local, while one `@codex-agent-view` invocation opens the monitor in your default web browser.
6
6
 
7
7
  > This is an unofficial community project. It is not an OpenAI product, affiliate, or officially supported project.
8
8
 
9
- ## Quick start: install once, then stay inside the Codex app
9
+ ## Quick start
10
10
 
11
- This README documents `codex-agent-view@0.4.7`. Use the exact-version command below for the one-time terminal installation.
11
+ Public npm `latest` remains historical `codex-agent-view@0.4.8`. Current source is the **unpublished `0.5.0` release candidate**: it removes the separate user-facing `$show-agents` selection and opens the local monitor in the default browser. The exact candidate command below will become usable only after `0.5.0` is published; do not treat this source document as registry availability evidence.
12
12
 
13
13
  Universal Plugins Directory search installation is not available yet, so use a regular terminal for the **initial installation only**:
14
14
 
15
15
  ```bash
16
- npm install --global codex-agent-view@0.4.7
16
+ npm install --global codex-agent-view@0.5.0
17
17
  codex-agent-view install
18
18
  ```
19
19
 
@@ -25,22 +25,24 @@ After installation:
25
25
  2. In the Codex app's **Plugins** screen, confirm that `Codex Agent View` is installed and enabled.
26
26
  3. If a hook-review screen is shown, inspect `hooks/hooks.json` and the `node "${PLUGIN_ROOT}/scripts/send-hook.mjs"` command, then explicitly trust the current definition. Use interactive Codex CLI `/hooks` only as part of installation when the app version does not expose hook review.
27
27
  4. After enablement and hook review, create a **new task** in the Codex app. Events that occurred before installation are not replayed.
28
- 5. On the plugin card, select **Quick start** to add only the `@codex-agent-view` plugin mention to a new Codex app task. The plugin card explains the next step; it does not append a starter prompt or pretend that plain text can dispatch a skill.
29
- 6. In that task, explicitly select or invoke the bundled `$show-agents` skill. If you close the live view, invoke `$show-agents` again from a task that has the `@codex-agent-view` plugin selected.
28
+ 5. Select the plugin card's **Quick start** action, or select `@codex-agent-view` in a Codex app task and send it. The current source starts or reuses the local monitor and opens an authenticated view in the operating system's default browser.
29
+ 6. Keep that browser tab open while monitoring. If you close it, invoke `@codex-agent-view` again; there is no separate skill to select and no localhost address to copy.
30
30
 
31
- **Quick start is not a skill invocation.** Codex plugin `interface.defaultPrompt` values are starter text, and text that looks like `$show-agents` is not guaranteed to be interpreted as a skill selection. Codex Agent View therefore defines no plugin-card starter prompt. Select the plugin with `@codex-agent-view`, then explicitly select `$show-agents` using the Codex app's skill UI. Routine use still requires neither a terminal command, an external browser, nor a localhost URL.
31
+ The bundle keeps one internal skill because that is the Codex plugin execution capability, but it is an implementation detail rather than a second user action. Users do not open a skill picker or type `$show-agents`. The plugin invocation launches the default browser itself after preparing a least-privilege local URL. Routine use requires neither a terminal command nor manual localhost URL management.
32
32
 
33
- When the first trusted hook arrives, the plugin sender internally prepares the local backend and retries delivery of that same event. Users do not register task IDs or run `start`, `status`, or `doctor`. **Show Agents** reuses the healthy backend and attempts to open the live view in the Codex app without exposing a tokenized localhost URL or using an external browser. If the app does not provide the required Browser capability or permission, the skill reports that it could not open the view instead of exposing a private URL.
33
+ When the first trusted hook arrives, the plugin sender internally prepares the local backend and retries delivery of that same event. Users do not register task IDs or run `start`, `status`, or `doctor`. The current launch capability runs `codex-agent-view open` exactly once; that command prepares or reuses the owned monitor, obtains a bounded viewer grant, and asks the operating system to open the authenticated local view in the default browser. Before sending the runtime bearer, the command verifies a fresh nonce/HMAC ownership proof from the exact owned monitor. It then obtains a one-time, 60-second bootstrap grant signed by that process's runtime token. Only that bounded grant enters the URL fragment: the installation-owned viewer credential and runtime/control token do not. Every request uses the exact `127.0.0.1:<port>` authority and origin-form target. No cookie, CORS access, or user-managed localhost URL is involved.
34
34
 
35
- The public Codex plugin API does not provide no-prompt app-start creation of a sidebar, panel, or Browser tab. Opening the live view therefore requires one explicit `$show-agents` skill selection inside the Codex app. Once the right-side live tab is open, it refreshes every two seconds and automatically reconnects after a temporary disconnect, monitor restart, or package upgrade when the backend returns on the same loopback origin. The task that invoked the live view is excluded using the app-provided `CODEX_THREAD_ID`, so the monitor does not keep promoting its own viewer task. The live observation window still resets when the monitor process restarts; only the read-only viewer credential survives.
35
+ The public Codex plugin API does not provide reliable automatic creation of an app sidebar, panel, or in-app Browser tab. The current source therefore uses the default external browser as the stable display surface. The bootstrap fixes one signed 30-minute credential-family expiry that access, recovery, and refresh can never extend. Fifteen-minute access credentials refresh automatically only inside that family, so the same tab remains connected until the family ends. Recovery is tab-scoped `sessionStorage`, not `localStorage`. A previously authenticated tab can therefore use **Reconnect** after a transient page-level failure. A new tab with no credential, or a tab whose family expired, cannot safely mint access; invoke `@codex-agent-view` again to open a newly authenticated view. The invoking task's validated `CODEX_THREAD_ID` remains signed into the family. A bootstrap is one-use within its issuing process and becomes invalid immediately when that monitor restarts; a family already exchanged under the persistent viewer signing key can reconnect on the same origin until its original absolute expiry.
36
36
 
37
37
  The live UI defaults to English and offers **English**, **Korean**, and **Spanish** in its language selector. Activity remains visible rather than hidden behind refresh-sensitive disclosure toggles, and the two-second polling interval is unchanged. Each work item can show its first valid short request summary derived from `UserPromptSubmit`: the sender inspects at most 4,096 characters, redacts common credentials, email addresses, links, and absolute paths, collapses the result to one line, bounds it to 180 characters, and immediately discards the full request. Later follow-ups do not replace that first valid summary. Verified `SubagentStart` payloads still provide only `agent_id` and `agent_type`; they do not provide a dedicated assignment description. The monitor therefore shows the work-level request summary but does not invent an agent-specific assignment from prompts or tool input.
38
38
 
39
- In short: install once in a terminal; perform snapshot queries, status checks, live-view opening, and all routine use inside the Codex app.
39
+ In short: install once in a terminal, invoke `@codex-agent-view` in Codex, and monitor in the browser tab it opens.
40
40
 
41
41
  ## Status
42
42
 
43
- Version `0.4.7` completes the lifecycle-correctness patch. In addition to terminal `SessionEnd`, late-event protection, and honest **End not confirmed** state, normal or late `SubagentStop` and `PostToolUse` events now refine the matching earlier start entry in recent activity to **Stopped** or **Completed**. A finished agent or tool therefore no longer leaves its prior recent-activity row falsely **Running**. It retains the app-native snapshot skill, privacy-minimized hooks, bounded in-memory reducer, local authenticated live backend, and explicit install/remove plus maintainer-diagnostic CLI commands.
43
+ Current source is the unpublished `0.5.0` external-browser launch release candidate. One `@codex-agent-view` invocation runs the bundle's internal capability, prepares the view, and opens the default browser; the user-facing `$show-agents` picker and app panel are no longer part of the workflow. Ownership is proven before the runtime bearer is sent, and the URL carries only a one-use, 60-second process-signed bootstrap grant. A fixed 30-minute signed family supports automatic 15-minute access refresh and tab-scoped recovery without extending the family deadline. Monitor restart invalidates only an unused bootstrap; an exchanged family can reconnect to the new in-memory observation window until its original expiry. Family expiry requires another `@codex-agent-view` invocation. Publication, public-artifact verification, and official app default-browser E2E are still pending.
44
+
45
+ Historical public `0.4.8` evidence: `npm run check` passed all 153 tests plus plugin validation and package dry-run. npm `latest` is `0.4.8`; the signed 25-file registry artifact, exact global installation, enabled plugin `0.4.8`, all nine hooks, healthy doctor result, main/tag CI, annotated tag, and public GitHub Release were verified. The official Codex app delivered an actual new subagent start/stop pair with ordered timestamps and final stopped status. Its historical in-app Browser flow also verified grant authentication, fragment removal, same-tab bare-root recovery, and no recovery button in a new tab. That release evidence does not validate the unpublished `0.5.0` external-browser candidate.
44
46
 
45
47
  Plugin installation and lifecycle payloads were verified with Homebrew Codex CLI and the Codex executable embedded in the official app. However, a real-use attempt that installed and enabled `0.2.0` in an already-running official app process delivered zero events while two subagents ran. The monitor, registration, enablement, and installed bundle were healthy, while app logs showed no sender invocation. Evidence indicates that the same process retained a pre-install `hooks/list` snapshot; persisted exact-hook trust is not exposed through CLI JSON, so the precise skip boundary remains unconfirmed.
46
48
 
@@ -62,7 +64,7 @@ Public `0.3.2`: npm version/`latest` at release time `0.3.2`, `gitHead` `4f4f92d
62
64
 
63
65
  Public `0.4.0` evidence at the time of that release: npm `latest`/version, Apache-2.0 license, executable mapping, registry signature, 25 files, package size `52614 B`, unpacked size `189181 B`, shasum `cc379e593f4cafa5dd56f32e6741eab5ba3f4497`, and exact SRI were verified. The registry tarball is byte-identical to the release tarball. npm metadata has no `gitHead` because the exact tarball was published, so source identity is not claimed through that field. The annotated `v0.4.0` tag points to release commit `11f7b0511a39c5f5a61cb6da7b91fb3b8e915c6b`; [GitHub Release v0.4.0](https://github.com/JunhoYoon95/codex-agent-view/releases/tag/v0.4.0) and both main/tag CI runs are public and successful. This machine was reinstalled from public exact `0.4.0`; CLI/plugin versions match, the plugin is installed/enabled, all nine hooks are wired, and the monitor reports real events across seven sessions. The Show Agents Browser request was queued in the app process that remained open during reinstall, but its tab was not observable, so exact visual-panel E2E is not claimed until a full app restart and new task.
64
66
 
65
- Known `0.4.0` issue: manifest `defaultPrompt: ["Show Agents"]` created a plain plugin-level text starter. That text did not invoke the `show-agents` skill, whose implicit invocation was disabled, so treating the plugin card or its Quick start action as skill execution was incorrect. Version `0.4.1` replaced it with the instructional starter `Open @ and select the bundled Show Agents skill.`, but that starter was still guidance rather than invocation. The current source removes plugin `interface.defaultPrompt` entirely: Quick start selects only `@codex-agent-view`, and the user explicitly selects `$show-agents` in the Codex app. Public registry and exact app E2E evidence for each release are claimed only where separately verified and recorded.
67
+ Known `0.4.0` issue: manifest `defaultPrompt: ["Show Agents"]` created a plain plugin-level text starter. That text did not invoke the `show-agents` skill, whose implicit invocation was disabled, so treating the plugin card or its Quick start action as skill execution was incorrect. Version `0.4.1` replaced it with the instructional starter `Open @ and select the bundled Show Agents skill.`, but that starter was still guidance rather than invocation. Public `0.4.8` later required explicit skill selection. The unreleased current source instead gives the plugin one internal launch capability and removes the user-facing skill-picker step. Public registry and exact app E2E evidence for each release are claimed only where separately verified and recorded.
66
68
 
67
69
  Public `0.4.1`: npm `latest`/version, Apache-2.0 license, executable mapping, registry signature, 25 files, package size `53650 B`, unpacked size `193424 B`, shasum `ee2ae0b8b36016f5c57bade067027202b1508d1d`, and integrity `sha512-WC4f5MPmvpkXeKM+1BVAYqW4+hoaUrB4yQFoUYgc0pnjyY7hP1CdSR5NJ3QWmvJ6Ikmmb1d+58UL4hkKoyhm1Q==` were verified. The release tarball and registry tarball are byte-identical. npm metadata has no `gitHead` because the exact tarball was published, so source identity is not claimed through that field. The annotated `v0.4.1` tag points to commit `a1de67be5413fa38b8dd1b62f74353463f6e641e`; [GitHub Release v0.4.1](https://github.com/JunhoYoon95/codex-agent-view/releases/tag/v0.4.1), main CI run `30710490358`, and tag CI run `30710848474` are public and successful. This machine has matching CLI/plugin `0.4.1`, the plugin is installed/enabled, and all nine hooks are wired. The runtime was cleanly stopped while installation replaced it, so it currently reports `monitor_not_running`; persisted hook trust remains `unknown`. Because the Codex app process predates installation, direct **Show Agents** visual E2E remains unverified until a full app restart and a new task.
68
70
 
@@ -76,11 +78,11 @@ Release commits `a7d938c` and `e2b0543` were pushed, and main CI run `3071361859
76
78
 
77
79
  Codex Agent View is a live companion, not a historical audit or session-replay product. Bounded in-memory state and reset-on-restart semantics are intentional: they keep privacy and failure boundaries small. SQLite or persistent history is not a missing requirement. Consider it only as a separate explicit opt-in feature if demonstrated user demand justifies retention, migration, deletion, and privacy costs.
78
80
 
79
- - The app-native current-task snapshot prioritizes explicit status and `subAgentActivity` from the official Codex app's built-in thread tools.
81
+ - Historical releases offered a separate app-native current-task snapshot that prioritized explicit status and `subAgentActivity` from the official Codex app's built-in thread tools. The current source consolidates user entry into the hook-backed browser monitor.
80
82
  - Hooks remain the source of truth for detailed lifecycle state in the trusted-hook auto-prepared local live backend. Its operational state exists only in bounded process memory; restart begins a new observation window. The separate private viewer credential is authentication metadata, not stored task history.
81
83
  - `Stop` marks the observed root turn and the session/work-item summary `completed` immediately. If a child agent or tool was still active, its own row is separately marked `completion_not_observed` because no child stop/tool completion signal was observed. `SessionEnd` has terminal priority; any child agent, tool, or permission still open at that point is shown as `interrupted`, not silently completed.
82
84
  - Official `SessionEnd` delivery may be delayed by up to 30 minutes. If no ending hook is observed while activity still appears open, five minutes without a new event changes it to `completion_not_observed` (**End not confirmed**), never inferred `completed`. This keeps a delayed or missing terminal event from turning stale activity into a false success.
83
- - The viewer credential is read-only and remains stable across monitor restarts and package upgrades during one installation. The runtime/control token remains separate and process-scoped.
85
+ - The installation-owned viewer credential remains private to local runtime files for ownership/legacy boundaries. The runtime/control token remains separate and process-scoped. The normal live-view URL contains neither credential; it contains only a one-use, process-signed 60-second bootstrap grant.
84
86
  - After installation, hook trust, and an app restart, the first trusted hook automatically prepares the backend. This prepares a local process; it does not create app UI without a user action.
85
87
  - There is no external telemetry, remote server, account, required SQLite/persistent event store, or remote control.
86
88
  - Full prompt text, transcript paths, full tool input/output, and assistant messages are not retained or displayed by the monitor. Only the bounded, redacted one-line work summary described above may be retained in process memory.
@@ -89,27 +91,27 @@ Codex Agent View is a live companion, not a historical audit or session-replay p
89
91
  - Missing, duplicated, or out-of-order events remain visible as empty, unknown, or degraded state instead of being guessed away.
90
92
  - The sender keeps its bounded retry and fail-open behavior. It has no disk-backed queue or persistent replay; an event that cannot be delivered within the hook budget is not replayed later.
91
93
 
92
- A separately launched Codex `0.146` App Server `thread/list` fallback was also tested. It reported both the current root and subagents as `notLoaded`, so it did not share the official app's live running/completed state. That separate process is not the same as the built-in thread tools exposed directly by the current official app; `0.3.0` uses the latter for its primary snapshot.
94
+ A separately launched Codex `0.146` App Server `thread/list` fallback was also tested. It reported both the current root and subagents as `notLoaded`, so it did not share the official app's live running/completed state. That separate process is not the same as the built-in thread tools exposed directly by the official app; historical `0.3.0` used the latter for its primary snapshot.
93
95
 
94
- ## The roles of npm, the Codex app live view, and the Plugins Directory
96
+ ## The roles of npm, the local browser view, and the Plugins Directory
95
97
 
96
- - The plugin card's **Quick start** action selects `@codex-agent-view` only. It does not append starter text or claim to dispatch a skill. Explicitly select `$show-agents` in the Codex app to open or reopen the live view; this requires neither starting a monitor nor registering task IDs.
98
+ - The current-source plugin card's **Quick start** action launches the same single-purpose flow as sending `@codex-agent-view`: prepare or reuse the local monitor, then open the authenticated view in the default browser. No user-facing skill picker, monitor command, or task-ID registration is required.
97
99
  - npm is the initial installation path that distributes the plugin bundle, its internal hook sender/runtime, and static UI to the user's machine.
98
- - The live view opens in the Codex app only after an explicit `$show-agents` skill invocation; it is not an external website or telemetry dashboard.
99
- - The public plugin API cannot create a sidebar, panel, or Browser tab without a prompt at app startup. The first live view needs one in-app skill selection; an already-open tab refreshes and reconnects across temporary disconnects, monitor restarts, and upgrades while the same installation-owned viewer credential and loopback origin remain available.
100
+ - The live view is a local-only page in the operating system's default browser, not a hosted website or telemetry dashboard. The plugin opens it; users do not copy its private localhost URL.
101
+ - The public plugin API cannot reliably create a sidebar, panel, or in-app Browser tab for this flow. A previously authenticated browser tab can reconnect after a transient failure within its fixed credential-family lifetime. A closed tab, a new tab with no credential, or an expired family is reopened safely by invoking `@codex-agent-view` again.
100
102
  - The Universal Plugins Directory does not replace npm. A public in-app custom UI path requires a public HTTPS MCP server and domain verification, which conflicts with this project's local-only, no-external-server boundary. Only a separate listing/skills submission remains under consideration; do not expect Directory search installation until review and publication actually finish.
101
103
 
102
- ## Use in the official Codex app — recommended
104
+ ## Use from the official Codex app — recommended
103
105
 
104
- Use this flow in a **new task** after completing installation and enablement in the quick start. It requires neither another terminal nor an external browser.
106
+ Use this flow in a **new task** after completing installation and enablement in the quick start. Codex initiates the action; the monitor itself stays open in the operating system's default browser.
105
107
 
106
- 1. Select **Quick start** on the Codex Agent View plugin card. This selects only `@codex-agent-view`; it does not submit a prompt or invoke a skill.
107
- 2. Explicitly select the bundled `$show-agents` skill in the Codex app. The skill reuses the backend prepared by trusted hooks, or prepares it internally when still absent, then attempts to open the live view in the app.
108
- 3. The panel excludes this invoking viewer task using `CODEX_THREAD_ID`, puts the remaining active work and participating agents first, and uses human-readable project, request-summary, agent, and status text. Session IDs are not shown. The full request, previews, tool input/output, and full workspace paths remain hidden.
108
+ 1. Select **Quick start** on the Codex Agent View plugin card, or select `@codex-agent-view` in a Codex app task and send it.
109
+ 2. The plugin's single internal execution capability reuses the backend prepared by trusted hooks, or prepares it when absent, then opens the authenticated live view in the default browser. There is no separate `$show-agents` selection.
110
+ 3. The page excludes this invoking viewer task using `CODEX_THREAD_ID`, puts the remaining active work and participating agents first, and uses human-readable project, request-summary, agent, and status text. Session IDs are not shown. The full request, previews, tool input/output, and full workspace paths remain hidden.
109
111
  4. Choose **English**, **Korean**, or **Spanish** from the language selector. English is the default, and changing language does not stop the two-second refresh.
110
- 5. If the app's Browser capability or permission is unavailable, the skill reports the failure without exposing a private localhost URL or opening an external browser.
112
+ 5. Leave the browser tab open while monitoring. If the operating system cannot open the browser, the plugin reports the failure without printing the private authenticated localhost URL.
111
113
 
112
- If you close the right-side live view, select `@codex-agent-view` and explicitly invoke `$show-agents` again in a Codex app task. Do not rely on a pasted `@codex-agent-view $show-agents` string being reparsed as a skill selection. An open tab refreshes and reconnects automatically after temporary disconnects, monitor restarts, and upgrades. If a request fails, the live view provides a **Retry connection** button. If authentication is rejected or missing, it also provides an in-app recovery explanation and a button to check the current tab again; because the page cannot mint or recover a private credential by itself, use the actual `$show-agents` skill in the Codex app to open a newly authenticated view when that check cannot succeed. No terminal command, private URL copy, or external browser is part of recovery. A restarted monitor presents a new in-memory observation window rather than replaying earlier activity.
114
+ If you close the browser tab, invoke `@codex-agent-view` again. During its fixed 30-minute family, the same tab keeps recovery only in `sessionStorage`, refreshes 15-minute access automatically, and offers **Reconnect** after a transient page-level failure. A different or never-authenticated tab has no recovery credential, and family expiry invalidates recovery; in either case, invoke `@codex-agent-view` again. No terminal command, private URL copy, cookie, or CORS access is part of recovery. A restarted monitor presents a new in-memory observation window; an unused bootstrap issued by the old process is immediately invalid.
113
115
 
114
116
  ## Requirements and tested versions
115
117
 
@@ -143,7 +145,7 @@ Review the installed plugin and `hooks/hooks.json`, inspect the `node "${PLUGIN_
143
145
 
144
146
  ## Maintainer and advanced diagnostics CLI
145
147
 
146
- This section is reference material for package maintainers and explicit troubleshooting. It is not the normal user workflow. After installation, users select `@codex-agent-view` from the plugin card or app picker, then explicitly select `$show-agents` inside the Codex app; do not make them manage these commands or localhost URLs.
148
+ This section is reference material for package maintainers and explicit troubleshooting. It is not the normal user workflow. After installation, users invoke `@codex-agent-view` once and use the browser tab opened by the plugin; do not make them manage these commands or localhost URLs.
147
149
 
148
150
  Only when validating the local runtime from a source checkout, a maintainer can start it without opening an operating-system browser:
149
151
 
@@ -166,16 +168,16 @@ After plugin enablement/trust and an app restart, the first trusted hook interna
166
168
 
167
169
  ## Install from npm
168
170
 
169
- The commands below install `0.4.7` by exact version.
171
+ The commands below target the unpublished `0.5.0` release candidate and will work only after that version is published. Public npm `latest` remains historical `0.4.8` until then.
170
172
 
171
173
  ```bash
172
- npm install --global codex-agent-view@0.4.7
174
+ npm install --global codex-agent-view@0.5.0
173
175
  codex-agent-view install
174
176
  ```
175
177
 
176
- After these two commands, fully reopen the Codex app, verify installation, enablement, and hook trust, then create a new task. The first trusted hook prepares the backend and delivers its event internally, so users do not run monitor CLI commands. Use the plugin card's **Quick start** action to select `@codex-agent-view`, then explicitly select `$show-agents` in the app. Repeat that explicit skill selection after closing the panel.
178
+ After `0.5.0` is published and these two commands succeed, fully reopen the Codex app, verify installation, enablement, and hook trust, then create a new task. The first trusted hook prepares the backend and delivers its event internally, so users do not run monitor CLI commands. Invoke `@codex-agent-view` once to open the default browser and invoke it again after closing the tab. Public `0.4.8` retains its historical in-app skill flow.
177
179
 
178
- The `0.4.7` installation path is the global package install followed by the explicit `codex-agent-view install` command above. Routine use remains inside the Codex app afterward. When upgrading an older valid installation, `install` preserves the installation-owned read-only viewer credential; the legacy `0.4.2` migration behavior remains as documented for `0.4.3`. Neither token nor the private URL is printed.
180
+ The candidate `0.5.0` installation path is the global package install followed by the explicit `codex-agent-view install` command above. During an upgrade, explicit `install` replaces registration and bundle files through the authenticated maintenance lifecycle. It preserves the installation-owned viewer credential and the historical migration boundary. The launch workflow prints no persistent token and puts neither the viewer credential nor runtime/control bearer in the browser target.
179
181
 
180
182
  Version-specific npm, install, migration, CI, tag, and GitHub Release evidence is preserved in [Distribution](docs/distribution.md). That evidence is updated only after each item is actually verified.
181
183