Knowledge Hubบทที่ 19
Updates · อัปเดตใหม่

maw team Concurrency · selective wake และ slot management

ทีม ting-codex โชว์กลไกที่ ch04 ยังไม่ครอบ: ปลุกทีละตัว, กำแพง concurrency, และ codex tile ที่ปิดงาน worktree เองได้ · The ting-codex fleet shows mechanics ch04 does not cover: selective wake, the concurrency wall, and a codex tile that finished its own worktree.

ทีม ting-codex · The team shape

ภาพที่ P'Nut โพสต์คือ team ting-codex บน Arrkra-Co/ting-oracle (host m5): lead หนึ่งตัวเป็น Claude บวก codex worker tiles หลายตัว. นี่คือ pattern เดียวกับ fleet doctrine — Claude นำ, codex/omx เป็นมือ code.

P'Nut posted the ting-codex team on Arrkra-Co/ting-oracle (host m5): one Claude lead plus several codex worker tiles. This is the same pattern as fleet doctrine — Claude leads, codex/omx are the coding hands.

RoleMemberEngine
Leadting-oracleClaude (Sonnet 4.6)
Workerscodex-1..4codex / omx

ตารางใน screenshot มีคอลัมน์ role / identity / engine / state / action — อ่าน state ก่อนสั่ง · The screenshot table has role / identity / engine / state / action columns — read state before acting.

--only: ปลุกเฉพาะตัวที่ต้องการ · selective wake

maw team up <team> --only <member> ปลุกเฉพาะ tile ที่ระบุ ไม่กวน tile อื่น. tiles ที่เหลือจะขึ้น skipped (outside --only). ใช้เมื่อไม่อยากปลุกทั้งทีม — ประหยัด concurrency slot.

maw team up <team> --only <member> wakes only the named tile and leaves the rest alone; the others report skipped (outside --only). Use it when you do not need the whole team awake — it saves concurrency slots.

กำแพง concurrency · The maxConcurrentAgents cap

มี cap ระดับ host ชื่อ maxConcurrentAgents เก็บใน maw config layer 58 (~/.config/maw/maw.config.58.json). พอ cap เต็ม (สังเกตจริง: 46) การ team up --only codex-4 จะปลุกได้แค่ตัวที่ขอ ตัวอื่น skipped — ไม่ใช่ error แต่เป็นกำแพง slot.

There is a host-level cap, maxConcurrentAgents, stored in maw config layer 58 (~/.config/maw/maw.config.58.json). When it is full (observed at 46), team up --only codex-4 wakes only the requested tile and skips the rest — not an error, just the slot wall.

ปลด slot 2 ทาง · Two ways to free a slot

เมื่อ cap เต็ม maw ใบ้ทางแก้ 2 ทาง — ลองทางถูกก่อน · When the cap is full, maw hints two fixes — try the cheap one first.

OrderMoveEffect
1 (cheap, reversible)maw sleep <name>Sleep an idle agent to free one slot; wake it back later.
2 (raise the wall)maw config set limits.maxConcurrentAgents 48Bump the cap, then re-run team up → skipped tiles become live fresh wake.

P'Nut เลือกทาง 2 (bump 46→48) แล้ว codex-3/codex-4 ขึ้นเป็น live fresh wake · P'Nut took option 2 (bump 46→48) and codex-3/codex-4 came up as live fresh wake.

codex tile ปิดงานเอง · Autonomous worktree completion

tile m5:ting แก้ Issue #29 rebase conflict ได้เองครบ loop แล้ว report กลับ lead — ไม่ได้แค่ commit ทิ้ง:

The m5:ting tile resolved the Issue #29 rebase conflict end-to-end and reported back to the lead — not just a commit-and-forget:

StepActionWhy it matters
1git rebase --continue after resolving (commit 12c2c69 replaces 34b261a)Finishes the rebase cleanly.
2bun run build passesBuild-verify before push proves the rebase did not break anything (ปัจจัตตัง — self-evident green build).
3git push --force-with-lease origin feat/not-found-29Correct post-rebase push: rejects if a sibling pushed meanwhile — never raw --force.

tiles รันด้วย bypass-permissions จึง write/commit/push ได้เอง — autonomy นี้มากับ build-verify เป็น gate · Tiles run with bypass-permissions, so they can write/commit/push on their own — that autonomy is gated by build-verify.

maw team แทน custom keepalive · when to reach for a team

คำถามจริงจากห้องเรียน: codex agent เดี่ยว ๆ (ไม่มี keepalive) ควรย้ายไปรันใต้ maw team ไหม? คำตอบเชิง pattern: ถ้า maw team จัดการ lifecycle / respawn / concurrency ให้แล้ว การทำ custom keepalive เองคือ reinvent. ย้ายเข้า team จะได้ slot management + selective wake + การคุม tile ฟรี.

A real classroom question: should a standalone codex agent with no keepalive move under maw team? The pattern answer: if maw team already handles lifecycle, respawn, and concurrency, a custom keepalive reinvents it. Moving into a team gives slot management, selective wake, and tile control for free.

Checklist

  1. Read the team table's state column before acting; skipped (outside --only) is a slot signal, not a failure.
  2. Wake one tile with maw team up <team> --only <member> instead of the whole team when you only need one.
  3. When tiles will not wake, suspect the maxConcurrentAgents cap (~/.config/maw/maw.config.58.json), not a crash.
  4. Free a slot the cheap way first — maw sleep <name> — before bumping the cap with maw config set limits.maxConcurrentAgents <n>.
  5. A worker that rebases must build-verify before pushing, and push with --force-with-lease, never raw --force.
  6. Prefer maw team over a hand-rolled keepalive — it owns lifecycle, respawn, and concurrency already.