codex-agent-view 0.4.6 → 0.4.7
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.
- package/.codex-plugin/plugin.json +1 -1
- package/README.ko.md +6 -6
- package/README.md +6 -6
- package/package.json +1 -1
- package/src/core/monitor-store.mjs +37 -0
package/README.ko.md
CHANGED
|
@@ -10,10 +10,10 @@ Codex Agent View는 Codex가 지금 어떤 작업을 수행하고 있고 어떤
|
|
|
10
10
|
|
|
11
11
|
### 빠른 시작: 설치 후에는 Codex 앱 안에서만 사용
|
|
12
12
|
|
|
13
|
-
이 README는 `codex-agent-view@0.4.
|
|
13
|
+
이 README는 `codex-agent-view@0.4.7` 사용법을 설명한다. **최초 설치만** 일반 터미널에서 아래 exact-version 명령으로 진행한다.
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install --global codex-agent-view@0.4.
|
|
16
|
+
npm install --global codex-agent-view@0.4.7
|
|
17
17
|
codex-agent-view install
|
|
18
18
|
```
|
|
19
19
|
|
|
@@ -40,7 +40,7 @@ Live UI의 기본 언어는 영어이며 language selector에서 **English**, **
|
|
|
40
40
|
|
|
41
41
|
### 현재 상태
|
|
42
42
|
|
|
43
|
-
`0.4.
|
|
43
|
+
`0.4.7`은 lifecycle 정확성 patch를 완성한다. `SessionEnd` 최종 우선순위, 늦은 event 차단과 정직한 **종료 미확인** 표시에 더해, 정상 또는 늦게 도착한 `SubagentStop`과 `PostToolUse`가 recent activity의 대응 start 항목을 **중지됨** 또는 **완료**로 갱신한다. 따라서 종료된 agent나 tool의 이전 recent activity가 잘못 **실행 중**으로 남지 않는다. 아래의 기존 제품 구성은 그대로 유지한다.
|
|
44
44
|
|
|
45
45
|
- 공식 Codex 앱의 내장 thread tools를 우선 사용하는 app-native active-task snapshot skill
|
|
46
46
|
- `.codex-plugin/plugin.json`, local marketplace catalog, genuine Codex skill
|
|
@@ -214,16 +214,16 @@ Plugin enable/trust와 앱 재시작 뒤 생성되거나 재개되는 task는 tr
|
|
|
214
214
|
|
|
215
215
|
### npm 설치 명령 참고
|
|
216
216
|
|
|
217
|
-
아래 명령은 `0.4.
|
|
217
|
+
아래 명령은 `0.4.7`을 exact version으로 설치한다.
|
|
218
218
|
|
|
219
219
|
```bash
|
|
220
|
-
npm install --global codex-agent-view@0.4.
|
|
220
|
+
npm install --global codex-agent-view@0.4.7
|
|
221
221
|
codex-agent-view install
|
|
222
222
|
```
|
|
223
223
|
|
|
224
224
|
이 두 명령 뒤에는 Codex 앱을 완전히 다시 열고 Plugins 화면에서 설치·활성화와 hook trust를 확인한 다음 새 task를 만든다. 첫 trusted hook이 backend 준비와 event 전달을 내부 처리하므로 사용자가 monitor CLI를 실행하지 않는다. Plugin 카드의 **지금 사용해보기**로 `@codex-agent-view`를 선택하고 앱에서 `$show-agents`를 명시 선택한다. Panel을 닫은 뒤에도 같은 방식으로 skill을 다시 선택한다.
|
|
225
225
|
|
|
226
|
-
`0.4.
|
|
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은 출력하지 않는다.
|
|
227
227
|
|
|
228
228
|
Version별 npm, install, migration, CI, tag와 GitHub Release evidence는 [docs/distribution.md](docs/distribution.md)에 보존한다. 각 evidence는 실제 확인한 뒤에만 갱신한다.
|
|
229
229
|
|
package/README.md
CHANGED
|
@@ -8,12 +8,12 @@ Codex Agent View gives you a clear, read-only view of what Codex is working on a
|
|
|
8
8
|
|
|
9
9
|
## Quick start: install once, then stay inside the Codex app
|
|
10
10
|
|
|
11
|
-
This README documents `codex-agent-view@0.4.
|
|
11
|
+
This README documents `codex-agent-view@0.4.7`. Use the exact-version command below for the one-time terminal installation.
|
|
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.
|
|
16
|
+
npm install --global codex-agent-view@0.4.7
|
|
17
17
|
codex-agent-view install
|
|
18
18
|
```
|
|
19
19
|
|
|
@@ -40,7 +40,7 @@ In short: install once in a terminal; perform snapshot queries, status checks, l
|
|
|
40
40
|
|
|
41
41
|
## Status
|
|
42
42
|
|
|
43
|
-
Version `0.4.
|
|
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.
|
|
44
44
|
|
|
45
45
|
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
46
|
|
|
@@ -166,16 +166,16 @@ After plugin enablement/trust and an app restart, the first trusted hook interna
|
|
|
166
166
|
|
|
167
167
|
## Install from npm
|
|
168
168
|
|
|
169
|
-
The commands below install `0.4.
|
|
169
|
+
The commands below install `0.4.7` by exact version.
|
|
170
170
|
|
|
171
171
|
```bash
|
|
172
|
-
npm install --global codex-agent-view@0.4.
|
|
172
|
+
npm install --global codex-agent-view@0.4.7
|
|
173
173
|
codex-agent-view install
|
|
174
174
|
```
|
|
175
175
|
|
|
176
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.
|
|
177
177
|
|
|
178
|
-
The `0.4.
|
|
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.
|
|
179
179
|
|
|
180
180
|
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
181
|
|
package/package.json
CHANGED
|
@@ -232,6 +232,27 @@ function addActivity(session, event, status, limit) {
|
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
function refineUnresolvedStartActivity(
|
|
236
|
+
session,
|
|
237
|
+
{ type, idField, id, status },
|
|
238
|
+
) {
|
|
239
|
+
const unresolvedStatuses = new Set([
|
|
240
|
+
"running",
|
|
241
|
+
"completion_not_observed",
|
|
242
|
+
"interrupted",
|
|
243
|
+
]);
|
|
244
|
+
for (const activity of session.recent_activities) {
|
|
245
|
+
if (
|
|
246
|
+
activity.type === type &&
|
|
247
|
+
activity[idField] === id &&
|
|
248
|
+
unresolvedStatuses.has(activity.status)
|
|
249
|
+
) {
|
|
250
|
+
activity.status = status;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
235
256
|
function applySessionEvent(session, event, limits) {
|
|
236
257
|
const lifecycle = session.lifecycle;
|
|
237
258
|
if (event.type === "session_started") {
|
|
@@ -377,6 +398,14 @@ function applySubagentEvent(session, event, limits) {
|
|
|
377
398
|
agent.stopped_at_ms = event.received_at_ms;
|
|
378
399
|
agent.status = agent.start_observed ? "stopped" : "stopped_without_start";
|
|
379
400
|
agent.has_out_of_order_events = !agent.start_observed;
|
|
401
|
+
if (agent.start_observed) {
|
|
402
|
+
refineUnresolvedStartActivity(session, {
|
|
403
|
+
type: "subagent_started",
|
|
404
|
+
idField: "agent_id",
|
|
405
|
+
id: event.agent_id,
|
|
406
|
+
status: "stopped",
|
|
407
|
+
});
|
|
408
|
+
}
|
|
380
409
|
}
|
|
381
410
|
|
|
382
411
|
agent.agent_type = event.agent_type;
|
|
@@ -430,6 +459,14 @@ function applyToolEvent(session, event, limits) {
|
|
|
430
459
|
tool.status = tool.start_observed ? "completed" : "completed_without_start";
|
|
431
460
|
tool.has_out_of_order_events = !tool.start_observed;
|
|
432
461
|
activityStatus = tool.status;
|
|
462
|
+
if (tool.start_observed) {
|
|
463
|
+
refineUnresolvedStartActivity(session, {
|
|
464
|
+
type: "tool_started",
|
|
465
|
+
idField: "tool_use_id",
|
|
466
|
+
id: event.tool_use_id,
|
|
467
|
+
status: "completed",
|
|
468
|
+
});
|
|
469
|
+
}
|
|
433
470
|
|
|
434
471
|
const permission = session.permission;
|
|
435
472
|
if (
|