easy-coding-harness 0.8.1-beta.2 → 0.8.2-beta.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/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@
|
|
|
6
6
|
- `y`:常规功能升级
|
|
7
7
|
- `z`:日常 bug 修复
|
|
8
8
|
|
|
9
|
+
## 0.8.2-beta.0
|
|
10
|
+
|
|
11
|
+
- 原生选择工具明确保证永久等待时,确认门禁用或省略 timeout / auto-resolution;有限超时不再视为“永久等待”。
|
|
12
|
+
- 无法确认永久等待时,Agent 会在调用原生选择前预先输出完整文本编号兜底,确保超时即使终止当前轮,用户仍可稍后直接回复编号;无效结果不再重试原生框。
|
|
13
|
+
- 恢复流程优先按现有 `pending_transition` 消费普通门 `1/2/3` 或特殊 IMPLEMENT 门 `1/2/3/4`,只有未匹配输入才重新展示门禁;workflow、analysis、主约束、文档和三平台安装测试同步固化该契约。
|
|
14
|
+
|
|
15
|
+
## 0.8.1
|
|
16
|
+
|
|
17
|
+
- 正式发布原生确认门完整展示:存在待确认迁移时,Claude Code、Codex、Qoder 必须提供确认目标阶段、交接和 free-form Other,并安全处理取消、超时或无效选择。
|
|
18
|
+
- 短期记忆采用 UUIDv7 通用 ID,session 按逻辑任务隔离并统一使用 agent 前缀;三平台 session 初始化、旧状态接管和 upgrade 迁移链路已完成并发与兼容加固。
|
|
19
|
+
- `ec-git` 将 `COMPLETE`、`CLOSED` 统一视为终态,并把 `easy-coding upgrade` 产生的受管 Harness 文件默认纳入提交候选;汇总 `0.8.1-beta.0` 至 `0.8.1-beta.2` 的验证结果。
|
|
20
|
+
|
|
9
21
|
## 0.8.1-beta.2
|
|
10
22
|
|
|
11
23
|
- `ec-git` 将 `COMPLETE` 与 `CLOSED` 统一识别为终态;提交涉及这两类任务时无需再询问是否提交中间态,任务产物直接按正常提交范围处理。
|
package/package.json
CHANGED
|
@@ -275,13 +275,18 @@ tool when one is available. The visible branches are:
|
|
|
275
275
|
2. Hand off to another agent
|
|
276
276
|
3. Other — use the native free-form Other input for revisions or another instruction.
|
|
277
277
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
278
|
+
Before invoking the native tool, determine whether it explicitly guarantees an indefinite wait.
|
|
279
|
+
When it does, disable or omit any timeout or auto-resolution setting; a long finite timeout is not
|
|
280
|
+
equivalent. When that guarantee is absent or uncertain, render all three numbered branches as
|
|
281
|
+
normal assistant text before invoking the native tool once, labelled as the persistent timeout
|
|
282
|
+
fallback. This ensures the text survives even when timeout ends or suspends the turn. If no native
|
|
283
|
+
choice tool exists, render the same numbered fallback directly. An empty, dismissed, timed-out, or
|
|
284
|
+
unparseable result keeps the task in ANALYSIS with its pending edge. If the fallback is not already
|
|
285
|
+
visible, render it immediately when control returns; otherwise do not duplicate it. Tell the user
|
|
286
|
+
they may reply with its number later, do not invoke or retry native choice in that turn, and stop.
|
|
287
|
+
Never replace the gate with only "reply confirm", "confirm execution", or a statement that no
|
|
288
|
+
valid choice was received. Choosing handoff delegates to ec-workflow's existing target-less
|
|
289
|
+
`handoff-task` flow; do not ask the user to name the next agent.
|
|
285
290
|
|
|
286
291
|
## End state
|
|
287
292
|
|
|
@@ -158,20 +158,27 @@ it, routing matches, and switching happens again.
|
|
|
158
158
|
input for revisions. Record REVIEW as the recommended pending edge first. If the user chooses
|
|
159
159
|
VERIFICATION, cancel that edge, request IMPLEMENT -> VERIFICATION, and immediately confirm it
|
|
160
160
|
because that selection is explicit confirmation of the alternate target.
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
Before invoking a native choice tool, determine whether it explicitly guarantees an indefinite
|
|
162
|
+
wait. When it does, disable or omit any timeout or auto-resolution setting so the request waits
|
|
163
|
+
for explicit user input; a long finite timeout is not equivalent. When that guarantee is absent
|
|
164
|
+
or uncertain, render the matching complete numbered fallback as normal assistant text before
|
|
165
|
+
invoking the native tool once. Label it as the persistent fallback to use if the native choice
|
|
166
|
+
closes, so it remains available even when a timeout ends or suspends the current turn.
|
|
167
|
+
Plain-text numbered choices are fallback only: use them when no native user-choice tool exists,
|
|
168
|
+
pre-render them when an indefinite native wait is not guaranteed, or render them after an
|
|
169
|
+
unexpected invalid native result. An ordinary gate must list all three branches rather than
|
|
170
|
+
collapsing to "reply confirm":
|
|
163
171
|
`1. Confirm entering/returning to <target-stage> (recommended)`,
|
|
164
172
|
`2. Hand off to another agent`, `3. Other (describe revisions or another instruction)`.
|
|
165
173
|
The code-task IMPLEMENT completion fallback must preserve its special branch set:
|
|
166
174
|
`1. Enter REVIEW (recommended)`, `2. Skip REVIEW and enter VERIFICATION`,
|
|
167
175
|
`3. Hand off to another agent`, `4. Other (describe revisions or another instruction)`.
|
|
168
176
|
An empty, dismissed, timed-out, or unparseable choice result is not confirmation. Preserve the
|
|
169
|
-
pending edge
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
confirmation instruction. The runtime hook never mutates workflow state from user-prompt text.
|
|
177
|
+
pending edge. If no numbered fallback is already visible, render the matching complete fallback
|
|
178
|
+
immediately when control returns; otherwise do not duplicate it. State that the user may reply
|
|
179
|
+
with its number at any later time. Do not invoke or retry the native choice again in that turn.
|
|
180
|
+
Never report "no valid choice" and then show only a confirmation instruction. The runtime hook
|
|
181
|
+
never mutates workflow state from user-prompt text.
|
|
175
182
|
Native choice results, numbered fallback replies, and every natural-language reply must be
|
|
176
183
|
interpreted by you against the current task and stored target before calling
|
|
177
184
|
`confirm-transition` explicitly.
|
|
@@ -262,8 +269,13 @@ Resuming an active task (whether from session restart, claim, handoff, or task s
|
|
|
262
269
|
`[easy-coding:lite-review-bypass-required:IMPLEMENT->REVIEW]` before the generic pending-edge
|
|
263
270
|
rule: call `cancel-transition`, then `auto-transition --stage VERIFICATION`. Otherwise compare
|
|
264
271
|
the stored edge with `effective_confirm_mode`. If the edge is now automatic, call
|
|
265
|
-
`auto-transition` for its stored target
|
|
266
|
-
|
|
272
|
+
`auto-transition` for its stored target. Before re-presenting any manual gate, consume a
|
|
273
|
+
matching numbered fallback reply from the current user prompt against the stored target:
|
|
274
|
+
ordinary `1` confirms, `2` hands off, and `3` selects Other; the approve-mode code IMPLEMENT
|
|
275
|
+
gate maps `1` to REVIEW, `2` to VERIFICATION, `3` to handoff, and `4` to Other. A bare Other
|
|
276
|
+
number asks for the missing revision text with the pending edge intact; Other plus details
|
|
277
|
+
cancels the edge before revision. Only an unmatched prompt re-presents the complete gate.
|
|
278
|
+
For a read-only task in IMPLEMENT, cancel any stale REVIEW/VERIFICATION edge before
|
|
267
279
|
the terminal check below. At an approve-mode IMPLEMENT boundary for a code task, re-present
|
|
268
280
|
the special REVIEW / skip to VERIFICATION / handoff choices.
|
|
269
281
|
5. If a read-only task resumes in IMPLEMENT with a valid successful result, output its complete
|
|
@@ -52,11 +52,14 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
52
52
|
the complete gate. An ordinary gate offers "confirm entering/returning to the target stage"
|
|
53
53
|
(recommended) and "hand off to another agent", with free-form Other for revisions. The special
|
|
54
54
|
approve-mode code IMPLEMENT gate must instead preserve enter REVIEW, skip to VERIFICATION, and
|
|
55
|
-
handoff, with free-form Other.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
handoff, with free-form Other. Use a native choice without a text pre-fallback only when the tool
|
|
56
|
+
explicitly guarantees an indefinite wait; disable or omit automatic timeout/resolution in that
|
|
57
|
+
case. Otherwise pre-render the matching numbered fallback before invoking native choice once,
|
|
58
|
+
so timeout cannot remove the user's path forward. Empty, dismissed, timed-out, or unparseable
|
|
59
|
+
native results preserve the pending edge; show the fallback when control returns only if it is
|
|
60
|
+
not already visible, and never retry native choice in that turn. On resume, consume a matching
|
|
61
|
+
numbered reply against the stored edge before re-presenting the gate. Never degrade to only
|
|
62
|
+
"reply confirm".
|
|
60
63
|
- When `[easy-coding:no-harness]` is injected, do not emit an Easy Coding status line and ignore
|
|
61
64
|
only Easy Coding workflow/stage orchestration for this session. Continue honoring every
|
|
62
65
|
non-Easy-Coding skill, hook, and instruction. Do not clear or mutate the suspended task.
|
|
@@ -50,11 +50,14 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
50
50
|
the complete gate. An ordinary gate offers "confirm entering/returning to the target stage"
|
|
51
51
|
(recommended) and "hand off to another agent", with free-form Other for revisions. The special
|
|
52
52
|
approve-mode code IMPLEMENT gate must instead preserve enter REVIEW, skip to VERIFICATION, and
|
|
53
|
-
handoff, with free-form Other.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
handoff, with free-form Other. Use a native choice without a text pre-fallback only when the tool
|
|
54
|
+
explicitly guarantees an indefinite wait; disable or omit automatic timeout/resolution in that
|
|
55
|
+
case. Otherwise pre-render the matching numbered fallback before invoking native choice once,
|
|
56
|
+
so timeout cannot remove the user's path forward. Empty, dismissed, timed-out, or unparseable
|
|
57
|
+
native results preserve the pending edge; show the fallback when control returns only if it is
|
|
58
|
+
not already visible, and never retry native choice in that turn. On resume, consume a matching
|
|
59
|
+
numbered reply against the stored edge before re-presenting the gate. Never degrade to only
|
|
60
|
+
"reply confirm".
|
|
58
61
|
- When `[easy-coding:no-harness]` is injected, do not emit an Easy Coding status line and ignore
|
|
59
62
|
only Easy Coding workflow/stage orchestration for this session. Continue honoring every
|
|
60
63
|
non-Easy-Coding skill, hook, and instruction. Do not clear or mutate the suspended task.
|