omnish 1.2.2 → 1.2.3

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
@@ -7,15 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.3] - 2026-05-08
11
+
10
12
  ### Added
11
13
 
12
14
  - **`/run` queue shorthand `-q`**: same as `--queue` for FIFO recipe runs per chat (see `/run help`).
13
15
  - **Documentation**: [Run queue](docs/features/run-queue.md) — `-q` / `--queue`, pending vs active, `/run queue` / `resume`, pause rules, and resource model.
16
+ - **Multi-target `/sendto`**: destination targeting now supports `wa`, `tg`, `*`, explicit `+E164`, comma-separated `+E164,+E164`, and compatibility aliases (`wa:all`, `tg:all`, etc.).
17
+ - **Multi-file selectors for `/send` and `/sendto`**: `file1,file2`, `*.ext`, and recursive `**/*.ext` resolved from session cwd.
14
18
 
15
19
  ### Changed
16
20
 
17
21
  - **`/run queue` status**: shows the active session’s recipe, a numbered list of waiting recipe labels, and clarifies that **Pending** counts only jobs not yet started; clearer enqueue replies when items line up behind an active run.
18
22
  - **`/run help`**: documents `-q`, pending vs active semantics, and queue resume behavior.
23
+ - **File send help semantics**: `/send`, `/files`, and `/sendto` usage text now uses the canonical grammar `/send <selectors> [-- caption]` and `/sendto <destination> <selectors> [-- caption]`.
24
+
25
+ ### Documentation
26
+
27
+ - Updated [docs/files-send-receive.md](docs/files-send-receive.md) with selector grammar, destination matrix, result model (`recipients x files`), and failure expectations.
28
+ - Updated [docs/guides/interactive-cli.md](docs/guides/interactive-cli.md) with `/sendto` syntax, quick recipes, and troubleshooting notes.
29
+ - Updated [README.md](README.md) quick examples and docs index labels for multi-target `/sendto` and selector-based `/send`.
30
+
31
+ [1.2.3]: https://github.com/eligapris/omnish/compare/v1.2.2...v1.2.3
19
32
 
20
33
  ## [1.2.1] - 2026-05-05
21
34
 
package/README.md CHANGED
@@ -31,7 +31,7 @@
31
31
 
32
32
  - `omnish link` — QR login (WhatsApp → Linked devices), or **`omnish link --tg <bot_token>`** to save a Telegram bot token and set `gatewayMode` (`telegram`, or `both` if WhatsApp is already linked). See `omnish link --help`.
33
33
  - `omnish run` — Listen for DMs; execute commands; reply with output.
34
- - **`omnish i`** — Interactive terminal with the same commands as chat (local full trust; the inbox allowlist is **not** applied). Run from any directory; session cwd starts at the current directory. Use **`/sendto wa:+E164 <file>`** or **`/sendto tg:<chat_id> <file>`** to push a file through a running gateway (see `omnish i --help`). Background jobs from `/bg` in the REPL are **only** that process (not the gateway’s job list).
34
+ - **`omnish i`** — Interactive terminal with the same commands as chat (local full trust; the inbox allowlist is **not** applied). Run from any directory; session cwd starts at the current directory. Use **`/sendto <destination> <selectors> [-- caption]`** (for example `wa`, `tg`, `*`, `+E164,+E164`) to push files through a running gateway (see `omnish i --help`). Background jobs from `/bg` in the REPL are **only** that process (not the gateway’s job list).
35
35
  - **Sync:** send `!ls` or `! ls` (prefix configurable; default `!`). Each chat has its **own working directory**; use `!cd /path` or `! cd /path` to change it (saved under the data dir, e.g. `~/.omnish/sessions.json`).
36
36
  - **Background:** `/bg long-running-command` runs in that chat’s cwd, then `/jobs`, `/log <id>`, `/tail <id>`, `/kill <id>`.
37
37
  - **Cowork:** `/cowork` / `/cw` — scheduled or on-demand saved shell tasks, logs under `~/Cowork/…` by default. See [docs/features/cowork.md](docs/features/cowork.md).
@@ -178,8 +178,8 @@ To send a literal `!`, `/`, or `>` to the attached program, use **`/apps send <n
178
178
 
179
179
  | Command | Description |
180
180
  |--------|-------------|
181
- | `omnish link` / `link --force` | Print QR; save session under `<data-dir>/auth/` (`--force` deletes old auth first) |
182
- | `omnish run` | Start gateway (foreground) |
181
+ | `omnish link` / `link --force` | Print QR; save session under `<data-dir>/auth/` (`--force` deletes old auth first). Telegram token mode: `omnish link --tg <token>` (alias: `--telegram`). |
182
+ | `omnish run` | Start gateway (foreground). Background: `omnish run -d [--log-file <path>]`. |
183
183
  | `omnish stop` | Stop a background gateway (`omnish run -d`; uses `<data-dir>/gateway.pid`) |
184
184
  | `omnish i` / `interactive` | Chat-equivalent REPL on your terminal; **`omnish i --help`** · [interactive-cli.md](docs/guides/interactive-cli.md) |
185
185
  | `omnish service …` | Service status, logs, install/uninstall (same trust gate as **`/service`** in chat) |
@@ -187,12 +187,46 @@ To send a literal `!`, `/`, or `>` to the attached program, use **`/apps send <n
187
187
  | `omnish allow +1555...` | Add WhatsApp number to allowlist |
