codex-agent-view 0.5.0 → 0.5.1

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,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-agent-view",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
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",
package/README.ko.md CHANGED
@@ -10,7 +10,7 @@ Codex Agent View는 Codex가 지금 어떤 작업을 수행하고 있고 어떤
10
10
 
11
11
  ### 빠른 시작
12
12
 
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 공개 증거로 취급하지 않는다.
13
+ Public npm `latest`는 `codex-agent-view@0.5.0`이다. Current source는 같은 단일 실행·기본 브라우저 workflow를 유지하면서 task summary만들기 전에 자동 `in-app-browser-context` wrapper를 제거하는 **미배포 `0.5.1` patch candidate**다. 아래 설치 명령은 검증된 public `0.5.0`을 대상으로 하며 `0.5.1` 공개를 뜻하지 않는다.
14
14
 
15
15
  ```bash
16
16
  npm install --global codex-agent-view@0.5.0
@@ -40,9 +40,11 @@ Live UI의 기본 언어는 영어이며 language selector에서 **English**, **
40
40
 
41
41
  ### 현재 상태
42
42
 
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는 아직 남아 있다.
43
+ 현재 source는 미배포 `0.5.1` ambient-wrapper removal patch candidate다. Public `0.5.0`의 실행·인증 설계는 그대로 유지한다. `@codex-agent-view` 한 번이 bundle의 내부 capability를 실행해 view를 준비하고 기본 browser를 열며, 사용자용 `$show-agents` picker와 앱 panel은 사용 흐름에 없다. patch는 original prompt의 4,096자로 inspection을 제한한 닫힌 exact leading `in-app-browser-context` blockredaction 전에 제거해 ambient UI state가 사용자의 요청 작업으로 표시되지 않게 한다. `0.5.1` publish, tag, GitHub Release, public artifact 검증과 수정 후 공식 앱 E2E는 아직 남아 있다.
44
44
 
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의 검증 근거가 아니다.
45
+ Historical public `0.5.0` evidence: npm `latest`는 `0.5.0`이다. Signature가 있는 23-file registry artifact shasum은 `bf89ee665840e62d502551d87d7faaed2a1e0206`, integrity는 `sha512-W8rOv+0Xb5SVsFl/kXHF/vt9CJ/Su0rwDWVFWLWYWhKidZTxx+ea9Z0dtd65k3KBxucLRuwMOUJL3BtHr2p2Dw==`, SHA-256은 `e23c4ea484fa6186c17f2c564b5019a08eb6acca10f99fc85bf95e2f2757bc2c`다. Main CI `30816426733`은 Node.js 18/20/22에서 통과했다. 기기에 public exact `0.5.0`을 재설치해 CLI/plugin version 일치, hook wiring 9종과 `events_received: true`를 확인했다. 공식 앱은 실제 subagent start/stop 전달했고 최종 상태는 `stopped`였다.E2E에서 자동 `in-app-browser-context` text가 task summary에 섞이는 결함도 확인했으며 `0.5.1`은bounded defect를 수정한다. `v0.5.0` tag와 GitHub Release는 아직 생성하지 않았다.
46
+
47
+ Historical public `0.4.8` evidence로 `npm run check` 153개 test, plugin validation과 package dry-run을 통과했다. Release 당시 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는 current `0.5.1` patch candidate의 검증 근거가 아니다.
46
48
 
47
49
  - `@codex-agent-view`/Quick start를 default-browser `open` 1회로 routing하는 내부 launch skill
48
50
  - `.codex-plugin/plugin.json`, local marketplace catalog, single genuine Codex skill
@@ -216,16 +218,16 @@ Plugin enable/trust와 앱 재시작 뒤 생성되거나 재개되는 task는 tr
216
218
 
217
219
  ### npm 설치 명령 참고
218
220
 
219
- 아래 명령은 미배포 `0.5.0` release candidate를 대상으로 하며 version이 publish된 뒤에만 동작한다. 그전까지 public npm `latest`는 historical `0.4.8`이다.
221
+ 아래 명령은 검증된 public npm `latest`인 `0.5.0`을 설치한다. Current source는 별도의 미배포 `0.5.1` ambient-wrapper removal patch candidate다.
220
222
 
221
223
  ```bash
