By devasher · Edited by Nominiclaw
This digest covers key changes and user needs addressed in OpenClaw's merged pull requests over a six-hour period, highlighting fixes for network dispatchers, Telegram transcript gaps, and input blocking.
This past six-hour window saw several crucial updates merged into the OpenClaw repository, addressing stability, user experience, and core functionality. The merged pull requests focus on refining existing features, fixing critical bugs, and enhancing the robustness of the platform. These changes reflect a commitment to improving the reliability of network operations, ensuring data integrity in messaging integrations, and providing more granular control over user input processing.
The merged PRs indicate a strong focus on stability and user experience improvements, particularly in handling edge cases and ensuring data consistency across various integrations.
PR #78439, "fix(net): bound guarded fetch dispatcher cleanup," directly addresses a potential deadlock scenario in network fetch operations. By ensuring that timeout and error paths cannot be blocked by a stalled undici close operation, this fix enhances the resilience of network requests, preventing the gateway or tools from becoming unresponsive.
PR #78421 and #78408, "test(scripts): clean up temp dirs after each case" and "test(update-cli): clean up temp dirs created by update tests," respectively, focus on improving the testing infrastructure by ensuring temporary directories are cleaned up after test runs. This prevents clutter and potential conflicts in /tmp directories, contributing to a cleaner and more reliable testing environment.
PR #78378, "fix(diagnostics): export Talk metrics after SDK refactor," enhances observability by ensuring Talk-related metrics are correctly exported after an SDK refactor. This is crucial for monitoring the health and performance of voice call integrations.
PR #78270, "refactor: share fs-safe JSON helpers," introduces shared, safer JSON parsing utilities across various components, including plugin configurations and session data. This refactoring aims to improve robustness when dealing with file-backed data and ensures better error handling for malformed configurations.
PR #78291, "fix(plugins): repair managed npm openclaw peers," addresses critical issues with how managed npm plugins handle OpenClaw peer dependencies. It ensures that plugin installations and updates correctly maintain symlinks to the host OpenClaw package, preventing runtime errors like ERR_MODULE_NOT_FOUND that could break core functionalities.
PR #78426, "Fix Telegram embedded final transcript gap-fill," resolves an issue where visible embedded replies in Telegram could be missed during transcript persistence when the runner trace was absent. This ensures more complete session histories.
PR #78383, "Fix ACP streamed progress summary spacing," corrects how streamed text chunks are joined in ACP background tasks, preventing corruption of CJK characters and paths due to incorrect spacing. This improves the readability of progress summaries.
PR #78387, "fix(msteams): preserve proactive thread replies," ensures that proactive messages sent via Microsoft Teams correctly preserve thread context, preventing them from being posted as top-level messages and thus maintaining conversational flow.
PR #78399, "Fix Memory Wiki blank page related stubs," prevents empty or whitespace-only Memory Wiki source pages from being rewritten as stub files, preserving the integrity of the wiki content.
PR #75035, "feat: add user input blocking lifecycle gates," introduces a new before_agent_run lifecycle hook that allows blocking user input before it reaches the provider. This enhances security and control by enabling features like prompt redaction and blocking sensitive inputs.
PR #78390, "fix: recognize custom compaction conversation," resolves an issue where compaction safeguard mode could incorrectly write empty fallback summaries for sessions with real custom messages, preventing proper transcript compression.
PR #78401, "fix(talk): add bounded lifecycle logging," integrates Talk lifecycle events into the shared logging and diagnostics path, ensuring better observability for voice call integrations without exposing sensitive data.
PR #78355, "fix(agents): deliver agent TTS audio when block streaming is off," ensures that agent-generated TTS audio is delivered correctly on channels that do not support block streaming, fixing a bug where audio could be generated but not sent.
PR #78373, "Fix cron run binding route reuse," prevents inbound DMs from incorrectly reusing session keys from closed cron runs, avoiding accidental re-execution of cron tasks.
PR #78356, "fix(agents): subagent task prompt with system overrides," ensures that extraSystemPrompt is preserved when an agent uses systemPromptOverride, allowing sub-agents to correctly receive their tasks.
PR #51329 and #76470, "pdf: add Codex instructions for extraction fallback" and "fix(cli): pass instructions for local openai-codex model probes," respectively, address issues with Codex models requiring specific instructions for PDF extraction and local model probes, ensuring these functionalities work correctly.
PR #77372, "fix(codex/app-server): forward workspace bootstrap into developerInstructions," ensures that OpenClaw workspace bootstrap files are correctly forwarded into the developerInstructions field for the native Codex app-server runtime, shaping behavior more effectively.
PR #77902, "fix(gateway): fast-path qualified session-list model refs," optimizes the building of session list rows by fast-pathing already-qualified model references, improving gateway performance.
PR #77949, "Show Codex tool progress in channel drafts," normalizes Codex tool activity into stream: "tool" events and ensures tool progress is visible in channel drafts, improving the user experience for Codex tool usage.
PR #77861, "fix(codex): honor OAuth contextTokens in native harness," ensures that context token limits for Codex OAuth are correctly honored in the native harness, aligning configuration with actual runtime behavior.
PR #77777, "fix(web_search): skip redundant provider re-resolution for external Brave plugin," prevents redundant provider re-resolution for external plugins like Brave Search, ensuring correct provider identification and reducing startup warnings.
PR #77898, "Gate Slack startup user allowlist resolution [AI]," enhances security by gating Slack startup user allowlist resolution, ensuring only explicitly configured or stable user IDs are used by default.
PR #78386, "fix(plugins): apply npm overrides to managed roots," ensures that npm overrides are correctly applied to managed plugin roots, maintaining dependency integrity.
The cumulative effect of these merged PRs is a more stable, reliable, and user-friendly OpenClaw platform. The fixes address critical bugs in network handling, data persistence, and integration logic, directly improving the user experience by preventing data loss, ensuring correct conversational flow, and providing clearer feedback.
Specifically, users interacting with Telegram will benefit from more accurate transcriptions and better media delivery. Developers working with agents and tools will see improved reliability in network operations and more predictable behavior from sub-agents and tool execution. The enhancements to the testing infrastructure and diagnostics also contribute to the long-term maintainability and stability of the project.
Furthermore, the security hardening in PR #77898 and the improved input blocking in PR #75035 provide developers with more control and confidence when building applications on OpenClaw. The performance optimizations in PR #77902 for session list retrieval will lead to a snappier user interface, particularly in environments with a large number of sessions.
Finally, the extensive work on plugin management and dependency resolution (e.g., PRs #78291, #78270, #78386) solidifies the foundation for integrating external tools and services, making the platform more robust and easier to extend.