Commit Graph

174 Commits

Author SHA1 Message Date
gui-yue
8daed25878 Fix s08 subagent tool argument mismatch 2026-06-21 22:32:41 +08:00
John Costa
49b3822247 refactor: summarize only trimmed history in reactive_compact
reactive_compact summarized the full message history before slicing off
the recent tail, so the kept tail was summarized and then re-attached
verbatim, and the emergency prompt-too-long path re-summarized the whole
oversized context. Move the summarize_history call below the tail
computation (including the tool_use/tool_result pair adjustment) and
summarize only messages[:tail_start], so the summary covers older history
while the recent tail stays verbatim.

Applied to the duplicated function in s08, s09, and s20, with the s08
README snippets (en/zh/ja) updated to match. Adds tests covering the
normal path and the case where a tool pair straddles the tail boundary.

Fixes #350
2026-06-15 21:55:21 -07:00
Panda-eyes123
4e594bb84a 修复错误返回时SDK对象和dict冲突 2026-06-14 21:54:22 +08:00
Yongan Zhang
65b1751dca docs: use canonical Kode repository links 2026-06-14 05:47:48 +08:00
gui-yue
20e7cbb72c Merge pull request #326 from wangle201210/fix/snip_compact
Fix compaction splitting tool-use/result pairs
2026-06-07 12:39:59 +08:00
gui-yue
99a1e52b36 fix: harden compaction pair handling 2026-06-07 12:35:08 +08:00
wanna
7891c25c12 fix: keep tool-use/result pairs intact during compaction
Preserve assistant tool_use / user tool_result adjacency when compaction trims message history.

Fixes #325.

Squashed original PR commits:

- Fix compaction breaking tool-use/result pairs