222
224
  npm install --global codex-agent-view@0.5.0
223
225
  codex-agent-view install
224
226
  ```
225
227
 
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 흐름이 남아 있다.
228
+ 위 두 명령이 성공한 뒤에는 Codex 앱을 완전히 다시 열고 Plugins 화면에서 설치·활성화와 hook trust를 확인한 다음 새 task를 만든다. 첫 trusted hook이 backend 준비와 event 전달을 내부 처리하므로 사용자가 monitor CLI를 실행하지 않는다. `@codex-agent-view`를 한 번 실행해 기본 browser를 열고 tab을 닫았다면 다시 실행한다.
227
229
 
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에 넣지 않는다.
230
+ Public `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에 넣지 않는다.
229
231
 
230
232
  Version별 npm, install, migration, CI, tag와 GitHub Release evidence는 [docs/distribution.md](docs/distribution.md)에 보존한다. 각 evidence는 실제 확인한 뒤에만 갱신한다.
231
233
 
package/README.md CHANGED
@@ -8,7 +8,7 @@ Codex Agent View gives you a clear, read-only view of what Codex is working on a
8
8
 
9
9
  ## Quick start
10
10
 
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.
11
+ Public npm `latest` is `codex-agent-view@0.5.0`. Current source is the **unpublished `0.5.1` patch candidate**: it keeps the same one-invocation default-browser workflow while removing automatic `in-app-browser-context` wrapper text before deriving a task summary. The install command below targets the verified public `0.5.0`; it does not claim that `0.5.1` is available.
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
 
@@ -40,9 +40,11 @@ In short: install once in a terminal, invoke `@codex-agent-view` in Codex, and m
40
40
 
41
41
  ## Status
42
42
 
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.
43
+ Current source is the unpublished `0.5.1` ambient-wrapper removal patch candidate. It preserves the public `0.5.0` launch and authentication design: 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 not part of the workflow. After bounding inspection to the original prompt's first 4,096 characters, the patch removes a closed exact leading `in-app-browser-context` block before redaction so ambient UI state is not presented as the user's requested work. Publication, tag, GitHub Release, public-artifact verification, and an official fixed E2E for `0.5.1` are still pending.
44
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.
45
+ Historical public `0.5.0` evidence: npm `latest` is `0.5.0`. The signed 23-file registry artifact has shasum `bf89ee665840e62d502551d87d7faaed2a1e0206`, integrity `sha512-W8rOv+0Xb5SVsFl/kXHF/vt9CJ/Su0rwDWVFWLWYWhKidZTxx+ea9Z0dtd65k3KBxucLRuwMOUJL3BtHr2p2Dw==`, and SHA-256 `e23c4ea484fa6186c17f2c564b5019a08eb6acca10f99fc85bf95e2f2757bc2c`. Main CI `30816426733` passed on Node.js 18, 20, and 22. This machine was reinstalled from public exact `0.5.0`; the CLI/plugin version matched, all nine hooks were wired, and `events_received: true`. The official app delivered an actual subagent start/stop pair with final status `stopped`. That E2E also exposed automatic `in-app-browser-context` text in the task summary, which is the bounded defect addressed by `0.5.1`. No `v0.5.0` tag or GitHub Release has been created yet.
46
+
47
+ Historical public `0.4.8` evidence: `npm run check` passed all 153 tests plus plugin validation and package dry-run. npm `latest` was `0.4.8` at release time; 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 current `0.5.1` patch candidate.
46
48
 
47
49
  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.
48
50
 
@@ -168,16 +170,16 @@ After plugin enablement/trust and an app restart, the first trusted hook interna
168
170
 
169
171
  ## Install from npm
170
172
 
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.
173
+ The commands below install the verified public npm `latest`, `0.5.0`. Current source is the separate unpublished `0.5.1` ambient-wrapper removal patch candidate.
172
174
 
