115 Commits

Author SHA1 Message Date
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
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
Xinlu Lai
c354cf7721 Update README.md 2026-05-11 22:25:37 +08:00
CrazyBoyM
4b95969a03 refine: separate agency origin from agent product definition in READMEs
Resolves the contradiction between "Agent is the model" and
"Model is the driver, Harness is the vehicle". All three language
versions now clearly distinguish: agency comes from training,
but a working agent product = model + harness.
2026-04-15 00:58:19 +08:00
CrazyBoyM
8bad6eb73f refine: separate agency origin from agent product definition in README-zh
Adjust the philosophical framing to resolve the contradiction between
"Agent is the model" and "Model is the driver, Harness is the vehicle".
Now clearly distinguishes: agency comes from training (not coded),
but a working agent product = model + harness.
2026-04-15 00:56:37 +08:00
chenyizhongx
d882d01e07 fix(web): remove duplicate "Execution Flow" heading in Deep Dive (#151) 2026-04-01 21:00:52 +08:00
Zhang
6511c98631 Fix unhandled OSError in subprocess and unsafe dict access in subagent (#159)
- agents/s01_agent_loop.py: Add FileNotFoundError/OSError handling in run_bash()
- agents/s04_subagent.py: Same fix + use .get() for block.input['prompt']
  (consistent with .get() already used for 'description' on line 157)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 21:00:47 +08:00