$ the-wire · showcase
Exec workdir checks fail early, Telegram reply loops capped
By RepoJournal · Filed · About OpenClaw
OpenClaw exec now rejects invalid explicit workdirs before running commands, and Telegram reply-session initialization is serialized to stop replay loops.
OpenClaw exec now fails an explicit local `exec.workdir` that is unavailable instead of silently falling back to another directory. The command no longer runs from the wrong location, and a regression test verifies that behavior. Implicit or default workdirs still retain their fallback behavior [1][2].
Telegram isolated-ingress replayed the same spooled update forever when reply-session initialization hit a repeated stale-snapshot conflict. The stale-snapshot guard read outside the session-store writer queue, so multiple same-session initializers could compute from stale data. Initialization is now serialized through the queue, ending the retryable conflict loop [3]. A follow-up backs off retryable Telegram spool replays that fail with `reply session initialization conflicted...` so one pending update cannot hot-loop the lane [4].
The chat-history truncation log underreported dropped messages: `enforceChatHistoryFinalBudget` returned `placeholderCount: 0` when keeping only the last message, silently dropping N-1 earlier ones. The caller only logs truncation when that count is positive. The report now reflects omitted messages [5].
Action items
- → Review exec workdir handling: explicit invalid workdirs now fail instead of falling back, verify your commands specify valid workdirs openclaw/openclaw [immediate]
- → Monitor Telegram reply-session behavior: serialized init and spool replay backoff should eliminate hot-loop replays openclaw/openclaw [plan]
References
- [1] fix(exec): fail invalid explicit workdir before running (#94441) ↗ openclaw/openclaw
- [2] fix(exec): fail invalid explicit workdir before running ↗ openclaw/openclaw
- [3] fix(auto-reply): serialize reply session initialization ↗ openclaw/openclaw
- [4] fix(telegram): topic replies stall after session conflicts ↗ openclaw/openclaw
- [5] fix(gateway): report omitted chat-history messages in truncation log ↗ openclaw/openclaw