@hecer/yoke 1.19.0 → 1.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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +27 -0
- package/README.md +4 -1
- package/bench/RESULTS.md +30 -0
- package/bench/analyze-codex-comparison.mjs +22 -0
- package/bench/compare-codex.mjs +71 -0
- package/bench/fixtures/independent-utils/.yoke/prd.yaml +30 -0
- package/bench/fixtures/independent-utils/bench-verify.mjs +4 -0
- package/bench/fixtures/independent-utils/package.json +1 -0
- package/bench/fixtures/independent-utils/src/chunk.mjs +1 -0
- package/bench/fixtures/independent-utils/src/range.mjs +1 -0
- package/bench/fixtures/independent-utils/src/unique.mjs +1 -0
- package/bench/fixtures/independent-utils/tests/STORY-1.test.mjs +8 -0
- package/bench/fixtures/independent-utils/tests/STORY-2.test.mjs +8 -0
- package/bench/fixtures/independent-utils/tests/STORY-3.test.mjs +8 -0
- package/bench/probe-goal-integration.mjs +93 -0
- package/bench/probe-parallel-gate-context.mjs +29 -0
- package/bench/results/codex-comparison-2026-09-29.json +305 -0
- package/bench/results/goal-integration-probes-2026-09-29.json +107 -0
- package/bench/results/native-goal-validation-2026-09-30.json +122 -0
- package/bench/results/parallel-validation-2026-09-30.json +86 -0
- package/dist/agents/process-record-identity.js +33 -0
- package/dist/check/command.js +218 -0
- package/dist/cli.js +11 -7
- package/dist/dashboard/server.js +26 -6
- package/dist/goals/codex-native.js +340 -0
- package/dist/goals/command.js +230 -29
- package/dist/loop/cleanup.js +10 -1
- package/dist/loop/dispatcher.js +82 -10
- package/dist/loop/git.js +1 -1
- package/dist/loop/parallel-adapters.js +53 -7
- package/dist/loop/parallel-command.js +8 -1
- package/dist/loop/recovery.js +81 -2
- package/dist/loop/reporter.js +3 -0
- package/dist/loop/resource-pool.js +21 -15
- package/dist/loop/run-command.js +91 -25
- package/dist/loop/run-state.js +116 -0
- package/dist/prd/explore.js +12 -4
- package/dist/retrofit/config.js +1 -0
- package/dist/retrofit/gitignore.js +3 -0
- package/docs/CODEX-COMPARISON-2026-09-29.md +27 -0
- package/docs/CONTINUOUS-EXPLORATION.md +6 -2
- package/docs/GOALS-RESOURCE-AUDIT-2026-09-29.md +92 -0
- package/docs/GOALS.md +109 -0
- package/docs/RELEASE-VALIDATION-1.20.0.md +100 -0
- package/docs/VERIFIED-PROJECTS.md +4 -4
- package/docs/parallel-execution.md +15 -0
- package/docs/superpowers/plans/2026-09-30-goals-resources-release.md +78 -0
- package/gemini-extension.json +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
{
|
|
2
|
+
"auditedVersion": "1.19.0",
|
|
3
|
+
"auditedCommit": "05fac3db1a51412563005e07f80e6e5a9aab8e06",
|
|
4
|
+
"models": [
|
|
5
|
+
"gpt-6.1-sol"
|
|
6
|
+
],
|
|
7
|
+
"effort": "low",
|
|
8
|
+
"groups": [
|
|
9
|
+
{
|
|
10
|
+
"fixture": "routing-queue",
|
|
11
|
+
"arm": "codex",
|
|
12
|
+
"runs": 2,
|
|
13
|
+
"accepted": 2,
|
|
14
|
+
"medianWallMs": 118278.5,
|
|
15
|
+
"medianFreshInputTokens": 25292,
|
|
16
|
+
"medianOutputTokens": 2162,
|
|
17
|
+
"medianAllInputTokens": 137548
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"fixture": "routing-queue",
|
|
21
|
+
"arm": "yoke-serial",
|
|
22
|
+
"runs": 2,
|
|
23
|
+
"accepted": 2,
|
|
24
|
+
"medianWallMs": 274943.5,
|
|
25
|
+
"medianFreshInputTokens": 48524,
|
|
26
|
+
"medianOutputTokens": 4822,
|
|
27
|
+
"medianAllInputTokens": 396300
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"fixture": "independent-utils",
|
|
31
|
+
"arm": "codex",
|
|
32
|
+
"runs": 1,
|
|
33
|
+
"accepted": 1,
|
|
34
|
+
"medianWallMs": 71283,
|
|
35
|
+
"medianFreshInputTokens": 10263,
|
|
36
|
+
"medianOutputTokens": 797,
|
|
37
|
+
"medianAllInputTokens": 84503
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"fixture": "independent-utils",
|
|
41
|
+
"arm": "yoke-serial",
|
|
42
|
+
"runs": 1,
|
|
43
|
+
"accepted": 1,
|
|
44
|
+
"medianWallMs": 442189,
|
|
45
|
+
"medianFreshInputTokens": 92330,
|
|
46
|
+
"medianOutputTokens": 3905,
|
|
47
|
+
"medianAllInputTokens": 626986
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"fixture": "independent-utils",
|
|
51
|
+
"arm": "yoke-parallel",
|
|
52
|
+
"runs": 1,
|
|
53
|
+
"accepted": 0,
|
|
54
|
+
"medianWallMs": 117101,
|
|
55
|
+
"medianFreshInputTokens": 81497,
|
|
56
|
+
"medianOutputTokens": 3487,
|
|
57
|
+
"medianAllInputTokens": 481753
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"runs": [
|
|
61
|
+
{
|
|
62
|
+
"fixture": "routing-queue",
|
|
63
|
+
"repeat": 1,
|
|
64
|
+
"arm": "codex",
|
|
65
|
+
"model": "gpt-6.1-sol",
|
|
66
|
+
"effort": "low",
|
|
67
|
+
"routing": false,
|
|
68
|
+
"nativeMultiAgent": false,
|
|
69
|
+
"wallMs": 112482,
|
|
70
|
+
"acceptanceMs": 175,
|
|
71
|
+
"accepted": true,
|
|
72
|
+
"outcome": "succeeded",
|
|
73
|
+
"usage": {
|
|
74
|
+
"inputTokens": 158620,
|
|
75
|
+
"cachedInputTokens": 121984,
|
|
76
|
+
"cacheWriteInputTokens": 0,
|
|
77
|
+
"outputTokens": 2190,
|
|
78
|
+
"reasoningOutputTokens": 18
|
|
79
|
+
},
|
|
80
|
+
"events": 0,
|
|
81
|
+
"freshInputTokens": 36636
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"fixture": "routing-queue",
|
|
85
|
+
"repeat": 1,
|
|
86
|
+
"arm": "yoke-serial",
|
|
87
|
+
"model": "gpt-6.1-sol",
|
|
88
|
+
"effort": "low",
|
|
89
|
+
"routing": false,
|
|
90
|
+
"nativeMultiAgent": false,
|
|
91
|
+
"wallMs": 273000,
|
|
92
|
+
"acceptanceMs": 173,
|
|
93
|
+
"accepted": true,
|
|
94
|
+
"outcome": 0,
|
|
95
|
+
"usage": {
|
|
96
|
+
"inputTokens": 383543,
|
|
97
|
+
"cachedInputTokens": 334720,
|
|
98
|
+
"cacheWriteInputTokens": 0,
|
|
99
|
+
"outputTokens": 4924,
|
|
100
|
+
"reasoningOutputTokens": 104
|
|
101
|
+
},
|
|
102
|
+
"events": 11,
|
|
103
|
+
"freshInputTokens": 48823
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"fixture": "routing-queue",
|
|
107
|
+
"repeat": 2,
|
|
108
|
+
"arm": "yoke-serial",
|
|
109
|
+
"model": "gpt-6.1-sol",
|
|
110
|
+
"effort": "low",
|
|
111
|
+
"routing": false,
|
|
112
|
+
"nativeMultiAgent": false,
|
|
113
|
+
"wallMs": 276887,
|
|
114
|
+
"acceptanceMs": 169,
|
|
115
|
+
"accepted": true,
|
|
116
|
+
"outcome": 0,
|
|
117
|
+
"usage": {
|
|
118
|
+
"inputTokens": 409057,
|
|
119
|
+
"cachedInputTokens": 360832,
|
|
120
|
+
"cacheWriteInputTokens": 0,
|
|
121
|
+
"outputTokens": 4720,
|
|
122
|
+
"reasoningOutputTokens": 81
|
|
123
|
+
},
|
|
124
|
+
"events": 11,
|
|
125
|
+
"freshInputTokens": 48225
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"fixture": "routing-queue",
|
|
129
|
+
"repeat": 2,
|
|
130
|
+
"arm": "codex",
|
|
131
|
+
"model": "gpt-6.1-sol",
|
|
132
|
+
"effort": "low",
|
|
133
|
+
"routing": false,
|
|
134
|
+
"nativeMultiAgent": false,
|
|
135
|
+
"wallMs": 124075,
|
|
136
|
+
"acceptanceMs": 409,
|
|
137
|
+
"accepted": true,
|
|
138
|
+
"outcome": "succeeded",
|
|
139
|
+
"usage": {
|
|
140
|
+
"inputTokens": 116476,
|
|
141
|
+
"cachedInputTokens": 102528,
|
|
142
|
+
"cacheWriteInputTokens": 0,
|
|
143
|
+
"outputTokens": 2134,
|
|
144
|
+
"reasoningOutputTokens": 28
|
|
145
|
+
},
|
|
146
|
+
"events": 0,
|
|
147
|
+
"freshInputTokens": 13948
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"fixture": "independent-utils",
|
|
151
|
+
"repeat": 1,
|
|
152
|
+
"arm": "codex",
|
|
153
|
+
"model": "gpt-6.1-sol",
|
|
154
|
+
"effort": "low",
|
|
155
|
+
"routing": false,
|
|
156
|
+
"nativeMultiAgent": false,
|
|
157
|
+
"parallel": 1,
|
|
158
|
+
"acceptanceDigest": "3e9734e6d286b7c9d19e6ce473eea17e1adf9e30a6ee8927c7240170602f14f7",
|
|
159
|
+
"wallMs": 71283,
|
|
160
|
+
"acceptanceMs": 354,
|
|
161
|
+
"accepted": true,
|
|
162
|
+
"outcome": "succeeded",
|
|
163
|
+
"usage": {
|
|
164
|
+
"inputTokens": 84503,
|
|
165
|
+
"cachedInputTokens": 74240,
|
|
166
|
+
"cacheWriteInputTokens": 0,
|
|
167
|
+
"outputTokens": 797,
|
|
168
|
+
"reasoningOutputTokens": 7
|
|
169
|
+
},
|
|
170
|
+
"events": 0,
|
|
171
|
+
"freshInputTokens": 10263
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"fixture": "independent-utils",
|
|
175
|
+
"repeat": 1,
|
|
176
|
+
"arm": "yoke-serial",
|
|
177
|
+
"model": "gpt-6.1-sol",
|
|
178
|
+
"effort": "low",
|
|
179
|
+
"routing": false,
|
|
180
|
+
"nativeMultiAgent": false,
|
|
181
|
+
"parallel": 1,
|
|
182
|
+
"acceptanceDigest": "3e9734e6d286b7c9d19e6ce473eea17e1adf9e30a6ee8927c7240170602f14f7",
|
|
183
|
+
"wallMs": 442189,
|
|
184
|
+
"acceptanceMs": 454,
|
|
185
|
+
"accepted": true,
|
|
186
|
+
"outcome": 0,
|
|
187
|
+
"usage": {
|
|
188
|
+
"inputTokens": 626986,
|
|
189
|
+
"cachedInputTokens": 534656,
|
|
190
|
+
"cacheWriteInputTokens": 0,
|
|
191
|
+
"outputTokens": 3905,
|
|
192
|
+
"reasoningOutputTokens": 60
|
|
193
|
+
},
|
|
194
|
+
"events": 16,
|
|
195
|
+
"freshInputTokens": 92330
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"fixture": "independent-utils",
|
|
199
|
+
"repeat": 1,
|
|
200
|
+
"arm": "yoke-parallel",
|
|
201
|
+
"model": "gpt-6.1-sol",
|
|
202
|
+
"effort": "low",
|
|
203
|
+
"routing": false,
|
|
204
|
+
"nativeMultiAgent": false,
|
|
205
|
+
"parallel": 3,
|
|
206
|
+
"acceptanceDigest": "3e9734e6d286b7c9d19e6ce473eea17e1adf9e30a6ee8927c7240170602f14f7",
|
|
207
|
+
"wallMs": 117101,
|
|
208
|
+
"acceptanceMs": 306,
|
|
209
|
+
"accepted": false,
|
|
210
|
+
"outcome": 1,
|
|
211
|
+
"usage": {
|
|
212
|
+
"inputTokens": 481753,
|
|
213
|
+
"cachedInputTokens": 400256,
|
|
214
|
+
"cacheWriteInputTokens": 0,
|
|
215
|
+
"outputTokens": 3487,
|
|
216
|
+
"reasoningOutputTokens": 72
|
|
217
|
+
},
|
|
218
|
+
"events": 22,
|
|
219
|
+
"freshInputTokens": 81497
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"limitations": [
|
|
223
|
+
"Small fixture sample; not representative of production projects",
|
|
224
|
+
"CPU and RAM not measured",
|
|
225
|
+
"Immutable tests replayed after execution; not hidden from agents",
|
|
226
|
+
"User config disabled; not an audit of every installed plugin",
|
|
227
|
+
"Routing disabled; fixed model and effort",
|
|
228
|
+
"Queue fixture: two alternating pairs; independent fixture: one sample per arm",
|
|
229
|
+
"Single Windows machine; uncontrolled background load",
|
|
230
|
+
"Failed parallel run is not an accepted speedup",
|
|
231
|
+
"No causal A/B test isolating context startup, worktree or verification overhead"
|
|
232
|
+
],
|
|
233
|
+
"pricesMeasured": false,
|
|
234
|
+
"cpuMeasured": false,
|
|
235
|
+
"memoryMeasured": false,
|
|
236
|
+
"date": "2026-09-29",
|
|
237
|
+
"setupDiagnostics": [
|
|
238
|
+
{
|
|
239
|
+
"fixture": "independent-utils",
|
|
240
|
+
"repeat": 1,
|
|
241
|
+
"arm": "codex",
|
|
242
|
+
"model": "gpt-6.1-sol",
|
|
243
|
+
"effort": "low",
|
|
244
|
+
"routing": false,
|
|
245
|
+
"nativeMultiAgent": false,
|
|
246
|
+
"parallel": 1,
|
|
247
|
+
"wallMs": 75037,
|
|
248
|
+
"acceptanceMs": 352,
|
|
249
|
+
"accepted": true,
|
|
250
|
+
"outcome": "succeeded",
|
|
251
|
+
"usage": {
|
|
252
|
+
"inputTokens": 86851,
|
|
253
|
+
"cachedInputTokens": 75520,
|
|
254
|
+
"cacheWriteInputTokens": 0,
|
|
255
|
+
"outputTokens": 1013,
|
|
256
|
+
"reasoningOutputTokens": 37
|
|
257
|
+
},
|
|
258
|
+
"events": 0,
|
|
259
|
+
"diagnosticOnly": true,
|
|
260
|
+
"exclusionReason": "Initial fixture lacked runtime ignore rules; not grouped with corrected fixture"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"fixture": "independent-utils",
|
|
264
|
+
"repeat": 1,
|
|
265
|
+
"arm": "yoke-serial",
|
|
266
|
+
"model": "gpt-6.1-sol",
|
|
267
|
+
"effort": "low",
|
|
268
|
+
"routing": false,
|
|
269
|
+
"nativeMultiAgent": false,
|
|
270
|
+
"parallel": 1,
|
|
271
|
+
"wallMs": 116055,
|
|
272
|
+
"acceptanceMs": 627,
|
|
273
|
+
"accepted": false,
|
|
274
|
+
"outcome": 1,
|
|
275
|
+
"usage": {
|
|
276
|
+
"inputTokens": 176111,
|
|
277
|
+
"cachedInputTokens": 147072,
|
|
278
|
+
"cacheWriteInputTokens": 0,
|
|
279
|
+
"outputTokens": 1317,
|
|
280
|
+
"reasoningOutputTokens": 26
|
|
281
|
+
},
|
|
282
|
+
"events": 6,
|
|
283
|
+
"diagnosticOnly": true,
|
|
284
|
+
"exclusionReason": "Initial fixture lacked runtime ignore rules; not grouped with corrected fixture"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"fixture": "independent-utils",
|
|
288
|
+
"repeat": 1,
|
|
289
|
+
"arm": "yoke-parallel",
|
|
290
|
+
"model": "gpt-6.1-sol",
|
|
291
|
+
"effort": "low",
|
|
292
|
+
"routing": false,
|
|
293
|
+
"nativeMultiAgent": false,
|
|
294
|
+
"parallel": 3,
|
|
295
|
+
"wallMs": 3555,
|
|
296
|
+
"acceptanceMs": 678,
|
|
297
|
+
"accepted": false,
|
|
298
|
+
"outcome": 1,
|
|
299
|
+
"usage": null,
|
|
300
|
+
"events": 0,
|
|
301
|
+
"diagnosticOnly": true,
|
|
302
|
+
"exclusionReason": "Git worktree path exceeded Windows limit before provider startup"
|
|
303
|
+
}
|
|
304
|
+
]
|
|
305
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"date": "2026-09-29",
|
|
3
|
+
"auditedVersion": "1.19.0",
|
|
4
|
+
"codexVersion": "0.161.0-alpha.2",
|
|
5
|
+
"poolProbe": {
|
|
6
|
+
"fakeExecutor": true,
|
|
7
|
+
"limit": 1,
|
|
8
|
+
"executedWhilePoolFull": true,
|
|
9
|
+
"goalStatus": "complete"
|
|
10
|
+
},
|
|
11
|
+
"budgetProbe": {
|
|
12
|
+
"fakeExecutor": true,
|
|
13
|
+
"tokenBudget": 1,
|
|
14
|
+
"measuredTokens": 100,
|
|
15
|
+
"timeBudgetMs": 60,
|
|
16
|
+
"totalWallMs": 652,
|
|
17
|
+
"recordedAgentMs": 3,
|
|
18
|
+
"status": "complete"
|
|
19
|
+
},
|
|
20
|
+
"objectiveProbe": {
|
|
21
|
+
"requestedArtifact": "new-feature.txt",
|
|
22
|
+
"requestedArtifactExists": false,
|
|
23
|
+
"acceptance": "only checks old-feature.txt",
|
|
24
|
+
"executorCalled": false,
|
|
25
|
+
"attempts": 0,
|
|
26
|
+
"status": "complete"
|
|
27
|
+
},
|
|
28
|
+
"nativeProtocolProbe": {
|
|
29
|
+
"modelDevelopmentTurnRequested": false,
|
|
30
|
+
"archived": true,
|
|
31
|
+
"calls": [
|
|
32
|
+
{
|
|
33
|
+
"method": "thread/goal/set",
|
|
34
|
+
"requestedStatus": null,
|
|
35
|
+
"returnedStatus": "active",
|
|
36
|
+
"tokenBudget": 1000,
|
|
37
|
+
"tokensUsed": 0
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"method": "thread/goal/get",
|
|
41
|
+
"requestedStatus": null,
|
|
42
|
+
"returnedStatus": "active",
|
|
43
|
+
"tokenBudget": 1000,
|
|
44
|
+
"tokensUsed": 0
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"method": "thread/goal/set",
|
|
48
|
+
"requestedStatus": "paused",
|
|
49
|
+
"returnedStatus": "paused",
|
|
50
|
+
"tokenBudget": 1000,
|
|
51
|
+
"tokensUsed": 0
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"method": "thread/goal/get",
|
|
55
|
+
"requestedStatus": null,
|
|
56
|
+
"returnedStatus": "paused",
|
|
57
|
+
"tokenBudget": 1000,
|
|
58
|
+
"tokensUsed": 0
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"method": "thread/goal/clear",
|
|
62
|
+
"requestedStatus": null,
|
|
63
|
+
"returnedStatus": null,
|
|
64
|
+
"tokenBudget": null,
|
|
65
|
+
"tokensUsed": null,
|
|
66
|
+
"cleared": true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"method": "thread/goal/get",
|
|
70
|
+
"requestedStatus": null,
|
|
71
|
+
"returnedStatus": null,
|
|
72
|
+
"tokenBudget": null,
|
|
73
|
+
"tokensUsed": null
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"parallelGateProbe": [
|
|
78
|
+
{
|
|
79
|
+
"fakeAgentsAndGit": true,
|
|
80
|
+
"requiresStoryContext": false,
|
|
81
|
+
"exitCode": 0,
|
|
82
|
+
"observedContexts": [
|
|
83
|
+
"A",
|
|
84
|
+
"B",
|
|
85
|
+
"C",
|
|
86
|
+
null,
|
|
87
|
+
null,
|
|
88
|
+
null
|
|
89
|
+
],
|
|
90
|
+
"acceptedStories": 3
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"fakeAgentsAndGit": true,
|
|
94
|
+
"requiresStoryContext": true,
|
|
95
|
+
"exitCode": 1,
|
|
96
|
+
"observedContexts": [
|
|
97
|
+
"A",
|
|
98
|
+
"B",
|
|
99
|
+
"C",
|
|
100
|
+
null,
|
|
101
|
+
null,
|
|
102
|
+
null
|
|
103
|
+
],
|
|
104
|
+
"acceptedStories": 0
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"validationDate": "2026-09-30",
|
|
4
|
+
"generatedBy": "Codex-assisted validation",
|
|
5
|
+
"codexVersion": "0.161.0-alpha.2",
|
|
6
|
+
"model": "gpt-6.1-sol",
|
|
7
|
+
"reasoningEffort": "low",
|
|
8
|
+
"evidence": "Protected executable acceptance commands, saved provider counters, and shared capacity snapshots.",
|
|
9
|
+
"cases": {
|
|
10
|
+
"nativeBareStartup": {
|
|
11
|
+
"status": "blocked",
|
|
12
|
+
"limitation": "Codex app-server does not support ignoring user config. Native bare mode is now rejected before spawn."
|
|
13
|
+
},
|
|
14
|
+
"nativeBeforeWindowsShellFix": {
|
|
15
|
+
"status": "blocked",
|
|
16
|
+
"artifactCorrect": true,
|
|
17
|
+
"limitation": "Windows Store PowerShell repeatedly failed sandbox command launch; the two-minute agent deadline interrupted the turn and its usage remained unknown."
|
|
18
|
+
},
|
|
19
|
+
"retainedThreadResume": {
|
|
20
|
+
"status": "complete",
|
|
21
|
+
"sameGoalId": true,
|
|
22
|
+
"sameNativeThread": true,
|
|
23
|
+
"attemptsBefore": 1,
|
|
24
|
+
"attemptsAfter": 1,
|
|
25
|
+
"independentCheckStatus": "passed",
|
|
26
|
+
"explicitDisposableBudgetOverride": {
|
|
27
|
+
"clearTokenBudget": true,
|
|
28
|
+
"reason": "Historical interrupted turn had unknown usage; retained as unknown, previous report preserved"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"nativeAfterShellFixBeforeAccountingFix": {
|
|
32
|
+
"status": "complete",
|
|
33
|
+
"independentCheckStatus": "passed",
|
|
34
|
+
"reportedLastIncrement": {
|
|
35
|
+
"inputTokens": 23419,
|
|
36
|
+
"outputTokens": 60
|
|
37
|
+
},
|
|
38
|
+
"savedProviderCumulativeTotals": {
|
|
39
|
+
"inputTokens": 133408,
|
|
40
|
+
"outputTokens": 780,
|
|
41
|
+
"cachedInputTokens": 111232,
|
|
42
|
+
"reasoningOutputTokens": 56
|
|
43
|
+
},
|
|
44
|
+
"limitation": "This historical run initially counted only the last model request. The saved provider totals exposed the error; this report preserves both measurements."
|
|
45
|
+
},
|
|
46
|
+
"nativeAfterAccountingFix": {
|
|
47
|
+
"status": "complete",
|
|
48
|
+
"attempts": 1,
|
|
49
|
+
"attemptSuccess": true,
|
|
50
|
+
"nativeThreadBound": true,
|
|
51
|
+
"artifactCorrect": true,
|
|
52
|
+
"independentCheckStatus": "passed",
|
|
53
|
+
"agentDurationMs": 82634,
|
|
54
|
+
"wallDurationMs": 89855,
|
|
55
|
+
"limits": {
|
|
56
|
+
"maxAttempts": 1,
|
|
57
|
+
"agentMinutes": 5,
|
|
58
|
+
"wallMinutes": 7,
|
|
59
|
+
"tokenBudget": 300000
|
|
60
|
+
},
|
|
61
|
+
"measuredTurnUsage": {
|
|
62
|
+
"inputTokens": 153736,
|
|
63
|
+
"outputTokens": 606,
|
|
64
|
+
"cachedInputTokens": 134528,
|
|
65
|
+
"cacheWriteInputTokens": 0,
|
|
66
|
+
"reasoningOutputTokens": 53
|
|
67
|
+
},
|
|
68
|
+
"durableUsageBaselineMatchesTurnUsage": true,
|
|
69
|
+
"nativeGoalCounter": {
|
|
70
|
+
"tokensUsed": 0,
|
|
71
|
+
"interpretation": "The paused native goal counter remains separate from measured model usage."
|
|
72
|
+
},
|
|
73
|
+
"resume": {
|
|
74
|
+
"status": "complete",
|
|
75
|
+
"attempts": 1,
|
|
76
|
+
"sameGoalId": true,
|
|
77
|
+
"sameNativeThread": true
|
|
78
|
+
},
|
|
79
|
+
"cleanup": {
|
|
80
|
+
"remainingProviderRecords": 0,
|
|
81
|
+
"activeModelUnits": 0,
|
|
82
|
+
"activeCheckUnits": 0
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"sharedCapacity": {
|
|
86
|
+
"fakeExecutor": true,
|
|
87
|
+
"limit": 1,
|
|
88
|
+
"queuedWhilePoolFull": true,
|
|
89
|
+
"executedWhilePoolFull": false,
|
|
90
|
+
"goalStatus": "complete"
|
|
91
|
+
},
|
|
92
|
+
"budgetOverrun": {
|
|
93
|
+
"fakeExecutor": true,
|
|
94
|
+
"tokenBudget": 1,
|
|
95
|
+
"measuredTokens": 100,
|
|
96
|
+
"timeBudgetMs": 60,
|
|
97
|
+
"totalWallMs": 1208,
|
|
98
|
+
"recordedAgentMs": 30,
|
|
99
|
+
"status": "blocked"
|
|
100
|
+
},
|
|
101
|
+
"unboundObjective": {
|
|
102
|
+
"requestedArtifact": "new-feature.txt",
|
|
103
|
+
"requestedArtifactExists": false,
|
|
104
|
+
"acceptance": "only checks old-feature.txt; intentionally unbound objective",
|
|
105
|
+
"executorCalled": false,
|
|
106
|
+
"attempts": 0,
|
|
107
|
+
"status": "blocked"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"accounting": {
|
|
111
|
+
"source": "thread/tokenUsage/updated.tokenUsage.total",
|
|
112
|
+
"method": "Subtract the durable same-thread cumulative baseline; new threads begin at zero. Repeated absolute snapshots are not added again.",
|
|
113
|
+
"unknownUsage": "Missing or malformed snapshots remain unknown. Decreasing counters mark the reused binding untrusted until a fresh thread is explicitly selected.",
|
|
114
|
+
"reference": "https://github.com/openai/symphony/blob/main/elixir/docs/token_accounting.md"
|
|
115
|
+
},
|
|
116
|
+
"limits": [
|
|
117
|
+
"These are bounded disposable smoke cases, not a long-running recovery or provider parity benchmark.",
|
|
118
|
+
"Native Codex goals remain experimental and opt-in; method-unavailable fallback does not hide authentication, network, or provider errors.",
|
|
119
|
+
"Native goals stay paused during explicit Yoke turns; independent executable checks determine Yoke completion.",
|
|
120
|
+
"Privacy exports omit thread identifiers, local root paths, and raw transcripts."
|
|
121
|
+
]
|
|
122
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"date": "2026-09-30",
|
|
4
|
+
"purpose": "Single-arm parallel acceptance smoke validation; no baseline or efficiency comparison",
|
|
5
|
+
"aiDisclosure": "AI assisted report; authenticated AI providers implemented work inside disposable benchmark fixtures.",
|
|
6
|
+
"source": {
|
|
7
|
+
"version": "1.20.0",
|
|
8
|
+
"commit": "05fac3db1a51412563005e07f80e6e5a9aab8e06",
|
|
9
|
+
"state": "Uncommitted validation worktree; built before execution"
|
|
10
|
+
},
|
|
11
|
+
"fixture": "independent-utils",
|
|
12
|
+
"model": "gpt-6.1-sol",
|
|
13
|
+
"reasoningEffort": "low",
|
|
14
|
+
"arm": "yoke-parallel",
|
|
15
|
+
"parallelWorkers": 3,
|
|
16
|
+
"maxIterations": 3,
|
|
17
|
+
"routing": false,
|
|
18
|
+
"nativeMultiAgent": false,
|
|
19
|
+
"acceptanceDigest": "3e9734e6d286b7c9d19e6ce473eea17e1adf9e30a6ee8927c7240170602f14f7",
|
|
20
|
+
"samples": [
|
|
21
|
+
{
|
|
22
|
+
"sample": "initial-runtime-claims-failure",
|
|
23
|
+
"root": "<disposable-initial-smoke>",
|
|
24
|
+
"buildContext": "Before production runtime claim exclusions were added",
|
|
25
|
+
"version": "1.20.0",
|
|
26
|
+
"exitCode": 1,
|
|
27
|
+
"status": "blocked",
|
|
28
|
+
"accepted": false,
|
|
29
|
+
"durationMs": 148237,
|
|
30
|
+
"immutableAcceptanceDurationMs": 245,
|
|
31
|
+
"stories": { "total": 3, "accepted": 0, "rejectedIntegration": 3 },
|
|
32
|
+
"immutableTests": { "total": 15, "passed": 0, "failed": 15, "cancelled": 0, "skipped": 0 },
|
|
33
|
+
"usage": {
|
|
34
|
+
"inputTokens": 646600,
|
|
35
|
+
"cachedInputTokens": 571264,
|
|
36
|
+
"cacheWriteInputTokens": 0,
|
|
37
|
+
"outputTokens": 3796,
|
|
38
|
+
"reasoningOutputTokens": 91,
|
|
39
|
+
"costUsd": null
|
|
40
|
+
},
|
|
41
|
+
"measurement": { "measuredCalls": 3, "unknownCalls": 0, "unmeasuredAttempts": 3, "costAvailable": "unknown" },
|
|
42
|
+
"failure": {
|
|
43
|
+
"classification": "Runtime claim files missing from Git cleanliness exclusions",
|
|
44
|
+
"integrationReason": "target working tree is not clean",
|
|
45
|
+
"immutableReplayReason": "No implementations integrated; original source stubs remained unimplemented",
|
|
46
|
+
"diagnostic": "Built realGitOps.isClean returned true without a claim file and false with a temporary diagnostic claim file in the completed disposable fixture.",
|
|
47
|
+
"retainedCandidates": 3,
|
|
48
|
+
"modelCandidateQuality": "Not independently established by the final root replay"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"sample": "corrected-runtime-claims-smoke",
|
|
53
|
+
"root": "<disposable-corrected-smoke>",
|
|
54
|
+
"buildContext": "Production claim and worktree runtime exclusions added; rebuilt before execution",
|
|
55
|
+
"version": "1.20.0",
|
|
56
|
+
"exitCode": 0,
|
|
57
|
+
"status": "complete",
|
|
58
|
+
"accepted": true,
|
|
59
|
+
"durationMs": 112949,
|
|
60
|
+
"immutableAcceptanceDurationMs": 257,
|
|
61
|
+
"stories": { "total": 3, "accepted": 3, "rejectedIntegration": 0 },
|
|
62
|
+
"immutableTests": { "total": 15, "passed": 15, "failed": 0, "cancelled": 0, "skipped": 0, "nodeTestDurationMs": 159.3043 },
|
|
63
|
+
"immutableProtectedFiles": { "total": 4, "byteIdenticalToSeedAfterReplay": true },
|
|
64
|
+
"usage": {
|
|
65
|
+
"inputTokens": 456659,
|
|
66
|
+
"cachedInputTokens": 372096,
|
|
67
|
+
"cacheWriteInputTokens": 0,
|
|
68
|
+
"outputTokens": 3217,
|
|
69
|
+
"reasoningOutputTokens": 64,
|
|
70
|
+
"costUsd": null
|
|
71
|
+
},
|
|
72
|
+
"measurement": { "measuredCalls": 3, "unknownCalls": 0, "unmeasuredAttempts": 3, "costAvailable": "unknown" }
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"sampleLimits": [
|
|
76
|
+
"One initial failed parallel sample and one corrected parallel sample; each executed once",
|
|
77
|
+
"No baseline or serial arm; no general efficiency conclusion",
|
|
78
|
+
"Small fixture with three independent stories and fifteen visible tests",
|
|
79
|
+
"Immutable original verification files restored and replayed after provider execution",
|
|
80
|
+
"CPU and RAM not measured; machine load not controlled",
|
|
81
|
+
"Fixed model and low effort; routing and native multi-agent delegation disabled",
|
|
82
|
+
"User config disabled; installed plugins and host skill discovery not exhaustively audited",
|
|
83
|
+
"Reported token counters retained as observed; unknown cost is not zero cost",
|
|
84
|
+
"Private prompts, transcripts, identifiers and local root paths excluded; raw logs retained outside Git"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { writeFileSync, renameSync, existsSync, rmSync } from 'node:fs';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { processIncarnation } from './process-incarnation.js';
|
|
5
|
+
/** Resolve ownership without blocking cancellation timers on a slow CIM query. */
|
|
6
|
+
export function trackProcessRecordIdentity(record, child) {
|
|
7
|
+
let cancelled = false;
|
|
8
|
+
const update = (identity) => {
|
|
9
|
+
if (!identity || cancelled || child.exitCode !== null || child.signalCode !== null || !record || !existsSync(record.path))
|
|
10
|
+
return;
|
|
11
|
+
const temporary = `${record.path}.${randomUUID()}.tmp`;
|
|
12
|
+
try {
|
|
13
|
+
writeFileSync(temporary, JSON.stringify({ version: record.version, owner: record.owner, targetDir: record.targetDir, childPid: record.childPid, startedAt: identity, workerId: record.workerId }), { flag: 'wx', mode: 0o600 });
|
|
14
|
+
renameSync(temporary, record.path);
|
|
15
|
+
}
|
|
16
|
+
catch { /* unknown identity remains conservative */ }
|
|
17
|
+
finally {
|
|
18
|
+
try {
|
|
19
|
+
rmSync(temporary, { force: true });
|
|
20
|
+
}
|
|
21
|
+
catch { /* stale temporary is diagnostic evidence */ }
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
if (!record || !child.pid)
|
|
25
|
+
return () => { };
|
|
26
|
+
if (process.platform !== 'win32') {
|
|
27
|
+
update(processIncarnation(child.pid));
|
|
28
|
+
return () => { cancelled = true; };
|
|
29
|
+
}
|
|
30
|
+
const query = execFile('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', '(Get-CimInstance Win32_Process -Filter "ProcessId = $env:YOKE_PROCESS_PID").CreationDate'], { env: { ...process.env, YOKE_PROCESS_PID: String(child.pid) }, windowsHide: true, timeout: 5000, maxBuffer: 4096 }, (error, stdout) => update(!error && stdout.trim() ? `win32:${stdout.trim()}` : undefined));
|
|
31
|
+
return () => { cancelled = true; if (query.exitCode === null && query.signalCode === null)
|
|
32
|
+
query.kill('SIGKILL'); };
|
|
33
|
+
}
|