- Simplify compaction boundary fix
2026-06-07 12:35:00 +08:00
gui-yue
3d018a0d48 Merge pull request #347 from Gui-Yue/fix-s09-system-build-once
fix: build s09 memory system prompt once per request
2026-06-04 10:22:54 +08:00
gui-yue
8aa8adb346 fix: build s09 memory system prompt once per request 2026-06-04 00:09:09 +08:00
gui-yue
ec9ea874e6 Merge pull request #342 from Bill-Billion/codex/fix-todo-write-string-input
fix: handle todo_write string inputs
2026-06-03 23:33:36 +08:00
Haoran
ee9a747e09 fix: handle todo_write string inputs for issue 340
Co-authored-by: gui-yue <yuemeng.gui@gmail.com>
2026-06-03 23:24:34 +08:00
gui-yue
7c385819cd Merge pull request #346 from Gui-Yue/document-read-file-compact-tradeoff
Document read_file compact trade-off
2026-06-03 22:54:39 +08:00
gui-yue
ae94cda0ed Document read_file compact trade-off 2026-06-03 22:40:37 +08:00
gui-yue
91682fa7fc Merge pull request #339 from hardness1020/fix/memory-subsystems-arrow-direction
fix(s09_memory): point read/write arrow at memory files box
2026-06-02 23:47:37 +08:00
hardness1020
aef9e67167 fix(s09_memory): point read/write arrow at memory files box
Make the Storage to Memory Files arrow a straight vertical segment
ending at the box edge, instead of curving onto the dashed border.
Applies to the en, ja, and zh (default) diagram variants.
2026-06-01 17:49:44 -07:00
clysir
9f3fcf1afd Fix s09 subagent tool argument mismatch 2026-06-01 13:25:39 +08:00
Yang Haoran
595a52a17f Merge pull request #335 from Gui-Yue/sync-generated-course-content
Sync generated course content
2026-05-31 22:22:37 +08:00
gui-yue
abe09a9ccb Sync generated course content 2026-05-31 17:27:29 +08:00
gui-yue
4b87a07099 Merge pull request #334 from Gui-Yue/fix-skill-frontmatter-yaml
Fix skill frontmatter parsing
2026-05-31 17:20:05 +08:00
gui-yue
0100b3dc32 Fix skill frontmatter parsing 2026-05-31 16:54:14 +08:00
gui-yue
6c5bf580f8 Merge pull request #332 from Gui-Yue/pin-github-actions-shas
Pin GitHub Actions to SHAs
2026-05-31 16:30:22 +08:00
gui-yue
33ecaaf351 Pin GitHub Actions to SHAs 2026-05-31 16:27:56 +08:00
gui-yue
328af249dc Merge pull request #330 from Leiber-CivilComEngineer/fix-400-error-in-s13-background-tasks
fix 400 error in s13_background_tasks
2026-05-31 15:57:15 +08:00
Leiber Lyu
3fe4b128b5 Fix a bug where tool_result messages must appear before text in user messages 2026-05-31 14:29:41 +10:00
gui-yue
5c955480ee Merge pull request #329 from hardness1020/docs/s07-three-level-disclosure
docs(s07_skill_loading): note SKILL.md can guide later resource access via file/bash tools
2026-05-31 09:40:28 +08:00
hardness1020
afb0f07f14 docs(s07_skill_loading): note SKILL.md can guide later resource access via file/bash tools 2026-05-30 12:11:22 -07:00
Marcus Chang
71577e0142 fix(s03): route permission-overview deny arrow back to messages[] (#318)
* fix(s03): route denied tool calls back to tool_result

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 19:48:06 +08:00
gui-yue
ca33bf1913 Merge pull request #322 from hardness1020/fix/extract-text-placement
fix(s06): move extract_text() next to its only caller
2026-05-29 14:02:22 +08:00
gui-yue
a548d78c4a Merge pull request #298 from neystan/fix/s07-reminder-tool-result-order
fix: prevent tool_result order corruption in s07 reminder injection
2026-05-29 12:43:21 +08:00
neystan
2ba5b7e837 fix: prevent tool_result order corruption in s07 reminder injection 2026-05-29 12:10:44 +08:00
gui-yue
7a91315625 Merge pull request #320 from hardness1020/fix/s04-hooks-problem-block-idiom
fix(s04): align problem code block with early-continue idiom
2026-05-29 11:48:07 +08:00
hardness1020
369b598af7 fix(s06): move extract_text() next to its only caller
extract_text() is new in s06 (listed in the docstring under "Changes
from s05") but was defined under the "FROM s02-s05 (unchanged)" banner.
Move it into the "NEW in s06: Subagent" section, directly above its only
caller spawn_subagent(). Pure move, no logic change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 16:53:26 -07:00
hardness1020
6d4970977d fix(s04): use early-continue idiom in problem code block
The problem block used a nested `if block.type == "tool_use":` while the
solution block and code.py use `if block.type != "tool_use": continue`.
This made the problem->solution diff show two changes instead of the one
the section teaches (the README states only one place in the loop changed).
Align all three README variants (zh/en/ja) to the early-continue idiom.
2026-05-28 10:34:42 -07:00
Yang Haoran
c586792bbb Merge pull request #312 from Gui-Yue/fix/s09-memory-turn-context
fix: inject s09 memories as turn context
2026-05-26 14:56:49 +08:00
gui-yue
6acbf6add1 Merge pull request #310 from shareAI-lab/codex/web-s01-s20-curriculum
fix: prevent course SVG text overflow
2026-05-26 14:30:14 +08:00
Gui-Yue
c396d59f03 fix: inject s09 memories as turn context 2026-05-26 06:18:13 +00:00
Haoran
4d12ca93de fix: prevent course svg text overflow 2026-05-26 11:17:58 +08:00
Yang Haoran
8a20e2566b Merge pull request #307 from shareAI-lab/codex/web-s01-s20-curriculum
Complete web curriculum visuals and interactions
2026-05-25 22:41:30 +08:00
Haoran
fdd7d2a851 feat: complete web curriculum visuals 2026-05-25 22:38:02 +08:00
gui-yue
956d8272ce Merge pull request #301 from WorkHaH/fix-s02-output-decoding
Fixed the child process output decoding issue in the s02 tool call.
2026-05-25 18:26:15 +08:00
WorkHaH
de4f09b12b Fix subprocess output decoding in s02 2026-05-25 14:35:32 +08:00
gui-yue
dc816a843c Merge pull request #297 from Gui-Yue/chore/update-agent-formula-main
docs: refine one statement
2026-05-24 23:39:38 +08:00
gui-yue
0d7fd028b4 Merge pull request #294 from Gui-Yue/todo-task-fix
fix: align TodoWrite memory model with task system docs
2026-05-24 23:39:16 +08:00
gui-yue
0e8ac5aa2d Merge pull request #303 from Gui-Yue/fix/s11-print-full-continuation
fix: print full s11&s20 continuation output
2026-05-24 23:35:47 +08:00
Gui-Yue
a510aef5da fix: print full s11 continuation output 2026-05-24 15:34:14 +00:00
Gui-Yue
824f7f737d docs: refine Chinese harness formula wording 2026-05-22 16:11:17 +00:00
gui-yue
06ac34ed4d Merge pull request #287 from 123456wda/fix/s06-compact-focus-param
fix(s06): wire compact tool's focus parameter into auto_compact
2026-05-22 22:31:20 +08:00
Gui-Yue
6d48bc978b fix: align TodoWrite memory model with task system docs 2026-05-21 23:55:00 +08:00
gui-yue
1baf1aca5a Follow up PR #265: refine chapters, diagrams, and add S20 (#283)
* feat: s01-s14 docs quality overhaul — tool pipeline, single-agent, knowledge & resilience

Rewrite code.py and README (zh/en/ja) for s01-s14, each chapter building
incrementally on the previous. Key fixes across chapters:

- s01-s04: agent loop, tool dispatch, permission pipeline, hooks
- s05-s08: todo write, subagent, skill loading, context compact
- s09-s11: memory system, system prompt assembly, error recovery
- s12-s14: task graph, background tasks, cron scheduler

All chapters CC source-verified. Code inherits fixes forward (PROMPT_SECTIONS,
json.dumps cache, real-state context, can_start dep protection, etc.).

* feat: s15-s19 docs quality overhaul — multi-agent platform: teams, protocols, autonomy, worktree, MCP tools

Rewrite code.py and README (zh/en/ja) for s15-s19, the multi-agent platform
chapters. Each chapter inherits all previous fixes and adds one mechanism:

- s15: agent teams (TeamCreate, teammate threads, shared task list)
- s16: team protocols (plan approval, shutdown handshake, consume_inbox)
- s17: autonomous agents (idle polling, auto-claim, consume_lead_inbox)
- s18: worktree isolation (git worktree, bind_task, cwd switching, safety)
- s19: MCP tools (MCPClient, normalize_mcp_name, assemble_tool_pool, no cache)

All appendix source code references verified against CC source. Config priority
corrected: claude.ai < plugin < user < project < local.

* fix: 5 regressions across s05-s19 — glob safety, todo validation, memory extraction, protocol types, dep crash

- s05-s09: glob results now filter with is_relative_to(WORKDIR) (inherited from s02)
- s06-s08: todo_write validates content/status required fields (inherited from s05)
- s09: extract_memories uses pre-compression snapshot instead of compacted messages
- s16: submit_plan docstring clarifies protocol-only (not code-level gate)
- s17-s19: match_response restores type mismatch validation (from s16)
- s17-s19: claim_task deps list handles missing dep files without crashing

* fix: s12 Todo V2 logic reversal, s14/s15 cron range validation, s18/s19 worktree name validation

- s12 README (zh/en/ja): fix Todo V2 direction — interactive defaults to Task,
  non-interactive/SDK defaults to TodoWrite. Fix env var name to
  CLAUDE_CODE_ENABLE_TASKS (not TODO_V2).
- s14/s15: add _validate_cron_field with per-field range checks (minute 0-59,
  hour 0-23, dom 1-31, month 1-12, dow 0-6), step > 0, range lo <= hi.
  Replace old try/except validation that only caught exceptions.
- s18/s19: add validate_worktree_name() to remove_worktree and keep_worktree,
  not just create_worktree.

* fix: align s16-s19 teaching tool consistency

* fix pr265 chapter diagrams

* Add comprehensive s20 harness chapter

* Fix chapter smoke test regressions

* Clarify README tutorial track transition

---------

Co-authored-by: Haoran <bill-billion@outlook.com>
2026-05-20 21:45:38 +08:00
123456wda
c171f8a545 fix(s06): wire compact tool's focus parameter into auto_compact
The compact tool schema declares a "focus" parameter ("What to preserve
in the summary") but the handler ignored it entirely -- the parameter
was never passed to auto_compact(). Now the focus value is captured from
block.input and included in the summarization prompt so the LLM knows
what details to prioritize when compressing the conversation.
2026-05-15 10:59:51 +08:00