@tekmidian/pai 0.18.6 → 0.20.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/dist/cli/index.mjs +1 -1
- package/dist/cli/program.mjs +1 -1
- package/dist/config-CcdkNSWa.mjs.map +1 -1
- package/dist/pick-B_6bfxD8.mjs +13200 -0
- package/dist/pick-B_6bfxD8.mjs.map +1 -0
- package/dist/pick-CjUxUBL_.mjs +13192 -0
- package/dist/pick-CjUxUBL_.mjs.map +1 -0
- package/dist/pick-IuhHkAJn.mjs +12983 -0
- package/dist/pick-IuhHkAJn.mjs.map +1 -0
- package/docs/commands/README.md +2 -1
- package/docs/commands/registry.md +18 -0
- package/docs/commands/task.md +8 -2
- package/docs/task-bus.md +19 -6
- package/package.json +1 -1
package/docs/commands/README.md
CHANGED
|
@@ -139,6 +139,7 @@ Generated man pages for every `pai` command area. Read any page in the terminal
|
|
|
139
139
|
| `pai registry lookup` | Find the project slug for a filesystem path (for use in scripts) |
|
|
140
140
|
| `pai registry migrate` | Import data from ~/.claude/session-registry.json |
|
|
141
141
|
| `pai registry rebuild` | Erase all registry data and rebuild from the filesystem (destructive) |
|
|
142
|
+
| `pai registry reconnect` | Point projects back at the transcripts they lost. |
|
|
142
143
|
| `pai registry scan` | Walk ~/.claude/projects/ and configured scan_dirs, upsert all projects |
|
|
143
144
|
| `pai registry stats` | Show summary statistics for the registry |
|
|
144
145
|
| `pai restore` | Restore from a backup directory (created by pai backup) |
|
|
@@ -167,7 +168,7 @@ Generated man pages for every `pai` command area. Read any page in the terminal
|
|
|
167
168
|
| `pai task add <title>` | File a task onto the bus |
|
|
168
169
|
| `pai task config` | View or change task bus settings without running the full setup wizard |
|
|
169
170
|
| `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 |
|
|
171
|
+
| `pai task done <id>` | Mark a task complete on the tracker, keeping its discussion |
|
|
171
172
|
| `pai task list` | List open tasks on the bus |
|
|
172
173
|
| `pai task poll` | One scheduler tick: dispatch what is due, check what is running, report |
|
|
173
174
|
| `pai task projects` | Show which sessions can be given work from the tracker, and create the missing projects |
|
|
@@ -19,6 +19,7 @@ pai registry <subcommand> [options]
|
|
|
19
19
|
| [`pai registry stats`](#pai-registry-stats) | Show summary statistics for the registry |
|
|
20
20
|
| [`pai registry rebuild`](#pai-registry-rebuild) | Erase all registry data and rebuild from the filesystem (destructive) |
|
|
21
21
|
| [`pai registry dedupe`](#pai-registry-dedupe) | Merge registry rows that describe the same project. |
|
|
22
|
+
| [`pai registry reconnect`](#pai-registry-reconnect) | Point projects back at the transcripts they lost. |
|
|
22
23
|
| [`pai registry lookup`](#pai-registry-lookup) | Find the project slug for a filesystem path (for use in scripts) |
|
|
23
24
|
|
|
24
25
|
### pai registry scan
|
|
@@ -66,6 +67,23 @@ Dry-run by default; --execute backs up the registry first and merges in one tran
|
|
|
66
67
|
| `--execute` | Actually perform the merge (default is dry-run) | |
|
|
67
68
|
|
|
68
69
|
|
|
70
|
+
### pai registry reconnect
|
|
71
|
+
|
|
72
|
+
Point projects back at the transcripts they lost.
|
|
73
|
+
|
|
74
|
+
A project's encoded_dir is written once and never updated when the project
|
|
75
|
+
moves, so handovers, session digests and checkpoints silently find nothing.
|
|
76
|
+
Repairs are read from the transcripts themselves — each records the cwd it ran
|
|
77
|
+
in — rather than re-derived from the naming rule that broke.
|
|
78
|
+
Dry-run by default; --execute writes the corrected rows in one transaction.
|
|
79
|
+
|
|
80
|
+
**Options**
|
|
81
|
+
|
|
82
|
+
| Option | Description | Default |
|
|
83
|
+
|--------|-------------|---------|
|
|
84
|
+
| `--execute` | Actually write the corrections (default is dry-run) | |
|
|
85
|
+
|
|
86
|
+
|
|
69
87
|
### pai registry lookup
|
|
70
88
|
|
|
71
89
|
Find the project slug for a filesystem path (for use in scripts)
|
package/docs/commands/task.md
CHANGED
|
@@ -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.
|
|
162
|
-
signature is
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
|