51 🟢 blocks (2026-05..2026-08 done + sovereign-catalog-wave2-review close) moved off the
board to keep it lean, per using-tasks archival rule (threshold ≥10 exceeded ~5x).
Repo convention .tasks/.archive/done-YYYY-MM.md (matches existing done-2026-05.md).
Per vitya's rule an agent may only read its own directory's inbox. The
first global-scan version (all ~/projects inboxes + PI_INBOX_ROOTS) was
scrapped same day; rewrote as session-scoped: watches only
<ctx.cwd>/.claude-inbox/, decoy test proves other inboxes untouched.
Pi (pi-coding-agent) sessions get inbox delivery via global extension
(.common/lib/pi-extensions/inbox-monitor.ts → ~/.pi/agent/extensions/).
Not cwd-scoped: any .claude-inbox/ message pages the current session with
project name in header. Headless = no delivery. SKILL.md v0.2.2→v0.3.0.
The first autonomous run blocked exit 1 because the service-spawned
claude bypassed the user proxy (xray :10808) and hit a geo-block.
Proxy env now injected into the runner service. Flip 🔵→⚪, drop the
stale Owner/Claim stamp so the poller re-claims and retries.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tasks_create emitted lowercase **weight:**/**notify:** body prose; the
later capital **Weight:** needs-claude coexisted with the stale
lowercase **weight:** needs-human, and the poller parsed needs-human
(case-insensitive, last wins) -> task skipped. Remove the lowercase
dupes; only **Weight:** needs-claude + **Notify:** remain. (This is
exactly the gap tracked by [tasks-create-emit-weight-notify-fields].)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add L1 **Poller:** eligible marker; ensure every ready task except
setup-agents-task-runner-windows-fixes carries **Weight:** needs-human
so the armed poller claims only that one task (no churn).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Closes session-inbox-monitor-encoding-guard-followup (finding from -review
structural audit item E, CONCERN).
inbox-monitor.ps1 emitted ConvertTo-Json (incl. the interpolated inbox path)
to a redirected pipe under WinPS 5.1 without setting [Console]::OutputEncoding
— the same context that mojibaked stop-dispatcher. ASCII-safe today, but the
inbox path is user-data, so a non-ASCII path/content would mangle the inject.
- Add [Console]::OutputEncoding + $OutputEncoding = UTF8 after the $ProjectDir
gate (mirror of stop-dispatcher.ps1). Comment text kept pure ASCII.
- Regression under WinPS 5.1: parse 0 errors; ran hook against a Cyrillic-path
project, read raw stdout bytes as no-BOM UTF-8 -> JSON valid, Cyrillic path
round-trips intact.
- Re-deployed to ~/.claude/hooks/inbox-monitor.ps1, SHA256 byte-identical.
- SKILL.md Mojibake failure-mode extended; version 0.2.1 -> 0.2.2 (PATCH).
install/hermes/dist not rebuilt — PATCH needs only reload-plugins; the runtime
hook is deployed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>