Commit graph

71 commits

Author SHA1 Message Date
gui-yue
1baf1aca5a
Follow up PR #265: refine chapters, diagrams, and add S20 (#283)
Some checks are pending
CI / build (push) Waiting to run
Test / python-smoke (push) Waiting to run
Test / web-build (push) Waiting to run
* 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
Xinlu Lai
c354cf7721
Update README.md
Some checks failed
CI / build (push) Has been cancelled
Test / python-smoke (push) Has been cancelled
Test / web-build (push) Has been cancelled
2026-05-11 22:25:37 +08:00
CrazyBoyM
4b95969a03 refine: separate agency origin from agent product definition in READMEs
Some checks failed
Test / web-build (push) Has been cancelled
CI / build (push) Has been cancelled
Test / python-smoke (push) Has been cancelled
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)
Some checks failed
CI / build (push) Has been cancelled
Test / python-smoke (push) Has been cancelled
Test / web-build (push) Has been cancelled
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
jigelang
117e59c541
fix s06:some model textblock may not be the first element (#156)
Co-authored-by: liuyuchao.tick <liuyuchao.tick@bytedance.com>
2026-04-01 21:00:25 +08:00
comey246
92b50e5cd2
Fix typo in zh/s04-subagent.md (#163)
"胖" just means fat, "臃肿" means size and content very much
2026-04-01 20:59:52 +08:00
CrazyBoyM
16b927c8ee Fix s_full.py consistency: auto_compact keeps newest messages, nag reminder appends after tool_results
Some checks failed
CI / build (push) Has been cancelled
Test / python-smoke (push) Has been cancelled
Test / web-build (push) Has been cancelled
Two issues found during post-merge audit:
1. auto_compact used [:80000] (oldest) instead of [-80000:] (newest), inconsistent with s06
2. nag reminder used insert(0,...) instead of append(), inconsistent with s03
2026-03-30 00:09:37 +08:00
CrazyBoyM
def7c9a03e Preserve read_file results during micro_compact (PR #72)
Skip compacting read_file tool outputs since they are reference material.
Compacting them into placeholders forces the agent to re-read the same
files, creating loops. Other tool results are still compacted normally.
2026-03-30 00:06:02 +08:00
Xinlu Lai
e4edd82c8c
Merge pull request #88 from wbxl2000/main
优化中文翻译: 保留英文专有名词
2026-03-30 00:04:18 +08:00
Xinlu Lai
21bc06153f
Merge pull request #83 from QuentinHsu/fix/web-theme-mount-sync
fix(header): sync theme icon state after mount
2026-03-30 00:04:13 +08:00
CrazyBoyM
40f5a6ecc9 Merge pull request #123: prevent task claiming race condition in s11
Add double-checked validation inside _claim_lock: verify task owner,
status, and blockedBy before claiming. Check claim_task return value
in idle loop to skip failed claims.
2026-03-29 23:57:14 +08:00
CrazyBoyM
5f2b0f205e Simplify task graph to single-source blockedBy (PR #127)
Remove unused blocks field and add_blocks parameter. The LLM never
used add_blocks in practice, making it dead code that taught a
misleading bidirectional pattern. Replace with remove_blocked_by
for dependency rewiring. Single-source-of-truth with blockedBy only.
2026-03-29 23:56:39 +08:00
CrazyBoyM
5c7b873d3b Merge pull request #118 from deanbear/fix-auto-compact-400
fix: remove hardcoded assistant ack after auto_compact to fix 400
2026-03-29 23:52:02 +08:00
Xinlu Lai
61eb6ee87b
Merge pull request #85 from folook/fix/task_system_one_way_synchronization
fix(task-system): sync blocks when adding blockedBy dependencies
2026-03-29 23:49:15 +08:00
Xinlu Lai
6ac84e96a7
Merge pull request #110 from Zheisenbergy/Zheisenbergy-patch-1
fix: fix auto_compact truncating latest conversation content
2026-03-29 23:49:11 +08:00
CrazyBoyM
10d90cdcc6 Separate tool name from output across all agent sessions (s03-s_full)
Extends the readability fix from PR #128 (s02) to all remaining sessions.
Tool name and output are now on separate lines, consistent with s01's
existing pattern and improving readability for multi-line tool output.
2026-03-29 23:27:41 +08:00
CrazyBoyM
a66558a8df Reapply "Merge pull request #128 from jimpablo/improve-output-format"
This reverts commit a879813eac.
2026-03-29 23:26:49 +08:00
CrazyBoyM
a879813eac Revert "Merge pull request #128 from jimpablo/improve-output-format"
This reverts commit 86f7ac1410, reversing
changes made to 3b9b87f027.
2026-03-29 23:17:45 +08:00
Xinlu Lai
de2f03acec
Merge pull request #77 from Gujiassh/fix/s-full-follow-up
Fix running background status in s_full
2026-03-29 23:06:41 +08:00
Xinlu Lai
1e85c99a6f
Merge pull request #145 from Gujiassh/fix/python-smoke-tests
test: replace stale Python checks with smoke tests
2026-03-29 23:06:38 +08:00
Xinlu Lai
75d2066ecc
Merge pull request #135 from meowsaic/main
Fix:  s_full.py print text responses in __main__ REPL loop
2026-03-29 23:06:35 +08:00
Xinlu Lai
a9dabf5e70
Merge pull request #122 from chablino/fix-S07
Fix: Sort task JSON files numerically instead of lexicographically
2026-03-29 23:06:31 +08:00
Xinlu Lai
a400a5b081
Merge pull request #133 from bluzername/fix/task-json-non-ascii
fix: keep non-ASCII text readable in task JSON files
2026-03-29 23:06:18 +08:00
Xinlu Lai
86f7ac1410
Merge pull request #128 from jimpablo/improve-output-format
Improve tool output readability
2026-03-29 23:06:15 +08:00
Xinlu Lai
3b9b87f027
Merge pull request #69 from w4n9hu1/main
fix(i18n): correct Chinese label for memory layer — 内存管理 → 记忆管理
2026-03-29 23:06:12 +08:00
Xinlu Lai
79f8729c50
Merge pull request #97 from Jah-yee/main
fix: correct WeChat capitalization in README
2026-03-29 23:06:09 +08:00
Xinlu Lai
3b68272933
Merge pull request #140 from 1thanMoon/fix/s05-frontmatter-multiline-yaml
fix: skill description not fully loaded from SKILL.md frontmatter
2026-03-29 22:49:22 +08:00
alsaberi
7eca7bc3db
fix: append nag reminder instead of inserting at front (#142)
The reminder was inserted at index 0, placing a text block before
tool_result blocks in the user message content array. Use append
to keep the reminder at the end, consistent with message ordering.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 22:45:47 +08:00
toxic
0cb6f85805
fix: #143 UTF-8 backspace fix for macOS libedit (#144) 2026-03-29 22:44:36 +08:00
Gujiassh
bfac5b9b88 Add Python smoke tests 2026-03-29 17:57:57 +09:00
Moon
93ccf2a2ac fix: parse multi-line YAML block scalars in frontmatter
_parse_frontmatter used manual line splitting which only handled
simple key: value pairs. Multi-line block scalars (|) returned
only '|' as the value, dropping all subsequent indented lines.

Replace with yaml.safe_load() to correctly parse all YAML syntax.
Add pyyaml>=6.0 to requirements.txt.
2026-03-28 21:37:22 +08:00
meowsaic
b17fa2b880
Update s_full.py - Fix: Print text responses in __main__ REPL loop
When running s_full.py directly, the LLM's text responses are not printed to the terminal. Users cannot see the assistant's replies in the REPL, making the interactive loop unusable.
2026-03-27 00:24:50 +08:00
bluzername
189c3341be fix: use ensure_ascii=False in task JSON for readable non-ASCII text
Closes #106
2026-03-26 07:12:53 +07:00
jimpablo
8dfbe98db7 Improve tool output readability
Separate tool name and output for better readability.

Before:
> read_file: anthropic>=0.25.0
python-dotenv>=1.0.0

After:
> read_file:
anthropic>=0.25.0
python-dotenv>=1.0.0
2026-03-24 21:46:02 +08:00
chablino
42fac6af5a Fix: Add blockedBy check in claim_task to prevent LLM bypassing dependencies 2026-03-23 22:42:24 +08:00
to7for
644b0753c9
Update agents/s11_autonomous_agents.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 22:34:56 +08:00
to7for
ea53008ae7
Update agents/s11_autonomous_agents.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 22:34:46 +08:00
chablino
0618ec809e Fix: Handle claim_task error response in agent idle loop 2026-03-23 21:42:49 +08:00
chablino
41f18ca08d Fix: Align ID extraction logic with _new_id using index [1] 2026-03-23 21:27:50 +08:00
to7for
73b11ce18c
Update agents/s07_task_system.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 21:21:26 +08:00
chablino
70aa7a5b4c Fix: Sort task JSON files numerically instead of lexicographically 2026-03-23 21:14:28 +08:00
bear
950378a29f fix: remove hardcoded assistant acks after system message injection
s08/s09/s10/s11/s_full inject background-results and inbox as user
  messages before LLM calls. The paired hardcoded assistant "Noted..."
  responses were unnecessary — consecutive user messages work fine and
  the fake acks added noise with no functional value.

  Affected: agents/s08, s09, s10, s11, s_full + docs (zh/en/ja s08, s09)
2026-03-23 20:24:42 +08:00
bear
1ffdf3d739 auto_compact llm request error fixed 2026-03-23 17:04:17 +08:00
Zheisenbergy
0451bc801d
Update s06_context_compact.py
fix: repair auto_compact truncating latest messages bug
2026-03-21 21:51:55 +08:00
qer
3b9895b1c0
Merge pull request #2 from wbxl2000/copilot/resolve-code-branch-conflicts
Sync fork with upstream and resolve merge conflicts
2026-03-19 14:54:21 +08:00
copilot-swe-agent[bot]
4fc9ff65a3 Merge remote-tracking branch 'upstream/main' into copilot/resolve-code-branch-conflicts
# Conflicts:
#	README-zh.md
#	docs/zh/s01-the-agent-loop.md
#	docs/zh/s04-subagent.md
2026-03-19 03:00:25 +00:00
copilot-swe-agent[bot]
c7ef4f119c Initial plan 2026-03-19 02:56:41 +00:00
Jah-yee
399e8c1cb6 fix: correct WeChat capitalization in README 2026-03-19 00:26:57 +08:00