You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2ae480d
Browse filesBrowse the repository at this point in the historyBrowse files
fix: read the judge's reply in either shape $.model.complete resolves (#6)
On Claude Code 2.1.280 $.model.complete resolves { isAnswered, text, usage }
instead of the reply's text. taskcut passed that object to saysDone, which
threw; the catch turned every judgement into "not finished" and logged it only
to the debug log, so nothing was ever compacted. tsc against the regenerated
types reports it; claude plugin validate does not.
The reply is now taken as unknown and read by readReply, which knows the text
2.1.278 resolved and the result 2.1.280 resolves, and treats anything else as
no reply. A failed call is logged with its reason.
Claude-Session: https://claude.ai/code/session_01Hy8i9XZbHT6uPuVZwAP8vT
Co-authored-by: Yangze Luo <14040068+wasd96040501@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/compatibility.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ declarations it is written against are generated per Claude Code version by
11
11
|`session.start`, `turn.step`, `turn.complete`| hook events | taskcut stops working; `claude plugin validate` reports the unknown event before a session loads it |
12
12
|`$.session.usage`, `$.session.messages`, `$.session.compact`, `$.fs.read`, `$.env.get`, `$.model.complete`, `$.turn.abort`, `$.prompt.submit`, `$.ui.log`| engine calls | same: refused at load, named in the validation output |
13
13
| a hook's budget counting only its own code, not its `$` calls | engine rule | the judgement inside a step would overrun it, and the engine would skip the hook: taskcut would compact only at the end of a turn, and say so in the transcript |
14
+
| what `$.model.complete` resolves to | data shape |`claude plugin validate` does not see it; only `tsc` against regenerated types does. 2.1.278, which taskcut was measured on, resolved the reply's text; 2.1.280 resolves `{ isAnswered, text, usage }`, and 0.8.0 read that object as text, so every judgement failed and nothing was ever compacted. The reply is now taken as `unknown` and read by `readReply`, which knows both shapes and treats anything else as no reply |
14
15
|`session.start`'s `isInteractive`| data shape | taskcut would stop ending turns early; a compaction at the end of a turn still works |
15
16
|`CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`| early-access flag |**nothing**, by design — see below |
0 commit comments