188
188
  | `omnish allow tg:<id>` | Add Telegram user id |
189
189
  | `omnish deny …` | Remove allowlist entry |
190
- | `omnish status` | Data dir, auth, allowlists, jobs, cluster (if enabled) |
190
+ | `omnish status [--check-updates]` | Data dir, auth, allowlists, jobs, cluster (if enabled); optional live npm/update check |
191
+ | `omnish commands` | Print chat command help on the host terminal (`/help` equivalent) + `/config`-editable keys |
192
+ | `omnish security [--json]` | Local security posture report (`--json` for scripts; non-zero exit on error findings) |
191
193
  | `omnish cluster [status \| use <sender> <label-or-id>]` | Show cluster state or seed a sender → machine binding |
192
194
 
193
195
  Config: `<data-dir>/config.json` (see [config.example.json](config.example.json)). Use `omnish status` for the resolved path.
194
196
 
195
- Chat (allowlisted): **`/config`** (view/set many keys), **`/c`** · **`/pcs`** · **`/computers`** (chat-driven cluster — `/c here` to take over, `/c help`), **`/reload`** — see [docs/features/cluster-and-chat-config.md](docs/features/cluster-and-chat-config.md).
197
+ Chat (allowlisted): **`/config`** (view/set many keys), **`/c`** · **`/pcs`** · **`/computers`** (chat-driven cluster — `/c here` to take over, `/c help`), **`/reload`**, **`/updates`** (`/updates cached`), **`/security`** (`summary`, `tips`), **`/service`** (`status`, `instructions`, `logs`, optional `install/uninstall`) — see [docs/features/cluster-and-chat-config.md](docs/features/cluster-and-chat-config.md).
198
+
199
+ ### Quick file-send examples
200
+
201
+ ```text
202
+ /send ./photo.png
203
+ /send ./file1.mp4,./file2.mp4 -- Files for today
204
+ /send **/*.mp4
205
+ /sendto wa ./promo.mp4
206
+ /sendto * intro.mp4,notes.pdf -- Shared files
207
+ /sendto +15550000001,+15550000002 file1.png,file2.png
208
+ ```
209
+
210
+ Quick meaning:
211
+
212
+ - `/send` sends to the current chat.
213
+ - `/sendto` lets you pick recipients directly.
214
+ - Selectors can be exact files (`a,b`) or patterns (`*.mp4`, `**/*.mp4`).
215
+
216
+ ### First `/sendto` in 5 commands
217
+
218
+ ```bash
219
+ omnish run
220
+ omnish i
221
+ !cd ~/Downloads
222
+ /sendto wa ./photo.png
223
+ /sendto * *.mp4 -- Video batch
224
+ ```
225
+
226
+ What to expect:
227
+
228
+ - Command 4 sends one file to all allowlisted WhatsApp numbers.
229
+ - Command 5 sends matching videos to allowlisted WhatsApp + Telegram recipients.
196
230
 
197
231
  ## Documentation
198
232
 
@@ -201,7 +235,7 @@ Index and curated paths: **[docs/README.md](docs/README.md)**.
201
235
  | Topic | Doc |
202
236
  |-------|-----|
203
237
  | Vision — local first, product direction | [docs/vision.md](docs/vision.md) |
204
- | Interactive terminal (`omnish i`, `/sendto`) | [docs/guides/interactive-cli.md](docs/guides/interactive-cli.md) |
238
+ | Interactive terminal (`omnish i`, `/sendto` multi-target) | [docs/guides/interactive-cli.md](docs/guides/interactive-cli.md) |
205
239
  | Configuration (`config.json`) | [docs/guides/configuration.md](docs/guides/configuration.md) |
206
240
  | Browser setup UI (`omnish ui`) | [docs/guides/ui.md](docs/guides/ui.md) |
207
241
  | Cluster roster + `/config` from chat | [docs/features/cluster-and-chat-config.md](docs/features/cluster-and-chat-config.md) |
@@ -213,7 +247,7 @@ Index and curated paths: **[docs/README.md](docs/README.md)**.
213
247
  | System agents + `/run` | [docs/guides/system-agents-and-run.md](docs/guides/system-agents-and-run.md) |
214
248
  | MCP IDE spike (experimental) | [contrib/mcp-spike/README.md](contrib/mcp-spike/README.md) |
215
249
  | Telegram | [docs/telegram-integration-notes.md](docs/telegram-integration-notes.md) |
216
- | Send/receive files | [docs/files-send-receive.md](docs/files-send-receive.md) |
250
+ | Send/receive files (`/send` selectors, `/sendto` destinations) | [docs/files-send-receive.md](docs/files-send-receive.md) |
217
251
  | Troubleshooting | [docs/advanced/troubleshooting.md](docs/advanced/troubleshooting.md) |
218
252
  | Implementation / contributors | [docs/advanced/implementation.md](docs/advanced/implementation.md) |
219
253
  | Architecture (legacy) | [docs/architecture-and-implementation.md](docs/architecture-and-implementation.md) |