@scotthuang/agent-knock-knock 0.14.0 → 0.14.2
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/CHANGELOG.md +25 -0
- package/README.md +11 -8
- package/dist/src/backend-public-progress.d.ts +38 -0
- package/dist/src/backend-public-progress.js +106 -0
- package/dist/src/backend-public-progress.js.map +1 -0
- package/dist/src/backend-recovery-semantic.js +5 -5
- package/dist/src/backend-recovery-semantic.js.map +1 -1
- package/dist/src/backend-task-recovery.js +2 -1
- package/dist/src/backend-task-recovery.js.map +1 -1
- package/dist/src/cli-core.js +2 -2
- package/dist/src/cli-core.js.map +1 -1
- package/dist/src/codex-app-server-read-client.d.ts +3 -0
- package/dist/src/codex-app-server-read-client.js.map +1 -1
- package/dist/src/codex-async-question-adapter.js +18 -9
- package/dist/src/codex-async-question-adapter.js.map +1 -1
- package/dist/src/codex-lifecycle-compatibility.d.ts +1 -1
- package/dist/src/codex-lifecycle-compatibility.js +5 -3
- package/dist/src/codex-lifecycle-compatibility.js.map +1 -1
- package/dist/src/codex-native-cli-adapter.js +55 -9
- package/dist/src/codex-native-cli-adapter.js.map +1 -1
- package/dist/src/codex-native-client-rpc.js +5 -1
- package/dist/src/codex-native-client-rpc.js.map +1 -1
- package/dist/src/codex-native-client.js +14 -8
- package/dist/src/codex-native-client.js.map +1 -1
- package/dist/src/codex-native-public-projection.d.ts +2 -0
- package/dist/src/codex-native-public-projection.js +8 -4
- package/dist/src/codex-native-public-projection.js.map +1 -1
- package/dist/src/codex-native-task-service.js +2 -1
- package/dist/src/codex-native-task-service.js.map +1 -1
- package/dist/src/codex-native-types.d.ts +4 -2
- package/dist/src/codex-native-types.js.map +1 -1
- package/dist/src/codex-permission-surface.d.ts +2 -2
- package/dist/src/codex-permission-surface.js +62 -4
- package/dist/src/codex-permission-surface.js.map +1 -1
- package/dist/src/codex-status-history-navigation.js +2 -6
- package/dist/src/codex-status-history-navigation.js.map +1 -1
- package/dist/src/codex-terminal-agent-adapter.d.ts +1 -0
- package/dist/src/codex-terminal-agent-adapter.js +10 -5
- package/dist/src/codex-terminal-agent-adapter.js.map +1 -1
- package/dist/src/desktop-cli-adapter.js +25 -4
- package/dist/src/desktop-cli-adapter.js.map +1 -1
- package/dist/src/desktop-snapshot.js +5 -0
- package/dist/src/desktop-snapshot.js.map +1 -1
- package/dist/src/desktop-task-recovery.js +2 -1
- package/dist/src/desktop-task-recovery.js.map +1 -1
- package/dist/src/desktop-task-service.js +2 -1
- package/dist/src/desktop-task-service.js.map +1 -1
- package/dist/src/desktop-types.d.ts +2 -0
- package/dist/src/desktop-types.js.map +1 -1
- package/dist/src/monitor-deadline-policy.d.ts +8 -0
- package/dist/src/monitor-deadline-policy.js +16 -0
- package/dist/src/monitor-deadline-policy.js.map +1 -0
- package/dist/src/semantic-tool-command-helpers.js +1 -1
- package/dist/src/semantic-tool-command-helpers.js.map +1 -1
- package/dist/src/semantic-tool-descriptions.js +4 -1
- package/dist/src/semantic-tool-descriptions.js.map +1 -1
- package/dist/src/semantic-tool-runtime.js +23 -3
- package/dist/src/semantic-tool-runtime.js.map +1 -1
- package/dist/src/terminal-command-cli-adapter.js +4 -4
- package/dist/src/terminal-command-cli-adapter.js.map +1 -1
- package/dist/src/terminal-command-dispatch-preparation.js +2 -1
- package/dist/src/terminal-command-dispatch-preparation.js.map +1 -1
- package/dist/src/terminal-model-control-profile.d.ts +2 -1
- package/dist/src/terminal-model-control-profile.js +5 -2
- package/dist/src/terminal-model-control-profile.js.map +1 -1
- package/dist/src/terminal-monitor-launch-plan.js +3 -2
- package/dist/src/terminal-monitor-launch-plan.js.map +1 -1
- package/dist/src/terminal-monitor-supervision-cli-adapter.js +2 -2
- package/dist/src/terminal-monitor-supervision-cli-adapter.js.map +1 -1
- package/dist/src/terminal-native-inspection-profile.js +2 -0
- package/dist/src/terminal-native-inspection-profile.js.map +1 -1
- package/dist/src/terminal-permission-control-bridge.js +1 -1
- package/dist/src/terminal-permission-control-bridge.js.map +1 -1
- package/dist/src/terminal-permission-control-list-projection.d.ts +1 -1
- package/dist/src/terminal-permission-control.js +1 -1
- package/dist/src/terminal-permission-control.js.map +1 -1
- package/dist/src/terminal-questionnaire-adapter.js +10 -5
- package/dist/src/terminal-questionnaire-adapter.js.map +1 -1
- package/dist/src/terminal-submission-retry-reconciliation.js +2 -2
- package/dist/src/terminal-submission-retry-reconciliation.js.map +1 -1
- package/dist/src/terminal-watch-cli-adapter.js +4 -4
- package/dist/src/terminal-watch-cli-adapter.js.map +1 -1
- package/docs/backend-task-recovery.md +9 -0
- package/docs/codex-0.162.1-compatibility.md +198 -0
- package/docs/codex-cli-native-compatibility.md +10 -7
- package/docs/openclaw-operations.md +1 -1
- package/docs/operator-guide.md +29 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/templates/openclaw-skills/agent-knock-knock/SKILL.md +2 -2
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Codex CLI 0.162.1 compatibility
|
|
2
|
+
|
|
3
|
+
AKK 0.14.2 adapts the Codex CLI 0.162.1 frontend and reviews its shared
|
|
4
|
+
app-server contract. This is an operation-specific compatibility review, not a
|
|
5
|
+
new numeric minimum or a promise that future Codex versions use the same UI.
|
|
6
|
+
The [CLI direct-control guide](codex-cli-native-compatibility.md) describes the
|
|
7
|
+
separate shared-backend route, which does not need tmux or Herdr.
|
|
8
|
+
|
|
9
|
+
## Native status and error contract
|
|
10
|
+
|
|
11
|
+
Codex changed the `/status` informational usage link from
|
|
12
|
+
`https://chatgpt.com/codex/settings/usage` to
|
|
13
|
+
`https://chatgpt.com/settings/usage`. AKK previously accepted only the old
|
|
14
|
+
complete line. A real 0.162.1 inspection dispatched `/status` once and displayed
|
|
15
|
+
the correct native session, but AKK could not prove the fresh complete result
|
|
16
|
+
because its closed card parser rejected that new line.
|
|
17
|
+
|
|
18
|
+
The recorded error was that Enter had been dispatched exactly once without a
|
|
19
|
+
proven fresh exact result. The controller's later JSON parse error was
|
|
20
|
+
secondary: the semantic tool had thrown that failure and the Host presented a
|
|
21
|
+
plain-text error. It was not evidence of malformed app-server JSON.
|
|
22
|
+
|
|
23
|
+
Both complete-card parsing and bounded clipped-history recovery now accept
|
|
24
|
+
the two exact official informational lines. They still reject unknown prose,
|
|
25
|
+
duplicate or malformed identity fields, stale cards, changed versions and
|
|
26
|
+
unproven closing surfaces. The usage link is never identity evidence.
|
|
27
|
+
|
|
28
|
+
Native-inspection execution failures now retain JSON `content` and `details`
|
|
29
|
+
with `isError: true`, `error_code: "AKK_NATIVE_INSPECTION_FAILED"`, a sanitized
|
|
30
|
+
diagnostic, `do_not_retry: true` and `safe_to_retry: false`. A failure to parse
|
|
31
|
+
the result does not prove that terminal input never happened. Parameter
|
|
32
|
+
validation and abort semantics, CLI exit status and stderr remain unchanged.
|
|
33
|
+
|
|
34
|
+
## Terminal interaction contracts
|
|
35
|
+
|
|
36
|
+
The 0.162.1 macOS asynchronous question surface uses `⇧←`/`⇧→` and `⌃]`
|
|
37
|
+
instead of the older textual Shift/Control hints. AKK uses a distinct exact
|
|
38
|
+
profile, including complete footer and question-identity checks. Older
|
|
39
|
+
frontends keep their own grammar; mixed, clipped or unknown keymaps never
|
|
40
|
+
authorize input. Native status may recognize closed queue hints as display
|
|
41
|
+
information without granting answer authority.
|
|
42
|
+
|
|
43
|
+
The model and built-in permission menus receive an exact 0.162.1 profile.
|
|
44
|
+
Model inspection retains the mandatory single current-model marker and exact
|
|
45
|
+
scope footer; a missing default badge does not invent a persisted default.
|
|
46
|
+
Permission selection retains same-thread, same-catalog and effective-result
|
|
47
|
+
checks, including the native Full Access confirmation. Backend per-thread
|
|
48
|
+
permissions and terminal menu actions remain separate capabilities.
|
|
49
|
+
|
|
50
|
+
The dedicated live check also found a second UI change: Full Access confirmation
|
|
51
|
+
moved from an inline picker to a centered 72-column overlay with transcript and
|
|
52
|
+
composer content still visible behind it. Its warning and choices did not
|
|
53
|
+
change. The old tail-only parser correctly stopped before confirming because
|
|
54
|
+
it could not prove that new surface. The 0.162.1 adapter now recognizes the
|
|
55
|
+
exact version-bound styled rectangle, full warning, both choices and selected
|
|
56
|
+
row, while retaining fresh-frame and terminal identity checks. Ambiguous
|
|
57
|
+
background column widths or control sequences still fail closed.
|
|
58
|
+
|
|
59
|
+
Blocking `request_user_input` has its own 0.162.1 v5 profile. Its multi-question
|
|
60
|
+
free-text footer uses the exact `⌃p / ⌃n change question` spelling; the
|
|
61
|
+
canonical Other option's notes description remains unchanged. The reviewed
|
|
62
|
+
ordinary option, free-text, notes and unanswered-confirmation upstream snapshots
|
|
63
|
+
are unchanged from 0.160.0. Regressions cover the new wrapped footer,
|
|
64
|
+
profile-bound interaction IDs and rejection of secrets, mixed keymaps and
|
|
65
|
+
changed submit instructions. This source/regression evidence is separate from
|
|
66
|
+
the live question paths listed below.
|
|
67
|
+
|
|
68
|
+
## Backend protocol review
|
|
69
|
+
|
|
70
|
+
The retained official binaries generated 875 experimental TypeScript schema
|
|
71
|
+
files for 0.160.0 and 888 for 0.162.1: 13 added, 23 changed and none removed.
|
|
72
|
+
The complete schema sets are not identical. The reviewed core schemas for
|
|
73
|
+
initialization, thread identity/status, loaded-thread listing, thread reads,
|
|
74
|
+
paged turn/item reads, resume, settings updates, steering, command/file
|
|
75
|
+
approval, user input, model listing and interruption are byte-identical.
|
|
76
|
+
Schema or source agreement does not replace runtime response validation or
|
|
77
|
+
prove that a mutation succeeded.
|
|
78
|
+
|
|
79
|
+
The additive changes include `Turn.rootTurnId`, optional `parentTurnId` and
|
|
80
|
+
`rootTurnId` on turn start, `MessagePhase.partial_answer`, and model/effort
|
|
81
|
+
metadata on sub-agent activity. Existing parsers tolerate these additions
|
|
82
|
+
without treating them as new authority.
|
|
83
|
+
|
|
84
|
+
Regression coverage preserves the exact selected turn when sibling turns
|
|
85
|
+
share a `rootTurnId`. An `agentMessage` with `phase: "partial_answer"` is not a
|
|
86
|
+
completed task or a final answer. Native completion state, complete item reads
|
|
87
|
+
and the original turn ID remain necessary for final callbacks. Partial answers
|
|
88
|
+
also remain outside the commentary-only public progress projection. Multiline
|
|
89
|
+
asynchronous question titles, URLs and answers retain their complete native
|
|
90
|
+
question identity and are encoded through the existing structured answer
|
|
91
|
+
envelope, with no automatic duplicate response.
|
|
92
|
+
|
|
93
|
+
The upstream resume path in both reviewed versions requires persisted history.
|
|
94
|
+
A newly loaded, idle, empty thread may expose live metadata before any rollout
|
|
95
|
+
exists. AKK preserves that verified identity as
|
|
96
|
+
`history_state: "unmaterialized"`, but does not advertise Send or permission
|
|
97
|
+
actions that require a native subscription. Status and native inspection can
|
|
98
|
+
return the fresh idle metadata with
|
|
99
|
+
`subscription_state: "unavailable_unmaterialized_history"` and
|
|
100
|
+
`observation_error: "native_subscription_unmaterialized"`. Its
|
|
101
|
+
`interaction_requests_scanned: false` and null pending-interaction count mean
|
|
102
|
+
requests were not scanned, rather than proving that no question or approval
|
|
103
|
+
exists. This diagnostic fallback requires the exact missing-rollout condition
|
|
104
|
+
and a fresh same-thread idle/empty read; it does not accept unrelated failures.
|
|
105
|
+
|
|
106
|
+
## Version and route boundaries
|
|
107
|
+
|
|
108
|
+
| Route | Compatibility rule |
|
|
109
|
+
| --- | --- |
|
|
110
|
+
| Direct shared-backend CLI | Live identity and method/response contracts govern availability; no exact-version allowlist or numeric minimum is introduced. |
|
|
111
|
+
| Terminal paginated interaction writes | Add only the audited **frontend 0.162.1 / app-server 0.162.1** pair. Existing older audited pairs remain; 0.162.1/0.162.0 and 0.162.1/0.162.2 are not admitted as write pairs. |
|
|
112
|
+
| Terminal native status and controls | The observed process version selects the appropriate profile; exact process, pane, native thread, composer and current UI checks still apply. |
|
|
113
|
+
| Desktop | No new Desktop profile. Native writes retain the exact macOS **26.1002.52244 / build 13536** requirement and verified live owner. |
|
|
114
|
+
|
|
115
|
+
A thread's stored `cliVersion` is creation metadata. It cannot prove the
|
|
116
|
+
version of a currently attached frontend. Same-directory history cannot
|
|
117
|
+
merge a terminal with a shared-backend thread; the route requires exact native
|
|
118
|
+
identity. Busy/blocked state or an uncertain dispatch never triggers a retry
|
|
119
|
+
through another transport.
|
|
120
|
+
|
|
121
|
+
## Verification record
|
|
122
|
+
|
|
123
|
+
The dedicated live matrix is complete. The table distinguishes operations
|
|
124
|
+
actually executed from source/regression-only coverage and retained historical
|
|
125
|
+
evidence. The formal release gate also passed as recorded below.
|
|
126
|
+
|
|
127
|
+
| Evidence | Current scope |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| Earlier 0.14.1 targeted live proof | macOS CLI 0.162.1 + shared app-server 0.162.1: bounded public progress during an active task, 720-minute Send monitoring, one local completion acknowledgement and idempotent Send. |
|
|
130
|
+
| Dedicated frontend/backend pair | macOS CLI 0.162.1 + shared app-server 0.162.1, launched through the existing `mycodes --remote` wrapper in a dedicated test session. |
|
|
131
|
+
| Native status, exact identity and List | Passed: the closed native `/status` transaction proved the exact thread and enabled alias coalescing; subsequent materialized-thread backend Status read the same target. |
|
|
132
|
+
| Unmaterialized empty thread | Passed in a separate dedicated 0.162.1/0.162.1 CLI: List withheld Send/permission offers, Status/native inspection retained verified idle identity with unscanned requests and a null pending count, and an attempted semantic Send was rejected before a native turn, Watch or callback was created. The thread stayed empty and global configuration was unchanged. |
|
|
133
|
+
| Model discovery | Passed: the public model-options operation read seven native models and restored the composer. Model mutation was intentionally not exercised because the existing terminal setter persists defaults; its scope remains covered by source review and regressions. |
|
|
134
|
+
| Backend permissions | Passed: Default, Full Access and Read Only round trips retained the selected native thread. This is backend permission evidence, not a terminal menu round-trip claim. |
|
|
135
|
+
| Routed Send, Status, Watch and completion | Passed: Send through the terminal alias selected the native backend, proved acceptance and a 720-minute deadline; Status using the returned native conversation ID and Watch ID read the same active turn and bounded progress. The exact turn completed with one local callback acknowledgement; idempotent Send retained the original Watch and deadline. Reading the old Watch after later turns still returned its original task's progress without later-task text. |
|
|
136
|
+
| Backend command/file approvals | Passed: real requests in the selected test task were approved through their exact native interaction identities; the task completed with one local callback acknowledgement and idempotent repeat handling. |
|
|
137
|
+
| Backend blocking and asynchronous questions | Passed: both answers to a two-question blocking request were received, and an asynchronous free-text answer retained Chinese, emoji and a newline through the final result. Each completion acknowledged once; repeated handling did not duplicate the answer or callback. |
|
|
138
|
+
| Terminal question surface recognition | Real captured blocking-question UI was recognized as actionable under the v5 profile; the captured asynchronous `⇧←` queue hint was recognized as collapsed. Answers in this live matrix used the backend route. Terminal answer-key injection is covered by regressions, not a new live execution claim. |
|
|
139
|
+
| Recovery, Renew, Watch and Unwatch | Passed: after stopping only the isolated test monitor, Recover relaunched observation with its original deadline. No-argument backend Renew used about 720 minutes. A new explicit Watch bound the same active turn with 720 minutes; Unwatch stopped only that observation while the native task continued and the original Send Watch completed once. |
|
|
140
|
+
| Close and accepted callback retry | Passed: Close released AKK management while preserving the same idle native thread. Retrying an already accepted callback was rejected without another notification. |
|
|
141
|
+
| Terminal permission mutation | Passed through the production TerminalAgentBridge and real tmux capture/input: Read Only, Ask for approval, Approve for me and Full Access each changed successfully; the new centered Full Access dialog was confirmed and the final catalog restored the initial Full Access setting. Before every input, the harness rechecked process incarnation, pane, cwd, frontend version and the same idle backend thread. Global configuration remained unchanged. |
|
|
142
|
+
| Older frontend/backend combinations | Regression coverage retained; no new old-version live run is claimed without a separate recorded result. |
|
|
143
|
+
| Desktop live | Explicitly skipped. Relevant regressions remain part of the release gate. |
|
|
144
|
+
| Fast regressions | Final `npm run test:fast`: 2,836 passed, zero failures. |
|
|
145
|
+
| Static/build checks | Type checking, architecture validation and canonical/bundled Skill consistency passed. The Skill's reviewed-version lists include 0.162.1; independent connector package versions are unchanged. |
|
|
146
|
+
| Full regressions | Final release-gate full suite: 3,351 passed, zero failures, on Node.js 24.18.0. |
|
|
147
|
+
| Runtime provenance | All 1,050 compiled runtime files matched the immutable build used for the final live matrix by individual SHA-256 comparison. |
|
|
148
|
+
| Formal release gate | `npm run test:release` passed: full suite, isolated OpenClaw 2026.9.1 compatibility, ClawHub runtime validation and publication dry-run. |
|
|
149
|
+
| Isolated OpenClaw | Loaded all 25 tools; callback, doctor, bundled Skill, tmux fixture/diagnostics, update/reinstall and uninstall checks passed. The existing user Gateway was not restarted or upgraded. |
|
|
150
|
+
| ClawHub/package validation | Runtime Plugin Inspector passed with zero breakages and zero warnings. `npm pack --dry-run` and ClawHub publication dry-run passed with 1,094 files; the canonical bundled Skill and this compatibility report were included, while tests, node_modules, Git metadata and private proof artifacts were excluded. Registry/download verification remains a separate publication step. |
|
|
151
|
+
|
|
152
|
+
Callback acknowledgement at a local test receiver proves AKK callback
|
|
153
|
+
generation/delivery and deduplication at that receiver. It does not prove a
|
|
154
|
+
new OpenClaw-to-WeChat delivery. No user conversation, shared daemon or Gateway
|
|
155
|
+
needs to be restarted to run isolated compatibility checks.
|
|
156
|
+
|
|
157
|
+
The optional general native lifecycle live-smoke was not run: paginated
|
|
158
|
+
new/resume remains unsupported, and the dedicated matrix above covers the
|
|
159
|
+
actual routes changed in this release. Desktop live verification was skipped
|
|
160
|
+
by explicit choice; it is not reported as passing.
|
|
161
|
+
|
|
162
|
+
An old terminal alias without current native identity can still return terminal
|
|
163
|
+
activity while work is active; AKK does not type `/status` into that busy
|
|
164
|
+
terminal to force a merge. The Send-returned native conversation and Watch
|
|
165
|
+
identifiers retain the exact backend route. No identity guard was relaxed to
|
|
166
|
+
make the alias appear resolved.
|
|
167
|
+
|
|
168
|
+
For the stopped explicit Watch, its legacy task `status` can remain `watching`;
|
|
169
|
+
`observation_state: "stopped"` and `observation_active: false` describe the
|
|
170
|
+
monitoring state. Unwatch is not native cancellation or task completion.
|
|
171
|
+
|
|
172
|
+
## Retained limits
|
|
173
|
+
|
|
174
|
+
- Direct CLI model control and cancellation still require an eligible verified
|
|
175
|
+
terminal capability. Native new/clear/resume remains unsupported for these
|
|
176
|
+
paginated versions; adding a version profile does not enable lifecycle work.
|
|
177
|
+
- A newly loaded CLI thread with no materialized history is not automatically
|
|
178
|
+
writable through the direct adapter: upstream `thread/resume` requires stored
|
|
179
|
+
history. Reading its live metadata is different from acquiring a task/response
|
|
180
|
+
channel. Such a thread must not be advertised as Send-ready solely because it
|
|
181
|
+
is loaded and idle.
|
|
182
|
+
- The Status public body remains bounded to 800 Unicode code points, with
|
|
183
|
+
redaction, grapheme-safe truncation and exact-turn freshness/error reporting.
|
|
184
|
+
List gains no progress body or pagination changes in this release.
|
|
185
|
+
- The shared 720-minute monitoring hard deadline, managed-terminal 60-minute
|
|
186
|
+
inactivity window, existing absolute deadlines and notification deduplication
|
|
187
|
+
remain unchanged. Recover does not replay a task or silently renew it.
|
|
188
|
+
- macOS terminal glyph evidence does not establish Linux/Windows UI validation.
|
|
189
|
+
Desktop live behavior and other Desktop builds are not newly certified.
|
|
190
|
+
|
|
191
|
+
## Sources
|
|
192
|
+
|
|
193
|
+
- [Official 0.162.1 release](https://github.com/openai/codex/releases/tag/rust-v0.162.1)
|
|
194
|
+
- [Official 0.160.0 to 0.162.1 source comparison](https://github.com/openai/codex/compare/rust-v0.160.0...rust-v0.162.1)
|
|
195
|
+
- [Official 0.162.1 native status card source](https://github.com/openai/codex/blob/rust-v0.162.1/codex-rs/tui/src/status/card.rs)
|
|
196
|
+
- [Official 0.162.1 app-server API](https://github.com/openai/codex/tree/rust-v0.162.1/codex-rs/app-server-protocol)
|
|
197
|
+
- [Official loaded-thread read and resume implementation](https://github.com/openai/codex/blob/rust-v0.162.1/codex-rs/app-server/src/request_processors/thread_processor.rs)
|
|
198
|
+
- [Earlier 0.160.0 compatibility evidence](codex-0.160.0-compatibility.md)
|
|
@@ -166,7 +166,8 @@ permit automatic replay of `sent` or `uncertain` responses.
|
|
|
166
166
|
| Evidence | Scope |
|
|
167
167
|
| --- | --- |
|
|
168
168
|
| Live-tested combination, 2026-10-09 | **macOS: Codex CLI 0.160.0 + shared app-server 0.162.0**; production-adapter operations and limits are recorded below. |
|
|
169
|
-
|
|
|
169
|
+
| Additional targeted live proof, 2026-10-10 | **macOS: Codex CLI 0.162.1 + shared app-server 0.162.1**. Verified public Status progress while a task was in progress through the running OpenClaw plugin, an actual 720-minute Send deadline, one isolated local completion acknowledgement, and repeated Send retaining the original task/deadline. No new WeChat delivery or full native-operation matrix is claimed. |
|
|
170
|
+
| 0.14.2 compatibility review, 2026-10-10 | **macOS: Codex CLI 0.162.1 + shared app-server 0.162.1**. Expanded dedicated-session validation, native UI fixes and retained limits are recorded in the [operation matrix](codex-0.162.1-compatibility.md#verification-record). |
|
|
170
171
|
| Runtime admission | A loaded main CLI thread, the selected local Codex home, valid stable `x.y.z` backend metadata, and the required live protocol shapes/methods. There is **no established numeric minimum** or exact version allowlist for direct control. |
|
|
171
172
|
| Platform evidence | The live proof was on macOS. It does not establish a Linux/Windows direct-control validation matrix. |
|
|
172
173
|
|
|
@@ -178,12 +179,14 @@ not establish support. Unsupported methods or changed response shapes fail for
|
|
|
178
179
|
that operation with a diagnostic; unknown state never becomes task completion.
|
|
179
180
|
Prerelease version suffixes do not meet the stable version syntax check.
|
|
180
181
|
|
|
181
|
-
The **0.162.1**
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
182
|
+
The additional **0.162.1/0.162.1** proof above is limited to the stated
|
|
183
|
+
operations; the [0.14.2 compatibility review](codex-0.162.1-compatibility.md)
|
|
184
|
+
records the subsequent native UI/protocol review and its separate verification
|
|
185
|
+
matrix. Neither record establishes a numeric minimum. A thread's `cliVersion`
|
|
186
|
+
is creation metadata, not proof of the currently attached frontend's executable
|
|
187
|
+
version. The terminal TUI's [audited version pairs](codex-0.162.1-compatibility.md#version-and-route-boundaries)
|
|
188
|
+
govern a different adapter and must not be used as the direct-control version
|
|
189
|
+
matrix.
|
|
187
190
|
|
|
188
191
|
The permission update API is experimental. Backends may evolve, so action-time
|
|
189
192
|
contract checks and the actual effective settings remain necessary.
|
|
@@ -132,7 +132,7 @@ under `plugins.entries.agent-knock-knock.config`:
|
|
|
132
132
|
| `codexHome` | Auto-detected | Optional Codex home used for native-session discovery. |
|
|
133
133
|
| `idleTimeoutMinutes` | `10080` | Retention checked during controlled reconciliation. |
|
|
134
134
|
| `agentTimeoutMinutes` | `60` | Terminal inactivity timeout. |
|
|
135
|
-
| `agentHardTimeoutMinutes` | `720` |
|
|
135
|
+
| `agentHardTimeoutMinutes` | `720` | New Send/Watch hard lifetime across backend and terminal routes starting in AKK 0.14.1; also the default backend Renew duration. AKK 0.14.0 backend Send/Watch used 60 minutes when this setting is omitted. |
|
|
136
136
|
|
|
137
137
|
A custom `storeDir` must be a dedicated private directory. AKK initializes a
|
|
138
138
|
missing or empty path and refuses a non-empty manifestless directory instead
|
package/docs/operator-guide.md
CHANGED
|
@@ -97,6 +97,14 @@ and [Desktop guide](codex-desktop-compatibility.md) for native acceptance and
|
|
|
97
97
|
interaction capabilities. The remainder of this section covers terminal Send,
|
|
98
98
|
including its physical-input fallback and terminal response adapters.
|
|
99
99
|
|
|
100
|
+
Starting in AKK 0.14.1, new Send monitoring and explicit or
|
|
101
|
+
automatic Watch share a default **720-minute hard deadline**. Explicit request
|
|
102
|
+
parameters override the Host hard-timeout configuration, which overrides that
|
|
103
|
+
default. Save and use the Watch returned by Send; do not add another Watch merely
|
|
104
|
+
to obtain completion callbacks. Expiry ends observation, not the native task.
|
|
105
|
+
Existing saved deadlines and repeated message IDs are not extended by an upgrade.
|
|
106
|
+
Managed terminal inactivity remains a separate 60-minute default.
|
|
107
|
+
|
|
100
108
|
The v30 `action_contracts` expose model-facing semantic IDs only. The trusted
|
|
101
109
|
adapter privately derives and revalidates terminal, process, binding, native
|
|
102
110
|
thread, composer, approval, handoff, revision, and compare-and-swap evidence.
|
|
@@ -408,6 +416,27 @@ A backend conversation Status reads the selected native conversation. Bound
|
|
|
408
416
|
terminal Turns and Watches retain their original observation route. List
|
|
409
417
|
never types into a terminal.
|
|
410
418
|
|
|
419
|
+
AKK 0.14.1 adds a single `progress` object to CLI
|
|
420
|
+
backend and Desktop Status. Conversation Status selects its current native turn;
|
|
421
|
+
Watch Status always selects the Watch's original turn, even after a newer task
|
|
422
|
+
starts. The latest public commentary and up to two short action type/status
|
|
423
|
+
summaries share an 800-Unicode-code-point body budget, with unused space shared
|
|
424
|
+
between them. Redaction precedes truncation, which preserves complete graphemes.
|
|
425
|
+
Reasoning, analysis, raw command output, tool arguments and diffs are excluded.
|
|
426
|
+
This is a progress-body limit, not a limit on the whole Status JSON. List does not
|
|
427
|
+
include this body, and the terminal screen contract is unchanged.
|
|
428
|
+
|
|
429
|
+
`progress.native_turn_id` identifies the selected task; `read_at` records the
|
|
430
|
+
read time. `latest_item_at` is a native timestamp of the displayed progress, or
|
|
431
|
+
`null` if none is available; it is never replaced with the read time. `truncated`
|
|
432
|
+
reports shortening of the selected progress body or omission of code blocks. `state: "no_public_progress"` means the read
|
|
433
|
+
succeeded without eligible public progress, while `state: "read_error"` means
|
|
434
|
+
the exact task/items could not be read completely. Neither means the task has
|
|
435
|
+
stopped. Missing old-turn data is never replaced with a successor's progress.
|
|
436
|
+
`trace` retains its existing terminal behavior; it is not an unbounded backend
|
|
437
|
+
progress mode. Final answers and current questions/approvals retain their own
|
|
438
|
+
existing fields.
|
|
439
|
+
|
|
411
440
|
When the selected conversation is an unbound physical Codex terminal, targeted
|
|
412
441
|
Status may use the existing closed `/status` identity inspection if that pane
|
|
413
442
|
is safely idle. It can display a native status card to establish the exact
|
package/openclaw.plugin.json
CHANGED
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"agentHardTimeoutMinutes": {
|
|
150
150
|
"type": "number",
|
|
151
151
|
"exclusiveMinimum": 0,
|
|
152
|
-
"description": "
|
|
152
|
+
"description": "Default hard monitoring lifetime for Codex CLI backend/Desktop Send and Watch, Terminal Watch, and managed terminal tasks; also used by backend renew when minutes is omitted. Explicit call parameters take precedence. Defaults to 720 minutes. Independent of the managed terminal inactivity timeout."
|
|
153
153
|
},
|
|
154
154
|
"autoApprove": {
|
|
155
155
|
"type": "object",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scotthuang/agent-knock-knock",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"description": "Control Codex CLI through its shared backend, Codex Desktop through native IPC, and Codex or Claude Code through terminals from OpenClaw or compatible controller Hosts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -184,7 +184,7 @@ success; never retry an uncertain repair automatically.
|
|
|
184
184
|
For native status inspection:
|
|
185
185
|
|
|
186
186
|
1. Use only a current `available_actions.native_inspect({terminal_id,inspection:"status"})` entry. Those semantic arguments are complete; never add a command or authority field.
|
|
187
|
-
2. Regression-tested profiles are Codex 0.146.0/0.146.1/0.147.0/0.148.0/0.149.1/0.150.1/0.151.0/0.153.0/0.153.4/0.154.0/0.155.1/0.158.0/0.159.0/0.159.2/0.159.3/0.160.0 and Claude Code 2.1.218/2.1.226/2.1.237/2.1.251/2.1.259/2.1.263/2.1.266/2.1.267/2.1.285 `inspection="status"`. Other complete `x.y.z` versions remain callable through the generic runtime profile and add a compatibility warning; actual incompatible UI or schema evidence fails at runtime and is not automatically retried. Claude success includes parsing and safely dismissing the newly opened Status panel. The inspection tool does not accept `/status` text or any arbitrary command string. `/usage`, `/cost`, `/stats`, `/usage-credits`, raw `/model`, `/compact`, and arbitrary slash commands remain unavailable; model changes use only the typed model-control tools above. Never automate bare Codex `/usage`: it opens an interactive menu whose later Enter can select an account-side usage-limit reset.
|
|
187
|
+
2. Regression-tested profiles are Codex 0.146.0/0.146.1/0.147.0/0.148.0/0.149.1/0.150.1/0.151.0/0.153.0/0.153.4/0.154.0/0.155.1/0.158.0/0.159.0/0.159.2/0.159.3/0.160.0/0.162.1 and Claude Code 2.1.218/2.1.226/2.1.237/2.1.251/2.1.259/2.1.263/2.1.266/2.1.267/2.1.285 `inspection="status"`. Other complete `x.y.z` versions remain callable through the generic runtime profile and add a compatibility warning; actual incompatible UI or schema evidence fails at runtime and is not automatically retried. Claude success includes parsing and safely dismissing the newly opened Status panel. The inspection tool does not accept `/status` text or any arbitrary command string. `/usage`, `/cost`, `/stats`, `/usage-credits`, raw `/model`, `/compact`, and arbitrary slash commands remain unavailable; model changes use only the typed model-control tools above. Never automate bare Codex `/usage`: it opens an interactive menu whose later Enter can select an account-side usage-limit reset.
|
|
188
188
|
3. Treat this as terminal input even though the native command is read-only. AKK privately derives a fresh binding fence and requires an idle empty composer, exact PID/process/pane/cwd/version identity, and no conflicting Turn, transition, dispatch, approval, or owner.
|
|
189
189
|
4. Codex `/status` requires an exact viewport of at least 80 columns so the full Session UUID can be proven. That pre-UUID gate applies to native inspection, lifecycle, and strict Session operations that must know the UUID before terminal input. Legacy terminal-scoped ordinary tasks may send once and bind from exact native acceptance afterward without running `/status` or failing merely because the pane is narrow. Codex paginated read-contract candidates attempt their separate closed `/status` binding before physical Send. If an exact callback Watch cannot be prepared safely, AKK may prepare terminal-activity observation; report the receipt's actual callback mode and limitation.
|
|
190
190
|
5. The result is valid only when AKK proves one fresh bounded native status result and the pane returns to idle. On an uncertain or unproven submission, do not retry, send Enter, clear the composer, or bypass AKK with raw terminal input.
|
|
@@ -286,7 +286,7 @@ Action-name glossary:
|
|
|
286
286
|
|
|
287
287
|
- `status`: inspect one terminal, Turn, or Watch; it sends no native slash command.
|
|
288
288
|
- `send`: deliver a new request, or perform the separately advertised immutable `retry_submission` form.
|
|
289
|
-
- `watch` / `unwatch`: create or stop durable terminal observation; Codex 0.158.0/0.159.0/0.159.2/0.159.3/0.160.0 exact creation performs the closed `/status` transaction, while subsequent observation is read-only.
|
|
289
|
+
- `watch` / `unwatch`: create or stop durable terminal observation; Codex 0.158.0/0.159.0/0.159.2/0.159.3/0.160.0/0.162.1 exact creation performs the closed `/status` transaction, while subsequent observation is read-only.
|
|
290
290
|
- `list_resumable_threads`, `new_thread`, and `resume_thread`: inspect or change native thread context through their closed lifecycle protocols.
|
|
291
291
|
- `native_inspect`: run only an advertised closed native inspection such as `status`.
|
|
292
292
|
- `model_options`, `repair_model_control`, and `set_model`: discover the current native catalog, clear only a proven model-control residue, or consume one catalog offer.
|