@tekmidian/pai 0.18.6 → 0.19.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.
@@ -167,7 +167,7 @@ Generated man pages for every `pai` command area. Read any page in the terminal
167
167
  | `pai task add <title>` | File a task onto the bus |
168
168
  | `pai task config` | View or change task bus settings without running the full setup wizard |
169
169
  | `pai task dispatch` | Hand open tasks to the PAI sessions that own them |
170
- | `pai task done <id>` | Mark a task complete on the tracker |
170
+ | `pai task done <id>` | Mark a task complete on the tracker, keeping its discussion |
171
171
  | `pai task list` | List open tasks on the bus |
172
172
  | `pai task poll` | One scheduler tick: dispatch what is due, check what is running, report |
173
173
  | `pai task projects` | Show which sessions can be given work from the tracker, and create the missing projects |
@@ -23,7 +23,7 @@ pai task <subcommand> [options]
23
23
  | [`pai task poll`](#pai-task-poll) | One scheduler tick: dispatch what is due, check what is running, report |
24
24
  | [`pai task schedule`](#pai-task-schedule) | Install, remove or inspect the launchd agent that ticks the scheduler |
25
25
  | [`pai task config`](#pai-task-config) | View or change task bus settings without running the full setup wizard |
26
- | [`pai task done <id>`](#pai-task-done-id) | Mark a task complete on the tracker |
26
+ | [`pai task done <id>`](#pai-task-done-id) | Mark a task complete on the tracker, keeping its discussion |
27
27
 
28
28
  ### pai task projects
29
29
 
@@ -144,7 +144,7 @@ View or change task bus settings without running the full setup wizard
144
144
 
145
145
  ### pai task done <id>
146
146
 
147
- Mark a task complete on the tracker
147
+ Mark a task complete on the tracker, keeping its discussion
148
148
 
149
149
  **Arguments**
150
150
 
@@ -152,6 +152,12 @@ Mark a task complete on the tracker
152
152
  |----------|------|
153
153
  | `<id>` | required |
154
154
 
155
+ **Options**
156
+
157
+ | Option | Description | Default |
158
+ |--------|-------------|---------|
159
+ | `--no-archive` | Complete without saving the comment thread | |
160
+
155
161
 
156
162
  ## See also
157
163
 
package/docs/task-bus.md CHANGED
@@ -158,12 +158,25 @@ account that had genuinely authorised. Trust `aibroker todoist status`.
158
158
  **4. A lapsed grant looks like a healthy channel.** Webhooks are verified with
159
159
  the client *secret*, not the token, so **task delivery keeps working**. What
160
160
  breaks is everything needing the API: comment routing (a comment payload has no
161
- project or labels, so the parent must be fetched) and replying on a task. The
162
- signature is `401` with `error_code 477` and a `retry_after` that climbs —
163
- 3, 7, 65, 129 seconds. That climb is throttling stacked on a dead credential, so
164
- retrying makes it worse. The reliable tell is the consent dialog appearing again
165
- for a URL that used to redirect straight through. Fix: `aibroker todoist auth`
166
- and one click.
161
+ project or labels, so the parent must be fetched) and replying on a task. So the
162
+ signature is the asymmetry itself **tasks arrive, comments do not.**
163
+
164
+ The response is `401` with `error_code 477` and a `retry_after` that climbs:
165
+ 3, 7, 65, 129 seconds.
166
+
167
+ **That climb is not throttling, and this document said it was.** Todoist's
168
+ reference states that `retry_after` is backoff metadata not limited to 429s, and
169
+ that on a 477 you must *not* wait and retry the same token — an invalid token is
170
+ invalid, and waiting changes nothing. The escalating numbers look exactly like
171
+ rate limiting and are not. Corrected 2026-08-02, after the wrong explanation had
172
+ been repeated between two codebases and written down here as fact.
173
+
174
+ **Enable refresh tokens on the Todoist app.** Without them, Todoist issues
175
+ tokens with no `expires_in` and no refresh path: they die and can only be fixed
176
+ by re-authorising by hand, which is what produced two lapses in twenty hours.
177
+ With them, the token refreshes on demand and the daily re-auth disappears.
178
+
179
+ Fix for a grant that has already died: `aibroker todoist auth` and one click.
167
180
 
168
181
  ---
169
182
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekmidian/pai",
3
- "version": "0.18.6",
3
+ "version": "0.19.0",
4
4
  "description": "PAI Knowledge OS — Personal AI Infrastructure with federated memory and project management",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",