173
175
  ```bash
174
176
  npm install --global codex-agent-view@0.5.0
175
177
  codex-agent-view install
176
178
  ```
177
179
 
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.
180
+ After 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.
179
181
 
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.
182
+ The public `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.
181
183
 
182
184
  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.
183
185
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-agent-view",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Follow Codex work and participating agent progress in a clear, read-only live view opened from the official Codex app.",
5
5
  "type": "module",
6
6
  "main": "./src/core/index.mjs",
@@ -23,6 +23,10 @@ const MAX_LABEL_LENGTH = 256;
23
23
  const MAX_WORKSPACE_LABEL_LENGTH = 120;
24
24
  const MAX_PROMPT_INSPECTION_LENGTH = 4_096;
25
25
  const MAX_TASK_SUMMARY_LENGTH = 180;
26
+ const AMBIENT_BROWSER_CONTEXT_OPEN =
27
+ '<in-app-browser-context source="ambient-ui-state">';
28
+ const AMBIENT_BROWSER_CONTEXT_CLOSE = "</in-app-browser-context>";
29
+ const USER_REQUEST_DELIMITER = "## My request for Codex:";
26
30
  const CONTROL_CHARACTERS = /[\u0000-\u001f\u007f-\u009f]/;
27
31
  const CONTROL_CHARACTERS_GLOBAL = /[\u0000-\u001f\u007f-\u009f]/g;
28
32
 
@@ -120,6 +124,35 @@ function replaceAbsolutePaths(value) {
120
124
  .replace(POSIX_ABSOLUTE_PATH, (_match, prefix) => `${prefix}[path]`);
121
125
  }
122
126
 
127
+ function stripLeadingAmbientBrowserContext(value) {
128
+ const withoutLeadingWhitespace = value.trimStart();
129
+ if (!withoutLeadingWhitespace.startsWith(AMBIENT_BROWSER_CONTEXT_OPEN)) {
130
+ return value;
131
+ }
132
+
133
+ const closeAt = withoutLeadingWhitespace.indexOf(
134
+ AMBIENT_BROWSER_CONTEXT_CLOSE,
135
+ AMBIENT_BROWSER_CONTEXT_OPEN.length,
136
+ );
137
+ if (closeAt === -1) {
138
+ return null;
139
+ }
140
+
141
+ const remainder = withoutLeadingWhitespace.slice(
142
+ closeAt + AMBIENT_BROWSER_CONTEXT_CLOSE.length,
143
+ );
144
+ const delimiterCandidate = remainder.trimStart();
145
+ if (!delimiterCandidate.startsWith(USER_REQUEST_DELIMITER)) {
146
+ return remainder;
147
+ }
148
+
149
+ const afterDelimiter = delimiterCandidate.slice(USER_REQUEST_DELIMITER.length);
150
+ if (afterDelimiter.length > 0 && !/^[\r\n]/u.test(afterDelimiter)) {
151
+ return remainder;
152
+ }
153
+ return afterDelimiter;
154
+ }
155
+
123
156
  /**
124
157
  * Derive a short, display-safe hint from an untrusted UserPromptSubmit prompt.
125
158
  * The caller must discard the raw prompt after this synchronous derivation.
@@ -129,8 +162,14 @@ export function deriveTaskSummary(value) {
129
162
  return null;
130
163
  }
131
164
 
132
- let summary = value
133
- .slice(0, MAX_PROMPT_INSPECTION_LENGTH)
165
+ const summaryCandidate = stripLeadingAmbientBrowserContext(
166
+ value.slice(0, MAX_PROMPT_INSPECTION_LENGTH),
167
+ );
168
+ if (summaryCandidate === null) {
169
+ return null;
170
+ }
171
+
172
+ let summary = summaryCandidate
134
173
  .replace(PRIVATE_KEY_BLOCK, "[credential]")
135
174
  .replace(CONTROL_CHARACTERS_GLOBAL, " ")
136
175
  .replace(URL, "[link]")