@letta-ai/letta-code 0.23.8 → 0.23.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.23.8",
3
+ "version": "0.23.9",
4
4
  "description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -129,6 +129,17 @@ If you need to share detailed information, include it in your response text.
129
129
 
130
130
  This helps the target agent understand the context and format their response appropriately.
131
131
 
132
+ ## Hidden Conversations
133
+
134
+ Agent-to-agent conversations (started via `--from-agent`) are created **hidden** on the target agent. They don't appear in the target's default conversation list in the ADE, so automated inter-agent chatter doesn't clutter the UI.
135
+
136
+ To inspect them:
137
+ - List hidden conversations via the API with `archive_status=archived` (or `all`)
138
+ - Pull the transcript directly with `letta messages transcript --conversation <id>`
139
+ - The `conversation_id` returned when you sent the message is the handle you need
140
+
141
+ Continuing a hidden conversation with `--conversation <id>` keeps it hidden — only archive status is affected, messaging still works normally.
142
+
132
143
  ## Related Skills
133
144
 
134
145
  - **finding-agents**: Find agents by name, tags, or fuzzy search
@@ -44,8 +44,8 @@ letta cron add --name <short-name> --description <text> --prompt <text> <schedul
44
44
 
45
45
  | Flag | Description |
46
46
  |------|-------------|
47
- | `--agent <id>` | Agent ID (defaults to `LETTA_AGENT_ID` env var usually already set) |
48
- | `--conversation <id>` | Conversation ID (defaults to `LETTA_CONVERSATION_ID` or `"default"`) |
47
+ | `--agent <id>` | Agent ID (defaults to `LETTA_AGENT_ID` from the current shell/session) |
48
+ | `--conversation <id>` | Conversation ID (defaults to `LETTA_CONVERSATION_ID` from the current shell/session, otherwise `"default"`) |
49
49
 
50
50
  ### Listing Tasks
51
51
 
@@ -61,6 +61,30 @@ Optional filters: `--agent <id>`, `--conversation <id>`
61
61
  letta cron get <task-id>
62
62
  ```
63
63
 
64
+ ### Binding a Task to the Right Conversation
65
+
66
+ If exact routing matters, pass both `--agent` and `--conversation` explicitly.
67
+
68
+ `letta cron add` will otherwise fall back to `LETTA_AGENT_ID` and `LETTA_CONVERSATION_ID` from the current shell/session. Those values may be correct for the current chat, but they can also be inherited from surrounding tooling, another conversation, or an older shell.
69
+
70
+ Safest pattern:
71
+
72
+ ```bash
73
+ letta cron add \
74
+ --name "email-check" \
75
+ --description "Daily email summary in this conversation" \
76
+ --prompt "Check the user's email and post a summary here." \
77
+ --cron "0 10 * * *" \
78
+ --agent "$AGENT_ID" \
79
+ --conversation "$CONVERSATION_ID"
80
+ ```
81
+
82
+ Then verify the binding explicitly:
83
+
84
+ ```bash
85
+ letta cron list --agent "$AGENT_ID" --conversation "$CONVERSATION_ID"
86
+ ```
87
+
64
88
  ### Deleting Tasks
65
89
 
66
90
  ```bash
@@ -119,6 +143,12 @@ letta cron add \
119
143
  letta cron list
120
144
  ```
121
145
 
146
+ If you need to confirm the exact conversation a task is bound to, list with explicit filters instead:
147
+
148
+ ```bash
149
+ letta cron list --agent "$AGENT_ID" --conversation "$CONVERSATION_ID"
150
+ ```
151
+
122
152
  ### "Cancel the dog walk reminder"
123
153
 
124
154
  First list to find the task ID, then delete:
@@ -144,6 +174,7 @@ Include context about what the user originally asked for, so you can give a help
144
174
  - **Recurring tasks**: No longer auto-expire. They remain active until explicitly cancelled.
145
175
  - **One-shot cleanup**: One-shot tasks are garbage-collected 24 hours after firing.
146
176
  - **Timezone**: Tasks use the user's local timezone by default.
177
+ - **Default binding precedence**: `letta cron add` uses `--agent` / `--conversation` first, then falls back to `LETTA_AGENT_ID` / `LETTA_CONVERSATION_ID`, then finally uses `"default"` for the conversation if no env var is present.
147
178
  - **Scheduler requirement**: Tasks only fire while a Letta session is running (a WS listener must be active). If no session is running, tasks will be marked as missed.
148
179
  - **`--at` for specific times**: `--at "3:00pm"` schedules a one-shot. If the time has already passed today, it schedules for tomorrow.
149
180
  - **`--every` for daily**: `--every 1d` fires daily at midnight. For a specific time of day, use `--cron` instead (e.g. `--cron "0 9 * * *"` for 9am daily).