chore(release): 1.5.4
Make /collaborate slash command self-contained so it works without a registered mailbox-collaborate skill in the session. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
4
node/package-lock.json
generated
4
node/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@kuns/claude-mailbox",
|
"name": "@kuns/claude-mailbox",
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@kuns/claude-mailbox",
|
"name": "@kuns/claude-mailbox",
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@modelcontextprotocol/sdk": "^1.29.0",
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@kuns/claude-mailbox",
|
"name": "@kuns/claude-mailbox",
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"description": "Standalone MCP mail server that lets parallel Claude sessions coordinate with each other.",
|
"description": "Standalone MCP mail server that lets parallel Claude sessions coordinate with each other.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "claude-mailbox",
|
"name": "claude-mailbox",
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"description": "Auto-checks the local Claude-Mailbox daemon before every prompt and after each subagent run, and injects pending messages into the conversation context.",
|
"description": "Auto-checks the local Claude-Mailbox daemon before every prompt and after each subagent run, and injects pending messages into the conversation context.",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Mika Kuns"
|
"name": "Mika Kuns"
|
||||||
|
|||||||
@@ -2,4 +2,35 @@
|
|||||||
description: Enter Claude-Mailbox collaboration mode — start the push-delivery watch loop so peers can wake Claude mid-task.
|
description: Enter Claude-Mailbox collaboration mode — start the push-delivery watch loop so peers can wake Claude mid-task.
|
||||||
---
|
---
|
||||||
|
|
||||||
Invoke the `mailbox-collaborate` skill now to enter collaboration mode and start the watcher relaunch loop.
|
You are now in **mailbox collaboration mode**. Peers can wake you mid-task by sending mail to your mailbox.
|
||||||
|
|
||||||
|
## Launch the watcher
|
||||||
|
|
||||||
|
Your mailbox name was announced at SessionStart (format: `<project>-<short-session-id>`). Use it in place of `<NAME>` below.
|
||||||
|
|
||||||
|
Launch the watcher as a background bash task immediately:
|
||||||
|
|
||||||
|
```
|
||||||
|
Bash(command="claude-mailbox watch --block --name <NAME>", run_in_background=true)
|
||||||
|
```
|
||||||
|
|
||||||
|
The watcher is short-lived by design — it exits after exactly one event (delivered message, 25-second timeout, rename, or daemon error). Claude Code's BashOutput notifications fire only on task completion, so every exit MUST be followed by a fresh background relaunch with the same command. Gaps in the loop = missed pushes.
|
||||||
|
|
||||||
|
## Handling watcher completions
|
||||||
|
|
||||||
|
When a watcher task completes, inspect its stdout and exit code:
|
||||||
|
|
||||||
|
- **stdout contains `[Claude-Mailbox] Mail from <peer>: <body>`** → treat the body as an inbound interrupt with priority over your current plan. Address it, then relaunch the watcher.
|
||||||
|
- **stdout contains `[Claude-Mailbox] Mailbox renamed to '<new>'`** → relaunch with `--name <new>`, and use `<new>` for all future `mcp__mailbox__*` calls (update your identity).
|
||||||
|
- **exit code 3 with no stdout** → silent timeout, just relaunch.
|
||||||
|
- **exit code 2** → daemon unreachable; wait ~5 seconds, then relaunch.
|
||||||
|
- **any other exit code** → report it to the user, then relaunch.
|
||||||
|
|
||||||
|
## Stopping
|
||||||
|
|
||||||
|
Keep the loop running until the user says "stop watching", "stop collaborating", "end collaboration", or similar. When they do:
|
||||||
|
|
||||||
|
- Stop relaunching after the next completion.
|
||||||
|
- If a watcher is currently mid-poll and the user wants it killed immediately, use `TaskStop` on its task id.
|
||||||
|
|
||||||
|
Do not re-enter collaboration mode on your own after stopping — wait for the user to invoke this command again.
|
||||||
|
|||||||
Reference in New Issue
Block a user