@scotthuang/agent-knock-knock 0.6.2 → 0.7.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0 - 2026-08-01
4
+
5
+ ### Changed
6
+
7
+ - Move managed task state to the permanent `~/.agent-knock-knock/store` root, with a compatibility manifest and conversation data under `conversations/`.
8
+ - Let OpenClaw-triggered `list` reconcile all managed tasks and `status` reconcile only its selected task. Standalone shell `list` and `status` stay read-only by default, expose reconciliation only through explicit `--reconcile`, and never change state while resolving a selector.
9
+ - Leave the former `~/.agent-knock-knock/conversations` store untouched and ignored. This release does not migrate old managed task records; existing tmux panes remain discoverable for new work.
10
+
11
+ ### Security
12
+
13
+ - Refuse incompatible Store writers before changing managed state or performing terminal and Gateway side effects.
14
+ - Always use the plugin package's bundled relay and remove the configurable external `binPath` override.
15
+
3
16
  ## 0.6.2 - 2026-07-31
4
17
 
5
18
  ### Changed
package/README.md CHANGED
@@ -106,7 +106,7 @@ Requirements:
106
106
 
107
107
  The compatibility suite tests the normal installation floor and the Plugin API boundary with isolated state and the real packed artifact.
108
108
 
109
- ClawHub installs the OpenClaw plugin, bundled AKK skill, and package-local relay CLI together. It does not add the `agent-knock-knock` command to your shell `PATH`. Do not run `install-openclaw` after a ClawHub install; that command belongs to the npm path below.
109
+ ClawHub installs the OpenClaw plugin, bundled AKK skill, and package-local relay CLI together. The plugin always uses that bundled relay, so a stale shell command cannot be selected through plugin configuration. ClawHub does not add the `agent-knock-knock` command to your shell `PATH`. Do not run `install-openclaw` after a ClawHub install; that command belongs to the npm path below.
110
110
 
111
111
  If you also want standalone shell commands such as `agent-knock-knock doctor`, install the npm package globally without running `install-openclaw`:
112
112
 
@@ -114,6 +114,8 @@ If you also want standalone shell commands such as `agent-knock-knock doctor`, i
114
114
  npm install -g @scotthuang/agent-knock-knock
115
115
  ```
116
116
 
117
+ Standalone `agent-knock-knock list` and `status` are read-only with respect to managed task state by default. Passing `--reconcile` explicitly enables controlled reconciliation; OpenClaw does this for `/akk list`, `/akk status`, and the corresponding plugin tools.
118
+
117
119
  ### Alternative: Install from npm
118
120
 
119
121
  ```bash
@@ -195,6 +197,8 @@ The core command surface is intentionally small:
195
197
  /akk cancel <session-selector>
196
198
  ```
197
199
 
200
+ `/akk list` performs a controlled reconciliation across managed tasks, and `/akk status` limits reconciliation to the selected task. This can close task records whose idle retention has elapsed and restore eligible missing monitors, but it does not send terminal input or retry callback delivery. Standalone shell queries are read-only unless `--reconcile` is explicitly passed, and resolving a selector never changes task state.
201
+
198
202
  Selectors fail closed: `only` works only with one actionable target, `latest` requires a unique newest target, and `codex` or `claude` must identify exactly one eligible pane. `AKK list` shows stable short references while JSON output retains the authoritative full IDs. Before every terminal operation, AKK revalidates the expected agent PID and tmux pane identity, then confirms that the process and pane working directories still match; every send also revalidates the idle prompt immediately before typing.
199
203
 
200
204
  For natural-language tool use, `agent_knock_knock_list` returns an `available_actions` object on rows in `delegated[]` and `terminal_controlled[]`; `tasks[]` remains a compatibility summary. Use only an action shown there, start with its prefilled authoritative arguments, and supply every `missing_required` field. A delegated row's `status` is its task lifecycle, while a terminal-controlled row's `status` only says whether the coding-agent process is alive and its `activity_state` reports the parsed screen state. The legacy `commands` flags have mixed compatibility semantics, are deprecated, and must never drive tool calls; `available_actions` is the only authoritative current-action source. `send` uses `selector`; status, approval, cancellation, renewal, callback retry, and close use `conversation_id`. For an ordinary send, add only `request`—`timeoutSeconds` is not a supported argument, and monitoring limits should be omitted unless the user explicitly asks to change them.
@@ -209,13 +213,15 @@ AKK works without project-specific plugin configuration. It reads these optional
209
213
 
210
214
  | Option | Default | Purpose |
211
215
  | --- | --- | --- |
212
- | `storeDir` | `~/.agent-knock-knock/conversations` | Conversation state location. |
216
+ | `storeDir` | `~/.agent-knock-knock/store` | Stable Store root for the compatibility manifest and managed conversations. |
213
217
  | `openclawBin` | Auto-detected | OpenClaw CLI used for callback delivery. |
214
218
  | `codexHome` | Auto-detected | Optional Codex home used to identify Codex sessions running in tmux. |
215
- | `idleTimeoutMinutes` | `10080` | Time before an idle task is lazily closed. |
219
+ | `idleTimeoutMinutes` | `10080` | Idle retention checked during controlled reconciliation. |
216
220
  | `agentTimeoutMinutes` | `60` | Terminal inactivity timeout. |
217
221
  | `agentHardTimeoutMinutes` | `720` | Maximum terminal monitor lifetime. |
218
222
 
223
+ Custom `storeDir` values use the same Store structure. AKK initializes a missing or empty directory and refuses a non-empty manifestless directory instead of guessing how to write it.
224
+
219
225
  See [`openclaw.plugin.json`](https://github.com/scotthuang/agent-knock-knock/blob/main/openclaw.plugin.json) for the complete schema.
220
226
 
221
227
  ## Approvals
@@ -311,7 +317,13 @@ gh workflow run clawhub-publish.yml --ref vX.Y.Z -f dry_run=false
311
317
 
312
318
  ## Storage and Logs
313
319
 
314
- State lives under `~/.agent-knock-knock/`. Directories use mode `0700`; state and log files use `0600`. Runtime logs redact common secrets and default to 14-day retention. Configure storage and logging with `--store-dir`, `AKK_LOG_DIR`, `AKK_LOG_LEVEL`, and `AKK_LOG_RETENTION_DAYS`; use a dedicated custom log directory.
320
+ Managed state now lives in the stable `~/.agent-knock-knock/store` root. Its manifest prevents an incompatible AKK writer from changing task state. Directories use mode `0700`; state and log files use `0600`.
321
+
322
+ The manifest checks storage format and writer behavior separately. An unknown `format_version` is not read. When the format is readable but `writer_protocol` differs, normal queries remain available, explicit reconciliation reports `skipped`, and every mutation fails closed before terminal or Gateway side effects.
323
+
324
+ The former `~/.agent-knock-knock/conversations` directory is left untouched, but AKK `0.7.0` does not read or migrate it. Existing Codex and Claude Code tmux panes remain available through live discovery, while their old AKK task IDs, callback associations, and follow-up records are not carried into the new Store. Compatible future upgrades continue using the stable Store rather than creating a directory per package version.
325
+
326
+ Runtime logs redact common secrets and default to 14-day retention. Configure storage and logging with `--store-dir`, `AKK_LOG_DIR`, `AKK_LOG_LEVEL`, and `AKK_LOG_RETENTION_DAYS`; use a dedicated custom log directory.
315
327
 
316
328
  ## Security
317
329