taskchef 5.3.0 → 5.4.1
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/.codex-plugin/plugin.json +1 -1
- package/README.md +4 -4
- package/SPEC.md +19 -15
- package/package.json +1 -1
- package/skills/taskchef-delegate/SKILL.md +19 -18
package/README.md
CHANGED
|
@@ -123,10 +123,10 @@ Every delegated instruction begins with a unique
|
|
|
123
123
|
`<!-- taskchef_id=<UUID> -->` marker followed by a blank line. The valid HTML
|
|
124
124
|
comment stays invisible in rendered Markdown.
|
|
125
125
|
If worktree creation does not return a thread ID immediately, TaskChef records
|
|
126
|
-
the marked delegation as unresolved, then
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
the marked delegation as unresolved, then makes at most two exact-marker checks
|
|
127
|
+
during a short bounded window. Candidate reads use one programmatic batch per
|
|
128
|
+
check. If the batch cannot execute or TaskChef cannot identify exactly one
|
|
129
|
+
task, the recorded marker remains available for recovery.
|
|
130
130
|
|
|
131
131
|
### Ask for a live report
|
|
132
132
|
|
package/SPEC.md
CHANGED
|
@@ -181,7 +181,8 @@ For each assignment, `$taskchef-delegate`:
|
|
|
181
181
|
1. runs `dispatch prepare` and native Codex project discovery concurrently;
|
|
182
182
|
the preparation command resolves the canonical workspace, loads and
|
|
183
183
|
validates configured projects, and generates the full UUID, preparation
|
|
184
|
-
timestamp, and exact marker in one process
|
|
184
|
+
timestamp, and exact marker in one process; it never takes a pre-creation
|
|
185
|
+
thread snapshot
|
|
185
186
|
2. selects one unambiguous configured target and matches its exact path against
|
|
186
187
|
the already-loaded native projects
|
|
187
188
|
3. prefixes the instruction with the prepared exact
|
|
@@ -193,28 +194,31 @@ For each assignment, `$taskchef-delegate`:
|
|
|
193
194
|
temporary record file, and requests canonical-workspace write permission on
|
|
194
195
|
the first attempt when the command sandbox does not allow that path
|
|
195
196
|
6. when creation returns only a provisional client ID, immediately appends the
|
|
196
|
-
marked entry with `threadId: null
|
|
197
|
-
|
|
198
|
-
|
|
197
|
+
marked entry with `threadId: null`; the current supported Codex surface has
|
|
198
|
+
no provisional-ID resolver, so the skill performs no post-creation tool
|
|
199
|
+
availability inspection
|
|
200
|
+
7. takes at most two recent-thread
|
|
199
201
|
snapshots on a nominal 10- and 30-second schedule after the provisional
|
|
200
202
|
result; a late first checkpoint runs immediately, and the second starts at
|
|
201
203
|
least 20 seconds after the first actually started. It filters candidates by
|
|
202
204
|
available host/project/time/worktree metadata, uses title only as an advisory
|
|
203
|
-
ordering hint,
|
|
204
|
-
|
|
205
|
+
ordering hint, issues all independent candidate reads in exactly one
|
|
206
|
+
programmatic batch per snapshot, and accepts only one thread whose structured
|
|
207
|
+
delegated input starts with the exact marker; inability to execute that
|
|
208
|
+
required batch leaves the nullable record unresolved instead of switching to
|
|
209
|
+
serial reads
|
|
205
210
|
8. atomically fills the nullable thread ID after an exact match
|
|
206
211
|
9. returns after recording or after reporting that bounded resolution was
|
|
207
212
|
unresolved, without waiting for executor work completion.
|
|
208
213
|
|
|
209
|
-
The exact random marker
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
`codexDelegation.input`, never untrusted title, summary, preview, or
|
|
213
|
-
marker echoes.
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
fallback is bounded by two snapshots rather than an absolute wall-clock cutoff:
|
|
214
|
+
The exact random marker remains the sole correlation proof. Creation-time
|
|
215
|
+
filtering allows five seconds of clock skew. Candidate reads use exactly one
|
|
216
|
+
programmatic batch per snapshot and inspect only
|
|
217
|
+
structured `codexDelegation.input`, never untrusted title, summary, preview, or
|
|
218
|
+
plain-text marker echoes. Zero exact matches remain unresolved; multiple exact
|
|
219
|
+
matches are ambiguous. Snapshot, candidate-read, or task-resolution errors
|
|
220
|
+
leave the already-recorded nullable entry intact. The workflow is bounded by
|
|
221
|
+
two snapshots rather than an absolute wall-clock cutoff:
|
|
218
222
|
mandatory recording or tool latency can shift both attempts later, but cannot
|
|
219
223
|
erase an attempt or reduce the minimum 20-second interval between their start
|
|
220
224
|
times.
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ for all deterministic workspace and task-record operations.
|
|
|
21
21
|
- Never use hooks, callbacks, schedules, daemons, indefinite polling, or
|
|
22
22
|
background monitors.
|
|
23
23
|
- Use only bounded provisional-ID resolution after `create_thread` returns a
|
|
24
|
-
provisional client ID.
|
|
24
|
+
provisional client ID. Use the fixed marker-based workflow below.
|
|
25
25
|
- Never wait for delegated work after executor creation.
|
|
26
26
|
- Never collect transcripts or hidden reasoning.
|
|
27
27
|
|
|
@@ -35,7 +35,8 @@ for all deterministic workspace and task-record operations.
|
|
|
35
35
|
`$taskchef-bootstrap` if the workspace is missing or unhealthy.
|
|
36
36
|
The CLI resolves `--workspace`, then `TASKCHEF_WORKSPACE`, then
|
|
37
37
|
`~/.agents/taskchef`; do not substitute the current project. Reject the
|
|
38
|
-
dispatcher workspace itself as a target.
|
|
38
|
+
dispatcher workspace itself as a target. Never take a pre-creation thread
|
|
39
|
+
snapshot.
|
|
39
40
|
2. Split the request into the smallest independently useful outcomes. Include
|
|
40
41
|
constraints, expected testing, and reporting in every instruction.
|
|
41
42
|
3. Classify against configured `name`, every URL in the `githubRepos` list, and
|
|
@@ -54,9 +55,8 @@ for all deterministic workspace and task-record operations.
|
|
|
54
55
|
Prefix the complete executor instruction with
|
|
55
56
|
exactly `<!-- taskchef_id=<full UUID> -->` as the first line, followed by a
|
|
56
57
|
blank line and the instruction body. Preserve this
|
|
57
|
-
marked instruction for recording, and note the creation time.
|
|
58
|
-
|
|
59
|
-
correlation key.
|
|
58
|
+
marked instruction for recording, and note the creation time. The exact
|
|
59
|
+
random marker is the sole correlation proof.
|
|
60
60
|
6. Create one real Codex task using the exact configured project, a local
|
|
61
61
|
environment on its executor host, the marked instruction, and a short title.
|
|
62
62
|
7. When `create_thread` returns a durable `threadId`, immediately run
|
|
@@ -77,12 +77,11 @@ for all deterministic workspace and task-record operations.
|
|
|
77
77
|
Immediately record the marked instruction with `threadId: null` using the
|
|
78
78
|
command from step 7, then resolve the durable ID with this bounded workflow:
|
|
79
79
|
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
snapshots with limit 50. The nominal schedule is 10 and 30 seconds after
|
|
80
|
+
- The supported Codex surface has no provisional-ID resolver. Do not inspect
|
|
81
|
+
the tool surface for one after creation and do not pass the provisional ID
|
|
82
|
+
to tools that require `threadId`.
|
|
83
|
+
- Take at most two post-creation `list_threads` snapshots with limit 50. The
|
|
84
|
+
nominal schedule is 10 and 30 seconds after
|
|
86
85
|
the provisional result. Treat the first checkpoint as due, not expired: if
|
|
87
86
|
nullable recording or other required work finishes after 10 seconds, take
|
|
88
87
|
the first snapshot immediately. Start the second snapshot no sooner than
|
|
@@ -95,21 +94,23 @@ for all deterministic workspace and task-record operations.
|
|
|
95
94
|
those fields are present. Use the title only to prioritize reads; Codex
|
|
96
95
|
may normalize it, so never exclude a candidate because its title differs.
|
|
97
96
|
- Read every remaining candidate with `read_thread`, requesting one turn and
|
|
98
|
-
no command output.
|
|
99
|
-
|
|
97
|
+
no command output. Issue all independent reads together in exactly one
|
|
98
|
+
programmatic batch per snapshot. Do not probe for batching support and do
|
|
99
|
+
not fall back to serial tool-call round trips. When the required batch
|
|
100
|
+
cannot be executed, preserve the nullable record as unresolved. Inspect
|
|
101
|
+
only the
|
|
102
|
+
structured
|
|
100
103
|
`userMessage.content[].codexDelegation.input`; do not trust titles,
|
|
101
104
|
summaries, previews, plain-text echoes, or assistant output as proof.
|
|
102
105
|
- Accept a candidate only when the structured input's first line is exactly
|
|
103
106
|
the task's `<!-- taskchef_id=<full UUID> -->` marker and exactly one
|
|
104
107
|
candidate matches. Require an immediately following blank line. Reject old
|
|
105
108
|
heading-style markers, malformed comments, missing blank separators, and
|
|
106
|
-
marker-like text anywhere else.
|
|
107
|
-
|
|
108
|
-
thread ID equal to the provisional identifier or in its `local:` namespace.
|
|
109
|
-
Then use
|
|
109
|
+
marker-like text anywhere else. Reject any discovered thread ID equal to
|
|
110
|
+
the provisional identifier or in its `local:` namespace. Then use
|
|
110
111
|
the task-resolution command under **Later resolution** to atomically fill
|
|
111
112
|
the nullable field.
|
|
112
|
-
- Treat
|
|
113
|
+
- Treat snapshot, candidate-read, wait, and task-resolution
|
|
113
114
|
failures as indeterminate. If the workflow ends with zero exact matches,
|
|
114
115
|
multiple matches, or errors, leave the already-recorded `threadId: null`,
|
|
115
116
|
clearly report the unresolved reason and provisional diagnostic ID, and
|