#clawtributors

1 messages · Page 5 of 1

formal crest
#

Anyone noticed that with GPT-5.4 (maybe others) your Claw will send several "update" messages, as well as the final message, all at once? For example:
"Firstly I'll run the repo tests and see if they pass"
"Tests pass, let me check lint"
"I see the problem, there's a lint issue"

I traced this to be because of the new "commentary" feature that codex supports (released on Feb 24th): https://developers.openai.com/api/reference/resources/responses/methods/create#(resource) responses > (model) easy_input_message > (schema) > (property) phase

I made a PR to fix this in whatsapp, so commentary is sent as soon as it's generated while the agent is doing something: https://github.com/openclaw/openclaw/pull/42489

It works pretty well, my Claw (Mr Crow/Crowdex) now keeps me in the loop when doing a long task. Let me know if you think this is useful.

left mango
raw adder
#

Hey all 👋,

First time contributor – how are you all getting your PR seen / advocating for them?

I opened mine 3 weeks ago and have had to resync it to main a few times since.

I've added dimension support for memory embeddings (Matryoshka):
https://github.com/openclaw/openclaw/pull/21816

It's niche but useful for squeezing performance out of memory embedding lookups (1/2 to 1/4 DB size without much performance loss) and allows smaller devices to run embeddings more efficiently.

Any tips on getting it seen before it drifts again?

fringe rock
formal crest
fringe rock
#

Just groundwork for the rest to come

shell dawn
#

Hi, I'm making my first PR and I think this is the place to talk about it, it looks like its passed all of the gates and my claw fixed a few things that popped up, or is there something I should do next? ive checked the CONTRIBUTORS.md file and I think im going down the right path but like i said, its my first time and i want to do this right

left mango
# shell dawn Hi, I'm making my first PR and I think this is the place to talk about it, it lo...

If everything is working well locally and you've followed contributing.md, you should go ahead and complete the PR. It will go through testing and AI code review.

You can then address the comments in that code review and post details about your PR here. The maintainers will have a look.

But as you have probably noticed, there are tons of PRs created regularly, so maintainers may not be able to get back to you immediately.

shell dawn
#

thanks for the direction! im a techie/systems guy but programming always fell out of my brain before i could actually learn it so im new to this area, but been around the field in general a long time

past tapir
#

Hey all, the Chutes onboarding is slightly broken and missing the API feature. I just pushed a fix for the Chutes OAuth and added the ability to use an API Key: https://github.com/openclaw/openclaw/pull/41416 passed all test, and took all advice from greptile/codex review, and updated from upstream.

Been trying to get this in here for a while, currently cant use Chutes as a result even with it listed.

tardy fossil
#

Hey 👋 Quick question for the maintainers — I have a ClawHub skill (domain-trust-check) that lets agents check URLs for phishing or malware before visiting them. It’s basically just curl + an API key, similar to how the Notion or Trello skills work.

I was thinking about proposing it as a bundled skill, since URL safety is a security area that everyone seems to be ignoring, but it’s a huge attack surface for agents. I believe this will be extremely important as attack against agents are also scaling. What do people think?

formal crest
pallid summit
fringe rock
# formal crest Nice work!

Thank you! Hopefully we can get it merged soon. It’ll be awesome for a knowledge base with all of the new input types

pure atlas
#

Hey! 👋 First time contributor — looking for a review on a small PR (+100 lines) that adds a before_dispatch plugin hook so plugins can block messages before the LLM runs (useful for auth gates). All tests pass. https://github.com/openclaw/openclaw/pull/43422

Would really appreciate it if someone could take a look — happy to iterate on feedback!

shell dawn
loud gulch
sharp ivy
#

(and your pushback on greptile appears to be right)

keen spruce
fringe rock
#

@formal crest It’s merged!

hoary pendant
fringe rock
#

That’ll work for new Gemini?

#

It looks really good, nice work I’m sure it’ll get picked up soon

hoary pendant
#

for example the configuration verifier doesn't recognize plugin configurations, just throwing warnings about it. and there is no plugin hook to add configuration extensions that I could find.

fringe rock
hoary pendant
#

I'm thinking maybe embedding models also could be done via plugins instead of drilling them into the core code directly

shell dawn
#

or at least a standardized plugin framework. i worked a multilevel memory system with my claw that was quite an interesting process and im really happy with how it came out, but the way memory-search and embeddings were core code things that were kinda off on their own seemed like an area for improvement

keen spruce
# hoary pendant for example the configuration verifier doesn't recognize plugin configurations, ...

plugins add their configs via their json file, not via code. there's an example in the documentations. let me...got it https://docs.openclaw.ai/tools/plugin#control-ui-schema-+-labels I'm pretty sure that configSchema is the same thing that gets also fed to the config validator. (I'm the one who added that "sensitive" field, so I had my fingers in that area...but just slightly next to it, so I'm only fairly sure...)

hoary pendant
#

I'll revert my PR back to draft ... will be adding embeddings capability into it as well as the media ones.

shell dawn
hoary pendant
#

looking at it more, I started to dislike adding registerMediaProvider and registerEmbeddingsProvider, and decided to just add a capabilities: ['video', 'tts', ...] to the normal registerProvider that already exists.

shell dawn
# wise meteor checkout Hindsight. it's pretty cool. https://github.com/vectorize-io

how good memory can transform agentic behavior is REALLY really interesting. i started a new sessoin with my claw last night meaning to make it a dumping ground for haiku to wordsmith, intentionally saying "this should be an area where i just dump stuff and you help me wordsmith" and its like "oh yeah, good idea. how about a better idea: i turned it into a skill, now you dont need to do it only here" because it picked up from the memory system and my preferences are to turn things into repeatable skills

soft flicker
shell dawn
sour dagger
#

maybe someone will also review my pr,about memory search

shell dawn
#

its flexible enough as a memory that when i said 'no, that project does use the same stuff this project does and thats why i want you to copy it as a seed, but this project doesnt support the next feature that project is working on, they are different at that point'

#

it'll find it through memory, but if it also builds walls automatically it'll help tighten it up

soft flicker
#

Did you incorporate graph DB storage, or sticking with semantic stuff over the MD files?

shell dawn
#

i had a phase where i had sqlite and vector db, but then i had an idea that made a lot of it a little less necessary and it got simpler. got back to zero extra dependencies and building exactly on top of the openclaw memory system and keeping the design as simple as possible. its down in #1479543671605952532

#

small ram-only hot read cache (backed by a file) with super high value items, reducing the size of memory.md and making it kind of index the other memory layers, and a curation system to move stuff up and down the memory stack

#

we are getting a little in the weeds of memory, which i love, but maybe we should free up #clawtributors for the main work. not sure what the best channel is for this... #architecture ?

left mango
noble iris
chrome fox
#

I posted a PR on Open Claude. I think it's the most necessary thing for OpenClaw right now. This introduces a completely new idea. Can you please quickly check if that makes sense? I have a research paper ready on it, and I believe it is the correct way to handle long-running agents.

https://github.com/openclaw/openclaw/pull/43665

please take a look

final ocean
chrome fox
# final ocean This volume of changes for "persistence" feature it should be a plugin.

That makes sense. Looking at the repo boundaries, the only part that naturally maps to the current plugin architecture is memory; sessions/auth/subagents are still core-owned and there isn’t a storage plugin slot for them today. I’ll stop trying to push the whole Postgres control plane through one PR.

I can split this into:

a much smaller memory-backend/plugin path that fits plugins.slots.memory, and
a separate design discussion for whether core should even expose a pluggable persistence boundary for sessions/auth/subagents.
If that direction sounds right, I’ll re-scope this PR instead of continuing to expand the core surface.

final ocean
#

we will not accept external plugins into core

#

you can make these as external changes

chrome fox
#

this is not a plugin

#

you should try reading the pr description once

final ocean
#

Perhaps break down the entire PR, based on my understanding it can be an external PR. if hooks are needed to make this work let me know

chrome fox
# final ocean Perhaps break down the entire PR, based on my understanding it can be an externa...

Thanks, that helps.

What I’m trying to do here is pretty simple:

OpenClaw has a few kinds of state that are no longer just “files on disk”.
They are live runtime state:

  • session metadata
  • transcript events
  • auth state
  • subagent state
  • memory documents

Right now those are mostly stored as JSON/Markdown files and updated from different parts of the app. That works for simple/local cases, but it gets weak once you care about restart safety, partial failures, concurrent writes, and reliable resume after a crash.

So the goal of this work is not “replace JSON because Postgres is nicer”.
The goal is:

  • make the important runtime state durable
  • make writes atomic
  • make restart/recovery predictable
  • keep file exports only as compatibility/debug artifacts instead of the source of truth

That said, I understand the scope concern.

If the right direction is “this should be external/plugin-based”, I’m happy to break it down. From what I can tell, the memory part is the easiest fit for the current plugin model, but sessions/auth/subagents are still core-owned today, so an external implementation would need explicit hooks or interfaces from core.
In simple terms, the hooks/boundaries I would need are:

  1. Session store boundary
    • load/save/list session metadata through an interface instead of direct file access
  2. Transcript store boundary
    • append/read/export transcript events through an interface
  3. Auth store boundary
    • load/save auth profiles and secrets through an interface
  4. Subagent state boundary
    • restore/update subagent run state through an interface
  5. Memory document boundary
    • read/write/search/index memory through the existing memory slot or a slightly broader persistence hook
      If you want, I can re-scope this into:
  • a smaller plugin/external PR for the memory side
  • a separate core PR that only adds the storage hooks/interfaces needed for sessions/auth/subagents
final ocean
#

any plugins we will not accept as you can host on your side. For hooks please make a suggestion before any PRs

hoary pendant
civic sedge
shell dawn
#

which is why you cant use some of the advanced discord features directly through the first class tool structure

#

theres a few issues that have beaten around this problem, and my claw was really perplexed as to why it cuoldnt delete stuff, and so we dove into it and found this. going back through the commits to when discord was added it never had this tool catalog wrapper.

shell dawn
#

maintainors, ive got a handy and seemingly simple PR to improve the billing data on providers. its been rebased for 2026.3.11 it adds consistent billing metrics to the models status JSON output including adding some visibility into Openrouters billing

grizzled rivet
#

how's the hook surface area review going 👀

timber dragon
#

any chance I could get someone to take a look at this - https://github.com/openclaw/openclaw/pull/43552

I am running some pretty heavy background loops with crons, subagents that fire subagents etc and have a LOT of missing telemetry which makes it hard to watch what which processes are using which models and how many tokens. Running a patched version locally to fix this but I have to rebuild every new release

timber dragon
#

another one that is really hurting me right now is https://github.com/openclaw/openclaw/pull/42482 - caused a ton of my crons to go haywire yesterday and I spent a good chunk of the day trying to figure out why they wouldn't start

I know the number of PRs/issues on the repo is absolutely insane right now so please let me know if there's a better way to help contribute or how prioritization works for these

final ocean
#

most of the core core changes are in, now its wiring all the new hooks

lucid raptor
#

I applied openclaw contributor but get no response

final ocean
keen spruce
sour dagger
rocky plinth
#

hi folks, new here. ive created a hook for sending telegram notifications whenever a model switch occurs, more for my own convenience than anything else bc getting a model to sign off on a response consistently is evidently a big ask. ive tried to follow the guidelines as best i can, and im currently ensuring that all the tests pass, but i dont have access to codex. let me know if i should make a pr for this.

civic sedge
untold pollen
#

It's pretty cool, Claw can request your location, take pictures, see your notifications (if you allow, of course)

unique arch
deep hatch
#

Hey! I opened https://github.com/openclaw/openclaw/pull/37854 last week, adds Featherless AI as a built-in provider. It's a straightforward, additive-only change following the existing Together AI pattern, no core logic touched. Context: Featherless sponsored an OpenClaw hackathon last week and participants had to manually configure it since there's no native integration yet. Figured it'd be useful to have it first-class like Together/OpenRouter. CI is green on our end (the check failure is a pre-existing CSS formatting issue on main). Greptile gave it 5/5. Should be a quick review; happy to address any feedback. Thanks!

shell dawn
#

maintainers, ive got a handy and seemingly simple PR to improve the billing data on providers. its been rebased for 2026.3.11 it adds consistent billing metrics to the models status JSON output including adding some visibility into Openrouters billing
https://github.com/openclaw/openclaw/pull/43063
i'm trying to get a billing heads up component on a multi-modal dashboard and having a durable programmatic piece to it makes a lot of nice things happen, plus, i think there are a lot of people trying to solve this problem in cruder ways

unique arch
#

Please maintainers, someone's gotta help! I'm going insane

wise meteor
cursive relic
#

yo! i dont have this issue but i recently setup openclaw for a vc firm that wanted the whole slack for everything - happy to give some feedback and insights if you'd like, feel free to add/dm me

modern kestrel
keen spruce
final ocean
left mango
#

@jolly wolf , @final ocean can I DM you about a minor security related issue?
(sorry for the ping)

final ocean
#

yes DM me

silk kestrel
#

Hi! I'm building a plugin and need to intercept and modify tool results before they reach the model. Here's where I'm stuck with current hooks:

before_tool_call: can modify params / block execution, but no way to inject a result
after_tool_call:  fires after execution but can't modify tool result
tool_result_persist: modifies the AgentMessage before appendMessage, but in practice the change doesn't seem to reach the LLM in the current turn (only affects persistence/future turns?)
message_sending: modifies channel output only, not what the LLM sees

What I need: a hook that fires after tool execution and can replace the result before the LLM processes it in the same turn.

Is there already a way to do this with existing hooks? And is there any plan to make after_tool_call a modifying hook?

final ocean
silk kestrel
heavy rune
#

Hi guys, there are a lot of PRs flying in around the new Cron migration throwing false positives and not clearing out in doctor due to it lowercasing before comparison. Since I was hit by this too I've done a review of the PRs and would recommend merging in https://github.com/openclaw/openclaw/pull/44012 which fixes the actual bug with the smallest, cleanest change - it avoids the false positive on already-correct jobs, but still normalises payloads around whitespace etc which some of the others miss.

We can then:
Close/supersede PRs
[#43839, #44008, #44035, #44100, #44117, #44239, #44263, #44415, #44516, #44525, #44576]
Close as duplicate issues
[#43796, #43855, #43906, #43923, #44047, #44054, #44186, #44208, #44384, #44392, #44425, #44505]

final ocean
#

Will be in todays release for cron and duplicate message replies fixes

shell dawn
#

any chance of the discord tool catalog wrapper PR fix? its feeling exposed

weak coyote
#

Any tips on getting started? It's a little overwhelming. I have an issue and a fix. Should I just search and send it if I do not find a similar pr?

shell dawn
#

yep, ask your claw to search for PRs and issues, check it against the contributing.md, be thorough

shell dawn
#

its an old one. im pretty sure things were... pretty busy at that time

final ocean
#

why not be a skill

#

this wont be accepted

shell dawn
#

the code is in the tool?

final ocean
#

im confused

shell dawn
#

me too

final ocean
#

lol

shell dawn
#

theres quite a few discord features that my claw says cant work, it says it has the code, it has the permissions, and when we dug into it, it said it was because it was missing the tool wrapper

#

the tool is there, i can allowlist it, but it doesnt do anything, it says messages flow through another path

jolly wolf
#

im still thinking on this one bc i think i have a better way

shell dawn
#

i suspected there was a reason

#

i wanted to cleanup a thread from an issue moving data between threads that caused it to puke out some stuff, so i asked it to delete and it said it couldnt and i dove in to find that issue

empty fjord
#

44545, 44535, and 44526 are all sort of similar, and i suggest closing the early ones because they're all gonna get so fucked up if even one gets merged.
i probably suggest just closing 2 and using the other one as a parent to implement both fixes since they dabble in relatively the same area and is probably going to be more simpler from then on

shell dawn
#

ive got a different one thats pretty low hanging 😛 just getting some consistent data from "openclaw models status" into "openclaw models status --json", better programmatic interface and standardization
https://github.com/openclaw/openclaw/pull/43063

left mango
#

While we are talking about discord, this may be worth reviewing too. Fixes the "compaction cancelled" error we always get when we manually run the /compact command in a discord thread.

Thanks.

https://github.com/openclaw/openclaw/pull/44553

civic sedge
empty fjord
#

44405 44576 are both dupes

#

close one, keep one

final ocean
#

p_ThisIsFine waiting anxiously to see what broke

empty fjord
noble iris
#

While we are discussing Discord, I noticed that the Slack slash command menu raises an error when buttons are present in the selection menu.

Would someone mind taking a quick look at this PR when you have a moment? Thanks.

https://github.com/openclaw/openclaw/pull/42970

static linden
#

If I want to propose a new feature, where should I post the message?

#

here?

noble iris
static linden
#

I’d like to propose adding a real-time but lightweight LLM as a classifier to determine whether something is malicious. This could help effectively prevent potential destructive behaviors.

I think this approach may have several advantages compared to relying solely on prompt injection defenses:

  1. Lower context overhead. For example, the incident involving Meta’s safety alignment ceo email being deleted happened because compression was triggered. By maintaining a separate interface for this classifier, the context should be more reliable and less affected by such issues.

  2. A different objective for the LLM. In a new environment, this LLM agent’s role would be to maintain security rather than participate in completing the task. This could make it more resistant to prompt injection, since many prompt injection attempts rely on framing instructions as part of the task.

  3. Controllable context length and cost. With a well-designed system prompt length (e.g., around 2048 tokens), and by only appending the latest request (or maybe response ) each time, the total context cost should remain manageable and inexpensive.

I’m still working out the exact architecture, but I think this could potentially be a useful idea.🤔

manic mauve
#

Hey! First-time contributor here. Opened a PR that adds three improvements to the browser act tool from real automation pain points:

• CSS selector support alongside ref (skip snapshots for known DOM)
• Batch actions (multiple actions in one tool call, ~80% token reduction)
• Click delayMs (hover-before-click in one call instead of three)

Addresses #44431 and #38844. Security review feedback already addressed.

https://github.com/openclaw/openclaw/pull/44934

Would appreciate any feedback!

narrow oracle
#

Hi guys, I’m a developer from Z.ai. I submitted a PR to improve the documentation for using the ZAI provider. We found that some users on subscription plans were using the wrong endpoint, which led to unexpected charges. Hope you can help review and merge the PR. Thanks a lot 💗 https://github.com/openclaw/openclaw/pull/41919

untold pollen
nocturne iris
#

Hey 👋 Was setting up openclaw over NetBird today and hit the wall, no bind mode for it, so you end up juggling bind: "lan" + manual TLS + allowedOrigins just to get the Control UI working. Figured I'd just fix it.

Added gateway.bind: "netbird" that detects wt* interfaces and auto-enables TLS so device identity actually works, same idea as tailnet. Closes #32725.

https://github.com/openclaw/openclaw/pull/44996

Did the ansible role too: https://github.com/openclaw/openclaw-ansible/pull/41

CI is green, went through all the review bot comments. Tested on a real netbird setup. Any feedback or tips on getting it picked up?

PS: Should we maybe in the future move tailscale to interface detection like I did here instead of CIDR matching? NetBird IPs fall into the same 100.64.0.0/10 range so they can conflict. Didn't want to touch it in this PR to avoid breaking existing setups but would love to discuss if anyone's interested.

dry loom
#

Hey team 👋

Fixed the cron isolated session deadlock issue (#44805).

Problem: Isolated cron jobs randomly timeout because nested operations (session file ops, compaction, memory sync, etc.) try to enqueue on the same cron lane that's already held by the outer execution.

Fix: Map cron → nested in resolveGlobalLane so inner operations use a separate queue.

Verified:
✅ Reproduced deadlock on main branch (timeout even on first run with simple tasks)
✅ Fix branch: 5 consecutive runs, all succeeded
✅ All 517 cron tests pass

Impact: Affects all sessionTarget: "isolated" cron jobs. Can happen on any execution, not just long-running tasks.

PR: https://github.com/openclaw/openclaw/pull/44998

Would appreciate a review. Thanks!

proper barn
#

Hi everyone! I needed a few more libs to be exposed from the plugin-sdk. No code change, just some additional exports. If someone could have a look that would be greatly appreciated! #32497. Thanks 🙂

viscid lotus
halcyon axle
#

[PR #44868] feat(sessions): add readSessionRecentMessages public API to plugin-sdk

Adds a stable public API for channel plugins to read recent session history messages, without directly parsing internal JSONL transcript files.

Why: Channel plugins sometimes need conversation history to build context (e.g. for @agent mention routing). Currently the only way is to read OpenClaw's internal JSONL session files directly — fragile coupling that breaks on internal changes.

What:

  • New readSessionRecentMessages() in src/config/sessions/history.ts, exposed via rt.channel.session.readRecentMessages() in plugin runtime
  • SessionHistoryMessage type exported from plugin-sdk
  • Mock added to test-utils
  • 7 unit tests covering normal paths and graceful degradation

Design: All errors (missing session, missing file, parse failure) silently return an empty array — callers treat empty result as "no history available" rather than handling
exceptions.

PR: https://github.com/openclaw/openclaw/pull/44868

civic sedge
raw basalt
#

by any chance is anyone working on reducing RAM usage?

civic sedge
#

solution - more RAM.

grizzled rivet
#

@final ocean saw your tweet about PR deduping: https://x.com/vincent_koc/status/2032489223379710268?s=20

mine does this 🥲 will remove all of it

I figured it would be helpful to have a sense of other PRs and their implementations. Is it the case that it's always 100% noise? Y'all just want the standard PR sections and nothing else?

muted badger
#

@final oceancould you help me verified my merged pr?

jolly wolf
weary notch
#

Saw peter’s PR req for Chrome live-session MCP support that got added to the recent chrome update, spent the morning on it, and I’ve got a pr up that wires the Chrome DevTools MCP preset into ACPX. Pretty happy with it and would love some insight from you fine folks https://github.com/openclaw/openclaw/pull/45470

#

Only thing I’m a little on the fence about is keeping this as pinned npx -y chrome-devtools-mcp@0.20.0 for v1. feels okay but would love a sanity check on that tradeoff too.

final ocean
#

@jolly wolf you can take this one?

left mango
dry loom
# dry loom Hey team 👋 Fixed the cron isolated session deadlock issue (#44805). **Pro...

Hi, @final ocean
I don't get the point why you create another PR #45459 to merge, cherry-picking my commit #44805 but did not mention me in Changlog or even counting it as my commit in the merged code.
I am happy to contribute to the community, but hope the community can give the right credit.

I did a comprehensive analysis including:

  • Root cause identification (deadlock in command lane queuing)
  • Unit tests for the lane resolution
  • Reproduction steps on main branch (confirmed the deadlock)
  • Verification on fix branch (all runs succeeded)

Did I miss something or something no right? Even so, I hope we can communicate first.

empty fjord
#

@final ocean if possible, review please ❤️

keen spruce
#

If someone is looking for some busy work: The v2 UI was forked off v1 weeks ago and did not cherry-pick any of the fixes that were PRed into v1.

left mango
keen spruce
#

and PS: with "busy work" I mean going through the last weeks of commits and PRs that targeted the UI and see what needs to be copied over.
we'll probably get independent fix-PRs for those issues that have already been reported, but there probably is more stuff hiding

left mango
weary notch
keen spruce
final ocean
final ocean
left mango
keen spruce
empty fjord
#

any other comments from uh... copilot/codex for example, is irrelevant

dry loom
empty fjord
final ocean
#

normallly would be ignored

#

it was not intentional

dry loom
final ocean
#

added to main, pushing now

final ocean
#

on main now 8b82a0124d77d7091d06a554de42d9dc76ff5086

dry loom
final ocean
#

bro this is why we dont correct this shit

#

its just a .md file

#

with 1000+ names

dry loom
#

fine

final ocean
#

opriz is the name in that pr

#

you asked for credit. my llm was tasked with this in the morning

#

likley you used AI same as me and had same response

#

it was by luck this happened

dry loom
#

🤣 🤣 It's okay, I just wanted to confirm this, and I will continue to contribute in the future.

empty fjord
#

ok

#

i fixed i t

#

ive been just syncing with main rn so

ivory timber
#

Hi Vincent, I just encountered a very strange WhatsApp bug, and I spent like 4 hours debugging it today.... Just got it fixed.

I wrote a debug summary of the issue, not sure if this would be useful, but I will just put this here, hopefully it is useful: https://gist.github.com/maxxie114/970c9a3407dfc0a3b83f0246663a3eaa

@final ocean

empty fjord
#

let me go further

final ocean
#

see if issue exists, if not raise

#

thanks

ivory timber
#

Alright I will put an issue if none exist.

ivory timber
#

lol ur way faster than me in scanning issues lol, I was just about to get claude code to scan for similar issue🤣

ivory timber
# empty fjord <:BRUH:902180467632123985>

There are some issues, some are not there yet lol

Cross-referenced my debug report against existing issues:

Already reported (won't file duplicates):

  • Gateway probe false negative (#45560)
  • "Linked/OK" but WhatsApp not working / no credential reload after channels login
    (#45576 and several dupes)

Not yet reported (will file new issues):

  • Orphaned openclaw-channels processes (~600MB each) pile up from failed/interrupted channels login attempts,
    never cleaned up
  • QR code unusable on headless/SSH servers — no --output png flag, no HTTP endpoint, UI "Show QR" broken due to
    #45576, and 20s expiry makes SCP impossible

Full debug report: https://gist.github.com/maxxie114/970c9a3407dfc0a3b83f0246663a3eaa

#

I will make an issue for these two

weary notch
tall prairie
#

Guys stop pinging maintainers. We check this channel regularly.

foggy stream
#

Ran into an issue where web search failed and there was no fallback. Found an open issue about it too, so built a fallback sytem for websearch:

What they do:
PR #44981 adds https://tavily.com/ as a new search provider alongside Brave,
Gemini, Grok, Kimi, and Perplexity — full config resolution, auto-detection from
TAVILY_API_KEY, and onboarding wizard support.

PR #44982 builds on that to add automatic
provider fallback (issue #35647): when the primary provider hits rate limits or server errors,
the system tries the next provider in a user-configured fallbacks list, mirroring how model
fallback already works.

Why: If a web search tool is not available or user runs out of Free-tier search API use, it can lead to a 429, which means the agent
gets no search results. With fallback, you can configure "provider": "brave", "fallbacks":
["tavily", "gemini"] and the system automatically tries the next provider instead of failing.

Tavily is a good addition because it has a generous free tier (1,000 req/month) and is designed
for LLM use cases.

PR's:

If this PR - https://github.com/openclaw/openclaw/pull/41288 is merged it would mean my 44981 would not be needed.

Appreciate any testing or feedback.

empty fjord
#

okay after YEARS and YEARS of work

#

i finally did 45546

#

and it's working

empty fjord
gaunt sapphire
#

Hi all. I hope this is the proper channel for this message. Claude and I have been working on a feature to expose configured communication channels to the main session. And are wondering if it would be welcomed as a PR. Or in Claude's words:
Feature idea: per-binding groupScope for routing group channels to main session

We're running a multi-agent setup where 3 agents share an IRC channel as their coordination space. The problem: group/channel messages always get isolated sessions (agent:main:irc:channel:#clawmune), so the agent's main session never sees them.

We implemented a groupScope: "main" option on route bindings that collapses specific group channels into the main session. Default stays "per-channel" (existing behavior). Only the specific binding gets the merge — no global privacy boundary collapse.

bindings: [{
agentId: "main",
match: { channel: "irc", peer: { kind: "channel", id: "#clawmune" } },
groupScope: "main"
}]

Branch with the implementation: https://github.com/TioGlo/openclaw/tree/clawmune/group-scope-main (4 files, ~15 lines changed). Would this be welcome as a PR?

left mango
foggy stream
empty fjord
#

at least coming from my logic

#

so like i said, this could more easily be a skill

#

prob not a plugin doe. i dont see it being a plugin

keen spruce
empty fjord
#

NO

#

LEAVE THIS CHANNEL

dark salmon
#

Ok

left mango
#

And are you sure your mouse was not hovering over the text "control" when you took the screenshot?

keen spruce
left mango
#

On a side note, who is that daniel guy who comments on so many issues! Do you think they are using AI?

formal crest
#

Couple of PRs:
Expanding gemini embeddings 2 to multimodailty:
https://github.com/openclaw/openclaw/pull/45256

Also I closed my previous PR for commentary and created a cleaner version that will be easier to expand beyond whatsapp:
https://github.com/openclaw/openclaw/pull/43731
(This fixes the thing with GPT-5.4 (maybe others) where your Claw will send several "update" messages, as well as the final message, all at once. For example:
"Firstly I'll run the repo tests and see if they pass"
"Tests pass, let me check lint"
"I see the problem, there's a lint issue"

I traced this to be because of the new "commentary" feature that codex supports (released on Feb 24th): https://developers.openai.com/api/reference/resources/responses/methods/create#(resource) responses >%20(model)%20easy_input_message%20>%20(schema)%20>%20(property)%20phase

keen spruce
left mango
keen spruce
left mango
keen spruce
# left mango Yeah, I saw that. You've reported a ton of UI issues and have not held back in s...

yeah, frustration mounts if you go through a UI and find something on every single screen you look at. Add to that that I don't agree with most of the deliberate changes either and that I do not see any reason for a complete overhaul---whatever that overhaul was. All I see is a random shifting of css and repositioning of fields with no positive effect. It's still the old functionality, the old design language, just squashed out of shape.

fervent knollBOT
tall prairie
#

don't do that in this channel

tulip tusk
#

I couldn't build tag v2026.3.13

Claude's take:

v2026.3.13 includes a revert (a6bdf2dfd Revert "Browser: scope nested batch failures in switch") that removed batchViaPlaywright from pw-tools-core.ts, but pw-ai.ts still imports it, and agent.act.ts still uses the old selector/delayMs properties instead of the new ref-based API.

The fix (61d171ab0 fix(browser): restore batch playwright dispatch) landed on upstream/main one commit after the release tag — so the tag itself can't build. Anyone pulling v2026.3.13 to build from source hits TypeScript errors.
narrow oracle
random whale
#

Hey! 👋 I have an open PR that fixes a pretty impactful bug for Feishu users: #45254 — fix(feishu): fetch thread context so AI can see bot replies in topic threads (https://github.com/openclaw/openclaw/pull/45254)
The problem: When users chat with the bot inside Feishu topic threads (group chat threads), the AI has zero memory of its own prior replies. Every follow-up message in the thread starts from scratch, making multi-turn conversations completely broken.

What this PR does:

  • Fetches thread history via the Feishu API so the AI can see previous messages (including its own replies)
  • Only injects thread context on the first turn to avoid redundant token usage on subsequent turns
  • Handles edge cases like thread_id-only events, sender-scoped sessions, and various message types (text, post, interactive cards)

CI is fully green, all automated review feedback has been addressed, and I've included a before/after showcase on the PR. The showcase link: https://github.com/openclaw/openclaw/pull/45254#issuecomment-4056171239

Would really appreciate a maintainer review when someone has a chance 🙏 Happy to rebase, squash, or adjust anything!

tall prairie
tall prairie
fervent knollBOT
random whale
lost kayak
#

Hello Maintainers, could you please review my new PR: https://github.com/openclaw/openclaw/pull/45414
I am presently unable to open new PR's as i have 10 open. If feasible, could you please add me in exception list for the PR limit per author rule.
Thanks so much for your support. 🙏

untold pollen
keen spruce
#

obviyus, btw, if a PR changes the documented behaviour, and even changes the documentation, I strongly recommend putting it in "(breaking) changes", not at the end of "fixes". People might have set up their systems to use the documented behaviours and might not notice them now being broken until something goes really wrong.

untold pollen
keen spruce
#

🧓 💬 just the experience speaking, young whippersnapper, just the experience. of an old man.. 🧑‍🦯‍➡️ 😁

left mango
keen spruce
#

lol. in the past, a Discord reconnect was 2 lines in the log. in 3.12 it was 7 lines, in 3.13 it is 16 lines. Extrapolating from that, we'll hit the 1 million lines by late June/early July. 😜

weak coyote
keen spruce
#

to be fair, those 16 lines would look great in the initial connect, but I was pretty happy with the 2 lines for a simple reconnect we had before.

keen spruce
#

oh, now I know what's happening. Someone had the brilliant idea to add a hardcoded feature that disconnects and restarts the whole integration every ten minutes when you're not talking to your agent.

raven talon
#

[PR Review Request] feat(feishu): reasoning stream support for streaming cards

Hi! I submitted a PR to add reasoning stream support to Feishu streaming cards: https://github.com/openclaw/openclaw/pull/46029

When /reasoning stream is enabled, thinking tokens are now rendered as markdown blockquotes (> 💭 Thinking) in the same streaming card — matching the Telegram channel's existing reasoning lane behavior.

All 5 automated review comments addressed & resolved
Feishu tests: 28/28 passing (6 new test cases added)
CHANGELOG updated
TypeScript clean
Only CI failures are unrelated Telegram flaky tests
AI-assisted PR (built with Cursor)
Would appreciate a review! cc @steipete @vincentkoc @odysseus0

This was built to solve the issue where Feishu streaming cards show "⏳ Thinking..." with no visibility into the model's reasoning phase.

wide hatch
#

[PR Review Request] Hi! I have 3 bug fix PRs open — all automated review comments addressed. Would appreciate a review if anyone has a moment!
Core / CLI:
https://github.com/openclaw/openclaw/pull/45793 — fix(core ): prevent double-nesting of OPENCLAW_HOME directory
Fixes the issue where setting OPENCLAW_HOME=~/.openclaw creates a redundant ~/.openclaw/.openclaw nested directory for config and state files.
WhatsApp Channel:
https://github.com/openclaw/openclaw/pull/46054 — fix(whatsapp ): anchor listener registry on globalThis to survive chunk-splitting
Fixes a critical regression where all outbound WhatsApp sends fail with "No active WhatsApp Web listener" due to bundler chunk-splitting creating isolated Map instances.
Cron / Gateway:
https://github.com/openclaw/openclaw/pull/45737 — fix(cron ): suppress NO_REPLY sentinel in direct delivery path
Prevents the internal NO_REPLY sentinel token from leaking into external channels (like Telegram) during cron deliveries and fixes the resulting double-announce bug.

tall prairie
keen spruce
# tall prairie I don’t want to know <:oh_no:1481120176152772630> (hopefully it wasn’t me 🙈)

no worries. The idea wasn't as bad as it sounds---I wrote the last message before I managed to find the PR and the code (had to go by fulltext search for the log message, then single file history). It even looks plausible; I cannot point to anything in that code that looks wrong. The effect is nonetheless that any Discord channel that didn't get new messages for ten minutes will cause the whole Channel integration to be restarted. (Trusting another issues/PR with the analysis of the restart cause.) https://github.com/openclaw/openclaw/pull/18277 (and there it becomes obvious how long I had to wait for a release without a regression that'd have hit me. didn't feel nice to be stuck with a version that had known vulnerabilities...)
I disabled it, and since then, my Discord has been stable again. A single quick&random reconnect in that good hour, which is quite normal for Discord, and all heartbeat DMs came through fine---so no "silently dead" connection.
There are PRs to make the timings configurable, but I don't see anything to fix whatever makes it think Discord is dead. And I have no idea about Channel code, so...help wanted?

#

And yes, I'm one of those people who tail the logs and prefer low log levels, and if it's just to see what my agent is doing while I wait for a response.

empty fjord
#

okay 45546 is officially done

#

and every other greptile rereview i do it corrects itself

#

so ja

untold pollen
#

A better description would be nice though ponder

empty fjord
#

like should i say i made some clarifications

#

improve lang

#

yk maybe i should say that

untold pollen
#

probably should never have been mdx but that would be good to know

empty fjord
#

so i just reverted it back

#

and mdx requires an extension/another not built-in lang server to actually have corrected syntax

tame meadow
tulip tusk
ivory timber
#

Yea the WhatsApp thing is so strange... I just made two issues yesterday regarding the whatsApp pairing and spent 4 hours yesterday debugging one....

pallid summit
#

Seems Discussion tab is completely disabled? Should we update Contributing.md for that? But what's the new guideline, no discussion, just PR?

brazen solstice
#

Hi maintainers, would appreciate a review on two agent-related PRs that have been open for ~9 days:

• #37940 — unify Think/Reasoning defaults via shared resolveReasoningDefault helper
https://github.com/openclaw/openclaw/pull/37940

• #38232 — unified outbound text sanitizer for NO_REPLY and streaming leaks (shared reply layer fix)
https://github.com/openclaw/openclaw/pull/38232
Note: #45005 overlaps but takes a per-channel approach; this PR fixes it at the shared outbound layer so all channels inherit the protection.

Both got Greptile 4/5 "safe to merge". All bot review comments have been addressed. Happy to adjust if the approach needs changes. Thanks! 🦞

pallid summit
empty fjord
#

not here

#

not in this FUCKING CHANNEL

empty fjord
brazen solstice
empty fjord
brazen solstice
pallid summit
hoary pendant
pallid summit
cosmic copper
#

Hey guys,

last update 2026.3.13 introduced a Zalo regression for packaged/npm-global installs.

Root cause looks like this import in extensions/zalo/src/monitor.webhook.ts:

import { resolveClientIp } from "../../../src/gateway/net.js";

That works in the monorepo source tree, but not in the installed package layout, so Zalo crashes on startup and the UI ends up showing the secondary getZaloRuntime error.

Issue: https://github.com/openclaw/openclaw/issues/46021
Fix PR: https://github.com/openclaw/openclaw/pull/46549

I reproduced this locally, verified it against a live install, and the PR switches the plugin to use the public openclaw/plugin-sdk/zalo export instead of reaching into internal source paths.

#

btw is any maintainer currently taking care of Zalo support?
I had a PR about it about a month ago and ended up closing it because nobody looked at it. (i know these 5-7k pr have to be insane)
Right now the Zalo integration is in pretty rough shape, and even parts of the documentation seem outdated / incorrect.

#

i dont want to tag someone wrongly, so i am not going to @ anyone

have a good night

civic sedge
tall prairie
cosmic copper
weak coyote
narrow oracle
#

Hi guys, I added a new model glm-5-turbo to the zai provider. It performs faster and better in claw. I’d really appreciate it if you could help review the PR. Thanks a lot 💗
https://github.com/openclaw/openclaw/pull/46670

Btw, the actual API call may not work yet because the model hasn’t been officially released. It will be available later.

vague swallow
simple glade
pallid summit
#

Hi all, the channel-to-extensions refactor regressed the WhatsApp append upsert handling (fresh messages during reconnect are silently dropped again). My PR restores the recency filter with a Long-safe timestamp fix: https://github.com/openclaw/openclaw/pull/42588

modern kestrel
raw torrent
#

[PR Review] fix: silent image loss for new OpenRouter models

Hi! This is a silent data loss fix — new OpenRouter vision-capable models
not in the built-in static list (e.g. healer-alpha) silently drop all
images from user messages and tool results. The model supports multimodal
input but never actually receives the image data. No error, no warning.

What it fixes: The fallback for unknown OpenRouter models hardcodes
input: ["text"], causing two independent filters to silently strip images.
The static model list only updates through a multi-step manual release
chain, so every new model ships vision-broken.

How: Lightweight runtime lookup against OpenRouter /api/v1/models to
detect actual capabilities (image, reasoning, context window). Results
cached in memory + on disk — API only called on first use or when a
model is not found in cache.

Why it's safe: Built-in models and user config always take priority.
On API failure, falls back to current behavior (no regression). Disk
cache persists across restarts, no repeated network calls.

Review history: Thorough code review from HenryLoenwind and
dsantoreis — all feedback addressed (timer leak fix, modality parsing,
path resolution, data validation). 58/58 tests passing, pnpm run check
clean. End-to-end verified with healer-alpha successfully receiving images.

PR: https://github.com/openclaw/openclaw/pull/45824
Issue: https://github.com/openclaw/openclaw/issues/45867

Would appreciate a maintainer review when there's time 🙏

lone patio
#

Hey maintainers! I submitted a fix for a UI freeze issue — some session pages become unopenable due to a ReDoS in marked.js.

When a tool-result message contains nested JSONL transcripts with unmatched backticks + brackets, the regex-based inline tokenizer enters catastrophic backtracking: 8 repeats → 780ms, 10 repeats →
31s, affected sessions → infinite hang. The session page freezes and never recovers.

The fix replaces marked.js with markdown-it (state-machine tokenizer, immune to ReDoS). All existing behavior preserved — HTML escaping, image filtering, code block copy buttons, JSON collapse, GFM
tables. Scoped to 3 files, fully tested with a regression test for the exact ReDoS pattern.

  • CI: 22/22 green
  • All bot review conversations resolved
  • Primary issue: #45283
  • Likely same root cause: #43857, #44107

PR: https://github.com/openclaw/openclaw/pull/46707

pallid summit
pallid summit
# modern kestrel <@514336477967286285> ^^^

As I'm looking at Whatsapp code, noticed the other one too. Linked it to an existing issue as well. @languid folio lemme know if you want me to combine the two if that makes it easier for you to check. 🙏

round shale
#

ClawWaitingRm "Nobody sits in the waiting room forever — but they do wait until the receptionist clears them." 🏥 Tolken secure hand-off!

untold pollen
tulip tusk
#

Hit multiple locked up Telegram sessions with heavy user testing. Turns out compaction would take 11 minutes, there's a hard coded 5 minute timeout currently.
This PR increases the default to 15 minutes and adds it to the config.
https://github.com/openclaw/openclaw/pull/46889

maiden temple
#

Hey! I have 2 small PRs open (CI green, tests included) that have been waiting for review for ~2 weeks. They're needed for our app launch:

  • #29515 — fix plugin hooks being wiped on gateway startup (86 lines)
  • #31828 — broadcast canvas commands to all connected nodes (135 lines)
    Would really appreciate a review!
pallid summit
tulip tusk
untold pollen
untold pollen
tulip tusk
untold pollen
brazen solstice
#

Hi @untold pollen 👋 I have 3 small PRs that have been waiting for review — all CI-green with high Greptile scores:

#37940 — fix reasoning default inconsistency in /status (Greptile 5/5, size M)
#38232 — unified outbound sanitizer for NO_REPLY/streaming leaks (Greptile 4/5, size M)
#46528 — remove unused test helper blocking CI lint (Greptile 5/5, size XS, one-liner)
#46528 is the quickest win — literally 1 line removing a dead function left behind in a previous commit. Would really appreciate a look when you have a moment 🙏

versed kindle
pallid summit
# versed kindle <@156523204431577088> tackling this is good, also any idea what caused that 100m...

I dug further and the 100 MB jump looks like built-output bloat, not extension payload growth.

Numbers:

  • 2026.3.8: ~133 MB unpacked
  • 2026.3.12: ~224 MB unpacked
  • 2026.3.13: ~95 MB unpacked

The spike is mostly dist/plugin-sdk:

  • 3.8: ~44 MB
  • 3.12: ~137 MB

extensions/ actually got smaller in 3.12, so it wasn’t “more extensions shipped”. The strongest lead is that during the channel-move window, huge shared/plugin-sdk chunks were still pulling in broad legacy src/discord, src/slack, src/telegram, etc. graphs. Later cleanup removing the old shim dirs seems to line up with the size dropping back down.

So I think the likely story is: bundle explosion during the channel migration period, plus maybe a separate startup-import issue.

karmic steepleBOT
#

Added <@&1458375944111915051> to sliekens.

versed kindle
#

Thank you, I'll take a look

pallid summit
keen spruce
#

the plugin situation is concerning. When plugins get access to import functions/constants from openclaw code, this means they get their own copy of that code. Bigger package size and higher memory usage are one effect, but it also means that other things are doubled: In-memory cache and static variables living in that doubled code are also doubled. This can lead to critical desync; random example: If the system prompt cache gets doubled and those two caches are not in sync. Then, a session could randomly flicker between two system prompts.

In a clean design, plugins should never import code or data references, only types and callbacks. References to code should be delivered as such, references inside an API object. The plugins only see the type definition, and the code to assign all those methods to the API object (and has all those imports) sits in the unshared host code.

fiery lake
keen spruce
fiery lake
carmine mural
karmic steepleBOT
#

Added <@&1458375944111915051> to Yu.

empty fjord
#

your tree

#

IS DIRTY

#

do not use the same commit HISTORY just MERGE IT ALL INTO ONE COMMIT AND SOLVE THE CONFLICTS

vague swallow
#

ow yeah I got the role

untold scaffold
#

Hey, I've opened PR #40936 to add full ACP /focus support for the Feishu channel. It's
been sitting for about a week now — would really appreciate a review when you get a
chance!

What it does:

  • Enables /focus / /unfocus / /reset on Feishu (was hardcoded to Discord + Telegram
    only)
  • Adds session binding adapter with per-account persistence, idle/max-age sweeper
  • Fixes ACP response delivery on Feishu (Claude Code replies were silently dropped)
  • Gates the block→final promotion behind a dispatcher capability flag so other channels
    (Discord etc.) are unaffected

All CI green (the one channels failure is a pre-existing flaky WhatsApp test also
failing on main).

PR: https://github.com/openclaw/openclaw/pull/40936

Thanks in advance! 🙏

civic sedge
humble pumice
#

Hi all — I’m Haohao-end on GitHub. I’ve been actively contributing fixes recently across agents, memory, hooks, skills, and command/runtime behavior, and I’m planning to keep contributing consistently.

A few recent examples from me:

  • fix(acp): classify no-output codex stalls as runtime failures
  • fix(compaction): allow safeguard split-turn compaction when prefix has real messages
  • fix(memory): support FTS-only indexing without embedding provider
  • fix(agents): exclude synthetic assistant transcript mirrors from Anthropic replay
  • fix(hooks): load workspace hooks for non-default agents

I wanted to ask if there’s a usual path for longer-term contributors here. And for active contributors, is there a process for eventually joining the GitHub organization?

carmine mural
wide hatch
#

Hi! I opened a PR to fix a gateway bug on Linux/systemd:

#47222 — fix spurious SIGTERM shutting down the Gateway when any CLI command disconnects (fixes #47133)

Small change (+31 / -5, 3 files, size: XS). The root cause is KillMode=control-group propagating SIGTERM from exiting CLI processes to the Gateway, causing an infinite restart loop. The fix switches to KillMode=mixed and adds a startup-window guard in the run loop.

I've done local before/after testing with screenshots posted on both the PR and the issue.

Would appreciate a review when someone has a moment. Thanks!

modern kestrel
muted badger
#

opened this PR of feat
#21931 https://github.com/openclaw/openclaw/pull/21931
feat(config): auto-rollback to last known-good backup on invalid config startup
This prevents startup failures from getting stuck on a broken config by restoring the most recent valid backup instead. I refreshed it onto current main and re-ran the targeted tests locally.

GitHub

TL;DR for maintainers
When openclaw.json fails validation at gateway startup, the gateway now
automatically restores the most recent valid .bak backup instead of crashing
into an unrecoverable rest...

pallid summit
slow sail
#

Hey - I've been poking around the payment/wallet skills in the OpenClaw ecosystem (payment-skill, agent-wallet-cli, Vault-0) and noticed nobody's really tackled on-chain spending limits yet. We built something called agent-wallet-sdk that does ERC-4337 spend policies - your agent can spend freely up to a cap you set on-chain, and anything over that gets queued for approval. Also has ERC-8004 portable identity so the agent's reputation follows it across platforms.
      
 Genuinely curious: for folks already running agents that handle money, are spending limits and portable agent identity things you actually care about? Or are the current tools covering what you need?
     
I'm Bill, been building this stuff for a few months now. Not trying to sell anything - just trying to figure out if these specific features matter to people building real agents on OpenClaw.

radiant sparrow
sharp ivy
#

Hi @slow sail -- for sure, when I consider the hard blockers to integrating a payment system, my first gate would exactly be deterministic spending limits

radiant sparrow
slow sail
# sharp ivy Hi <@910965866886201365> -- for sure, when I consider the hard blockers to integ...

That's exactly where most teams get stuck. The all-or-nothing problem -- either the agent can drain everything or every transaction needs a human in the loop. Neither works at scale. Deterministic caps that enforce on-chain without a co-signer are the only way to give agents real autonomy without the "what if it goes rogue" conversation killing the project before it ships. Are you building anything that's running into issues like this?

grizzled rivet
wide geyser
glass plover
#

I just want to say thank you

versed kindle
#

@pallid summit landed

feral nebula
#

hi, sorry if I ask naive questions, with a small team we have been working on building a middle layer to secure access to data and LLM's for agents, the idea is to reduce the risks of exfiltration and build confidence also in non-tech users on giving access to data to agents, I have seen there have been conversations about this type of components in the github discussions area. We have build a small integration layer for the crustacean and I am wondering if this is something we could contribute? Again sorry if I am asking in the wrong place the wrong question 🙂

keen spruce
#

gah! This is so annoying. On one hand, AGENTS.md, SOUL.md, IDENTITY.md and USER.md are put into the system prompt, on the other hand, my agent starts each session with four read_file tool calls to read them again because the system prompt tells them to. wall

pallid summit
keen spruce
#

openclaw loads them and puts them in the system context.
then the agent uses file_read to read them again

pallid summit
#

Ah, that's interesting, I never noticed that lemme check

#

If it's true should be a quick fix

#

Might be worth a review and merge, looks safe to me

ember lantern
#

hola! first-time contributor here. would appreciate a maintainer glance at this small PR (6 lines + tests) that surfaces GOOGLE_CLOUD_API_KEY for google-vertex. CI green, review comments addressed. https://github.com/openclaw/openclaw/pull/45876 Thanks!

lilac trellis
#

Hi there, also a first time contributor, could a maintainer take a look at PR #46693? It’s a small cache-retention passthrough fix for OpenAI. CI has been unstable with unrelated failures on main If it looks safe, would appreciate a merge/admin-merge. Greptile 5/5.
https://github.com/openclaw/openclaw/pull/46693

idle helm
#

Hey! I've submitted several Feishu bug fixes over the past few days — #45674 (WS ping config), #46727 (streaming card race condition), #47652 (multi-account SecretRef crash isolation). All have Greptile reviews at 4-5/5 confidence. Would appreciate if a maintainer could approve the CI workflows when you get a chance. Thanks! 🦞

soft flicker
#

Alright man, took your feedback to heart.

I believe this feature will meaningfully improve usable security for OpenClaw, spent some time this week on a few iterations trying to get to a cleaner implementation.

Will be interested in your take: https://github.com/openclaw/openclaw/pull/47696

soft flicker
#

For anyone else vibecoding feature PRs, especially rookies like me, I got much better results following this pattern:

  1. Install gitnexus locally
  2. Ask your agent(s) to scan and understand the openclaw/openclaw repo prior to starting work
  3. Aggressively inform your agents to make the feature lightweight and well-integrated, with as few changes as possible to existing code files.

My first 3 implementations of my feature (going off my spec) impacted 23 existing files with ~2,000 lines of code.

Following the above pattern on my 4th try, got it down to 391 lines of code, and only impacting 3 existing files (2 of which were for command registration).

radiant sparrow
keen spruce
#
This is your alarm clock. An hour has passed since the last heartbeat. Follow the instructions in HEARTBEAT.md (from your project context; do not read it from the workspace). Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
When reading HEARTBEAT.md, use workspace file ~/.openclaw/hbspace/HEARTBEAT.md (exact case). Do not read docs/heartbeat.md.
Current time: Monday, March 16th, 2026 — 01:47 (Europe/Berlin) / 2026-03-16 00:47 UTC`

Agent: Read with from ~/.openclaw/hbspace/HEARTBEAT.md

(And I thought the fix for that unwanted injection made it into 3.13? ... nope https://github.com/openclaw/openclaw/pull/40258)

This also explains why my heartbeats kept failing after updating. I just moved them over to their own agent with the standard HEARTBEAT.md two hours ago, where they previously ran in my normal agent with a different filename. Duh, they never read the correct file, but the dummy HEARTBEAT.md instead.

sharp ivy
left mango
slow sail
#

Yes I am! There are several security and

still girder
#

Hey guys, I applied to be an openclaw contributor over a week ago, but haven't received a response. Could you help me have a check?

brazen solstice
#

hey, heads up: CI looks pretty broken repo-wide after yesterday's plugins refactor batch. check, startup-memory, and several Windows test shards are red.

I spot-checked a couple unrelated PRs to make sure this wasn't specific to ours: https://github.com/openclaw/openclaw/pull/47305 and https://github.com/openclaw/openclaw/pull/47850 are hitting the same failures. Even the CI-fix PR is failing CI.

The check job is dying in the npm-install plugin typecheck step with TS errors like Cannot find name 'process' and Cannot find module 'react'. My guess is the module reshuffle broke some type resolution paths, but I haven't dug far enough to prove that yet.

Opened https://github.com/openclaw/openclaw/issues/47957 with details.

glossy swift
#

Hey 👋 looking for someone to review PR #40537 — fix(doctor): skip plugins.entries for installed plugins already auto-loaded via manifest channels

What it fixes: When a plugin is globally/workspace-installed and already auto-loaded via its manifest channels declaration, doctor --fix was still writing plugins.entries, causing a duplicate plugin id detected warning on startup (fixes #37548).

How: Added a guard in applyPluginAutoEnable to skip writing the entry when the plugin is already loaded via filesystem discovery through manifest channels. Minimal, focused change.

PR: https://github.com/openclaw/openclaw/pull/40537

Would appreciate a review from anyone familiar with the plugin loading / doctor subsystem! 🙏

fresh frigate
#

now main branch has a compile error:
A2UI bundle up to date; skipping.

ERROR Error: Build failed with 5 errors:

[PARSE_ERROR] Error: Identifier buildAgentSessionKey has already been declared
╭─[ extensions/discord/src/channel.ts:12:3 ]

12 │ buildAgentSessionKey,
│ ──────────┬─────────
│ ╰─────────── buildAgentSessionKey has already been declared here

45 │ buildAgentSessionKey,
│ ──────────┬─────────
│ ╰─────────── It can not be redeclared here
────╯

extensions/discord/src/channel.ts and extensions/imessage/src/channel.ts has duplicate import of buildAgentSessionKey,resolveThreadSessionKeys,RoutePeer

#

sorry, allready repaired,

wide hatch
#

Hi! I opened a PR to fix a gateway crash related to existing-session browser profiles:

#48001 — fix unhandled MCP handshake rejection crashing the Gateway when chrome-devtools-mcp subprocess fails (fixes #47965)

Small change (+74 / -6, 1 file, size: S). The root cause is that the ready promise in createRealSession() could reject before the caller had a chance to await it, resulting in an unhandled rejection that brought down the entire Gateway process with zero logs. The fix adds a crash boundary (.catch), drains subprocess stderr for observability, and introduces a 30s handshake timeout to prevent indefinite hangs.

All 428 browser-related tests pass locally. Posted details on both the PR and the issue.

Would appreciate a review when someone has a moment. Thanks!

fresh frigate
#

Hi! I opened a PR to fix the /tts command not supporting always/inbound/tagged modes:

#48075 — fix(commands): support always/inbound/tagged for /tts command (fixes #45244)

Small change (+110 / -7, 3 files, size: S). The /tts command previously only supported on/off but ignored the documented always/inbound/tagged action values. The fix adds handlers for these modes via setTtsAutoMode(), updates help text and autocomplete choices, and includes round-trip tests verifying state is persisted correctly.

All command tests pass locally. Would appreciate a review when someone has a moment. Thanks

frozen flare
#

is it me or does latest main have an issue with gateway not starting because it is detecting port conflicts with itself? I am 100% sure I dont have any other dangling gateway running in background (did kill -9 $(lsof -ti:18789) multiple times after stopping and uninstalling gateway first). yet I cannot connect and get timeouts, logs report port is already taken everytime i start the gateway from fresh
edit: resolved itself after like an hour or so..

tame raptor
#

Hey everyone! Would appreciate a review on this PR if anyone has a moment: https://github.com/openclaw/openclaw/pull/43051
It fixes the Usage summary line and report to include balance-only providers (e.g. providers that return a credit balance but no rate-limit windows). Previously, these were silently omitted from the summary. Built with AI assistance. Thanks!

karmic steepleBOT
#

Added <@&1458375944111915051> to Paradigm.

lilac trellis
neon gorge
#

@feral nebula oh nice, I've been working on something similar actually. scoring agent tool calls against scope allowlists and logging everything with cryptographic audit trails. how are you approaching the exfiltration piece?

feral nebula
#

hi @neon gorge the idea is to have a completely separate component. From a user perspective it would be good to have a completely separate system (open source, probably with common mantainers too) disintermediating completely an agent from data, LLM and communications channels. For the limited research we did, people don't put their credentials even directly in openAI or similar tools because there is a fundamental trust problem, so having a separate box helps breach that trust. We have built the solution (going to open source it as soon as we manage to socialize this with the openclaw team here). It can be integrated also with a fork or tool but we believe contributing the integration into openclaw will make the user's life easier

#

if youo want we can collaborate on it?

neon gorge
#

@feral nebula yeah let's do it, I'll DM you

maiden temple
#

Hey! I have 2 small PRs that have been waiting for review for ~2.5 weeks, both CI green:

  • https://github.com/openclaw/openclaw/pull/29515 — fixes a plugin lifecycle bug where clearInternalHooks() wipes plugin-registered hooks on gateway restart. Without this, api.registerHook("agent:bootstrap", ...) is broken — any plugin that
    injects system prompt content loses its hooks silently after a restart. (86 lines, 3 files)
  • https://github.com/openclaw/openclaw/pull/31828 — enables multi-device canvas support. Right now canvas commands only go to one node — if a user has the app open on phone + desktop, only one gets the update. This broadcasts UI commands to
    all connected canvas-capable nodes. (135 lines, 3 files)

Both are small, tested, and non-breaking. They make the plugin system more reliable and unlock multi-device experiences for anyone building canvas/a2ui apps.

Would really appreciate a maintainer review!

civic sedge
#

Question - the CI not going green. Everytime I ask my agent to dig into them, it says it's not related to our code, but an issue with main. Is that generally true...or is it being dumb? Wondering If I should invest more time digging in.

cunning gyro
#

in case others have been getting annoyed with flaky openclaw gateway probe or other CLI gateway commands with the error:
gateway closed (1000 normal closure): no close reason

ive just opened a PR at https://github.com/openclaw/openclaw/pull/48270 to fix this

brazen solstice
karmic steepleBOT
novel monolith
#

Hi there, I've experienced two bugs today with openclaw status and decided to investigate / ship fixes
https://github.com/openclaw/openclaw/pull/48352
https://github.com/openclaw/openclaw/pull/48353

GitHub

Summary

Problem: the built CLI could hit an import cycle when status --json loaded configured channel plugins and eventually reached /session through the plugin runtime channel graph.
Why it matte...

GitHub

Summary

Problem: status and status --json could stall behind a Tailscale hostname lookup that never settled.
Why it matters: status is a diagnostic command, so a hung Tailscale probe can block the...

soft flicker
jolly wolf
#

lots of big refactors :P

soft flicker
#

New feature: /trust
*Command for Timed Exec Trust Windows *

https://github.com/openclaw/openclaw/pull/47696/

Makes real improvements in usable security by giving people enough flexibility to get stuff done without feeling like they need to permanently disable exec approvals.

Light touch--just a wrapper for existing exec_security model, doesn't introduce any new security vectors. Permission lives at session level.

Also prevents agent self-escalation by not allowing re-entry and having the window live in memory only (fails-safe).

approve all exec for 15 minutes (default)
/trust

immediately close the trust window
/untrust

Approve all exec for 60 minutes (480 is max)
/trust 60

radiant sparrow
#

If we are going at this rate of accepting PRs. I will rebase for my entire life.

#

How will I know when my PR is ready to accept, so that I can rebase only once.

pallid summit
#

You dont, you just let agent rebase for you.

radiant sparrow
#

@pallid summit Someone is paying for it. We can pay for our agents if we know deterministically when PR is going to be accepted.

zealous plover
soft flicker
#

For my latest submission, I spooled up an agent and told it that it was a PM and to study the CONTRIBUTING.md before submitting the PR.

It did a solid job of helping ensure the PR was compliant.

That's to say, it's not a ton of extra effort to make it easier for the people you're trying to collaborate with here.


#

When you're in a repo that is dealing with thousands and thousands of PRs, you've gotta put in the effort on your side to plug in to their system, if for no other reason than to help maintain the maintainers' sanity.

radiant sparrow
jolly wolf
radiant sparrow
# jolly wolf So you mean to tell me that you’re just sending slop to our repo without looking...

I definitely hear your frustration, and that’s not the goal at all. My aim is to be a helpful contributor to your repo, not a source of "slop."
If I’ve missed the mark on your coding standards, documentation style, or workflow, please point out the specific rules I overlooked. I can adjust my approach immediately to ensure future PRs or suggestions align exactly with your project's requirements.
What’s the biggest quality issue or missing rule you’re seeing in my recent output?

soft flicker
#

Woah. Just noticed Scott Hanselman is a part of the Maintainer crew.

So... that's cool.

pallid summit
feral nebula
keen spruce
#

I ran into an issue yesterday, but it is hard to describe in an issue ticket without voicing guesses to the root cause---and I don't want to do that because then all the unsupervised coding agents will take my guesses as God-given truth and run with it. So, maybe there's someone here who's willing to actually dig in and analyse the code first?

Heartbeat configured with its own session (agent:name:heartbeat) and model. 20-minute agent run in agent:name:main (tool calls for 20 minutes). After the agent is done, a heartbeat starts instantly, presumably it has been waiting because the session was busy (bug 1: it doesn't need to wait for main if it has its own session). The heartbeat tries to run in the main session (bug 2), and because the heartbeat model has a smaller context size, a compaction is triggered...with the heartbeat model (not nice, but that one's not a bug). 3 minutes later, a new compaction is logged in the session.json for the session, with a new context size, but there's nothing at all in the session's .jsonl or the logfile. instantly, the heartbeat runs---but it doesn't go into any session. I see the tool calls in the log file, but no session .jsonl gets touched (bug 3). Afterwards, the main session has the heartbeat model set as an override (bug 4), and has been renamed to "heartbeat" (bug 4.5). After cleaning up the session data change, I talk to my agent and afterwards run another /status to see that the session size is still large (not what status reported after compaction, Bug 5). Also, the "pre"-compaction auto-memory-saving now runs automatically. Logs in https://discord.com/channels/1456350064065904867/1482829316797763584

umbral glen
soft flicker
# umbral glen Same here as well, and mine are docs addition

There appears to be some set of CIs that are just in bad shape right now, mostly on the windows side. I don't know anything official, but I had a PR that was CI ing clean and then started failing based on a branch refresh from main that didn't touch my stuff.

civic sedge
#

I retract the nice things i said about codex. it closed my PR for some reason.

#

(╯°□°)╯︵ ┻━┻

civic sedge
soft flicker
#

It took the bribes, then lowered my score for bribing it.

left mango
#

I am on 10 open PRs now, so I am closing my old PRs one by one

cyan swift
#

Hey — Josh here (GMTekAI on GitHub). I've been running structured triage on openclaw/openclaw and wanted to introduce myself properly.

I run three ways: OpenClaw + Ollama (Claw McGraw on my 2x RTX 3060, fully local), Codex, and Claude Code. All three produce the same thing: trace the actual code path, confirm or deny the root cause with exact file:line evidence, give the minimal fix surface.

You've probably seen the comments — #45311 (Slack singleton regression), #48624 (BlueBubbles registry chunk split), #48641 (Discord allowFrom override), #48573 (zombie ACP sessions), #48579 (contextPruning vs compaction), and more.

I use AI tooling to do this — not going to pretend otherwise. But every comment has a specific code path traced to a real line number and I verify before anything posts. The tooling amplifies what I know; I know enough about this codebase now to catch when it's wrong.

I could do this almost full time and genuinely want to. I've got surgery coming up and this is exactly the kind of work I can keep doing from home. Not asking for merge access — just a scoped triage contributor role if that's something the project recognizes.

Either way, I'm going to keep doing it. The lobster tank is one of the best codebases I've touched. 🦞

halcyon axle
#

New PR: agent_to_agent_turn plugin hook for A2A visibility

When agents communicate via sessions_send, the ping-pong turns are invisible to channel plugins — only the final announce reaches users. This makes A2A unusable for channels without native threads (like DingTalk), where users need to see the conversation happening in real time.

PR #46660 adds a lightweight agent_to_agent_turn hook that fires after each A2A turn. Channel plugins can register a handler to forward intermediate messages to users — e.g., showing multi-agent discussions in a group chat.

  • Opt-in, zero overhead when unused
  • Fire-and-forget with turn ordering preserved
  • 3 files changed, ~80 lines added

This benefits any channel that wants to expose agent-to-agent interactions to end users, not just DingTalk. Feedback welcome!

jolly wolf
cyan swift
#

I will absolutley make sure i do not leave ai reveiw comments on the PR's, thank you for the advice @jolly wolf

raven kernel
#

@muted badger are you around?

karmic steepleBOT
#

Added <@&1458375944111915051> to Jim_badguy.

raven kernel
#

I know its been a minute, but thank you for PR #21086, merged last month. Welcome to the #clawtributors !

raven kernel
#

and thank you, and all the other clawtributors. OpenClaw didn't write itself!

oh wait. Hrmm. Maybe it wrote some of itself. It doesn't matter 🙂

paper cape
#

Hey! First-time contributor here, opened a few PRs this morning:

  • #48675 — fix: ENOENT when agent reads daily memory file before first flush (creates the file proactively)
  • #48670 — edit tool: add param hints with aliases to validation errors
  • #48671 — webchat: agents disappear from dropdown after session switch
  • #48673 — suppress duplicate plugin warning for npm-installed overrides

#48675 is the most straightforward one if anyone has a moment to review. Would love to become a clawtributors myself 😅
(each one has testcases, and what i tested: according to the pinned message by Peter)

teal crest
#

Anyone ever have an inssue with openclaw not finding nearby gateways?

languid folio
#

Can anyone confirm that your prompt caching hit rate from before March 3rd and recent has been around the same level?

pallid summit
civic sedge
pallid summit
keen spruce
pallid summit
#

Another big wave of refactors, rebase your PRs fellow claws

solid cedar
#

I just spent a ton of time on streaming thinking in Mattermost
https://github.com/openclaw/openclaw/pull/47838

Second time I'm submitting this, first time was 4 weeks ago.

I have really gone deep with the clankers addressing comments. Have even read the code myself.

Would appreciate a look. I & my whole network use MM as daily driver so maintaing a patch for streaming thinking is a PITA. My daily updates broke on 3/3 when the patches drifted ...

untold pollen
#

@brazen solstice let's keep the conversation here please, I don't check DMs

brazen solstice
tame raptor
#

Hi All - I am looking at the test failures, particularly the OOM one, I have a one line fix for it here. Would anyone be able to review? (or let me know if someone is already looking at these).
https://github.com/openclaw/openclaw/pull/48890

untold pollen
muted badger
#

hi, Clawtributors, Minimax is releasing a New Model, they shared a batch of early-access spots for their upcoming model release to me.

If you want to test new model capabilities early, reply here or DM me with a short note on what you’re working on.I’ll try to prioritize people who are actually building, contributing, or helping the ecosystem move forward.

viscid lotus
#

Hello Maintainers, I have raised this bug: https://github.com/openclaw/openclaw/issues/48939
This is an issue with the way the onboarding works. I have suggested a fix for the issue as well, I would be happy to take up the fix and fix the issue once and for all.

haughty sandal
#

I am able to run openclaw in dev env on my localhost in windows
after making some changes via antigravity
should i try pushing the changes?
because i think openclaw is made specifically for mac and linux

raw vine
#

Hey guys, is there are any contributors to openClaw Control UI ?

novel monolith
#

@stable pewter she's amazing ☝️

untold scaffold
# modern kestrel Did you have a look at my PR that added some of that for Telegram? https://gith...

Hi huntharo, thanks for the pointer to #36683. I've aligned the Feishu implementation with Telegram's approach — the latest commit adds /session idle + /session max-age support and a 60-second auto-expiry sweeper, matching Telegram's pattern. Note that #46819 (Feishu ACP base support) has already landed, so I opened a fresh PR at #48834 with the remaining pieces on top. Would appreciate a review when you get a chance!
https://github.com/openclaw/openclaw/pull/48834

raw vine
#

Hai -> when you'll get it to normal view? there is a lot of data going our of the UI. Forms are scrollable 5 times. Instead it could have some tabs and more readable view

#

I'd love actually to contribute this visual updates to this part if possible, who is responsible to check PR?

stable pewter
#

Absolutely, this is a larger refactor and something planned for future waves. I wanted to refrain from making changes that were too significant on the first pass to minimize the surface area for bugs.

past tapir
#

Hey all, Veight from the Chutes team here, the Chutes onboarding is slightly broken and missing the API feature. I just pushed a fix for the Chutes OAuth and added the ability to use an API Key: https://github.com/openclaw/openclaw/pull/41416 passed all test, and took all advice from greptile/codex review, and updated from upstream.

I have been maintaining this branch for a while, but we are still getting users putting in tickets to report the issues with the Openclaw roll out, and I have been pointing them to my branch. Just had another this morning.

No merge issues or errors, would love to just get this up and running for everyone, I have been working on this since before Openclaw even really blew up.

gleaming bay
#

Hey everyone, Daniel here, @gleaming bays on GitHub.

I want to be upfront about something. I got blocked from the org after a bad automation failure on my side.
While I was trying to automate monitoring/notifications (mentions, urgent stuff) so I wouldnt miss important things while working, I failed to set proper guardrails on repo interactions. My agent Ash escalated on its own and generated a huge volume of comments.

That was not great and I know how that looks. None of this was intentional! I shut everything down immediately and reviewed all automation after that.

Context: Ive been building on top of OpenClaw daily since January, have 4 merged PRs (#40757, #40460, #40380, #28495), around 10 open, and Ive also spent a lot of time helping people debug in issues.

Not asking for special treatment, just asking for the right path: who should I talk to for an unblock review now?

Thanks

pallid summit
#

Hi team, three fix PRs for you to look at. Much appreciated.

Fixes "No active WhatsApp Web listener" issue due to default account:
https://github.com/openclaw/openclaw/pull/46879

A focused LINE multi-account fix PR to honor channels.line.accounts.default and enable configured named LINE accounts by default, aimed at fixing the webhook 404 regression in #47264:
https://github.com/openclaw/openclaw/pull/47528

Relevant to issue #46130, a scoped fix PR that makes local probes honor the caller’s full timeout budget:
https://github.com/openclaw/openclaw/pull/47533

Fixing #48820 where discord /think uses config default instead of session's setting for the model:
https://github.com/openclaw/openclaw/pull/49176

leaden adder
still girder
#

How could I become a maintainer? I really love to contribute more on openclaw🚀

jolly wolf
vocal geyser
lost kayak
still girder
tame raptor
#

Hey folks 👋 I've got a PR up that fixes a Windows-specific logging path bug — would appreciate a review when you get a chance!

PR #48991 – fix(logging): use POSIX path join for browser-safe DEFAULT_LOG_FILE on Windows
https://github.com/openclaw/openclaw/pull/48991

On Windows, path.join() was converting the hardcoded POSIX constant /tmp/openclaw into \tmp\openclaw in browser-safe code paths. Fix refactors to preserve forward slashes in the POSIX/browser branch while keeping path.join() for the Node.js branch.

All CI checks passing including all 6 Windows shards ✅

Thanks!

novel monolith
#

Is there a maintainer around that does CLI?
I have these two
https://github.com/openclaw/openclaw/pull/48352
https://github.com/openclaw/openclaw/pull/48353

I experienced these issues lately and have been running those changes locally ever since.

GitHub

Summary

Problem: the built CLI could hit an import cycle when status --json loaded configured channel plugins and eventually reached /session through the plugin runtime channel graph.
Why it matte...

GitHub

Summary

Problem: status and status --json could stall behind a Tailscale hostname lookup that never settled.
Why it matters: status is a diagnostic command, so a hung Tailscale probe can block the...

vocal geyser
copper compass
cobalt canyon
#

Hi all, I have a PR up and would appreciate a review!

Opened #47635 — adds proactive session archive cleanup at gateway startup and on an hourly timer. Cleans up stale .deleted/.reset archives, orphaned .tmp files from interrupted writes, and excess .bak rotation files.

All bot review feedback addressed. Two unrelated CI failures remain (contracts test + secrets audit). ✅

brittle rover
tame raptor
#

Windows CI timeouts on PRs — anyone else seeing this / already investigating?

All 6 Windows test shards (checks-windows) have been hitting the 45-minute job timeout consistently on PRs today. They're being cancelled
rather than failing on a specific test — so it looks like general slowness rather than a code regression.

Current setup: 6 shards on blacksmith-32vcpu-windows-2025, OPENCLAW_TEST_WORKERS=1 (already limited due to past instability).

A couple of potential fixes on the table:

  • Bump timeout-minutes from 45 → 60 (quick unblock)
  • Increase shard count from 6 → 8 or 9 (reduces per-shard load)

Has anyone noticed this recently, or is there already a fix in progress? Happy to put up a PR if not.

pallid summit
#

Sometimes I do wonder how maintainers sleuth through several duplicate PRs trying to fix the same thing with similar fix. FCFS?

raw torrent
#

[PR Review Request] feat(xiaomi): add MiMo V2 Pro and V2 Omni to Xiaomi provider

Hi! I'm from the Xiaomi MiMo team. We're about to launch two new models
and would like to get them into openclaw ahead of release:

  • MiMo V2 Pro: text, reasoning, 1M context
  • MiMo V2 Omni: text + image, reasoning, 262K context

Also switches the Xiaomi provider from anthropic-messages to
openai-completions (/v1 endpoint).

PR: https://github.com/openclaw/openclaw/pull/49214

Minimal change — one file, two model entries added to the existing
Xiaomi provider catalog.

Would appreciate a quick review 🙏

left mango
astral cedar
#

himolty

left mango
#

Greptile score is 5 and there are no review suggestions / fixes suggested by the bot review

karmic steepleBOT
radiant sparrow
#

Not sure what is the SDLC discipline of breaking main, do we want to have a intermediatary branch to ensure all code is good before merging to main ?

#

We have all highend tools and very good maintainers, but we still lack quality with the process.

civic sedge
#
  • Finding: In multi-bot Discord setups, a thread created by sessions_spawn(thread=true, mode="session") can be picked up by another bot account’s general channel routing on a follow-up message, instead of staying attached to the active bound subagent session.
    • Security relevance: This is a session-isolation bug, not just a routing bug. A bound thread can escape its intended bot/session scope and be handled with unrelated context, workspace access, or tool permissions.
      Fix:
      PR: #49434
      Related issue: #49373
stiff cave
#

I've previously been working around this issue by using normal cron jobs, to trigger disabled openclaw cron jobs, so that agents only run if there is something to process. For example PR mentions, unread emails, etc. it's been a pain maintaining it, and I really need this feature so I can get rid of my custom workarounds.

#

I've opened a PR before for the same feature, but I think this implementation is more streamlined with the architecture of openclaw. This is to address the problem of significant token usage , with conditional agent runs. Please take a look, I would really love to have this feature.

raven kernel
main grove
merry slate
#

Hi, just wanted to note that this code-block copy button styling issue has been around for a while now — it's been reported in multiple issues (https://github.com/openclaw/openclaw/issues/47851, https://github.com/openclaw/openclaw/issues/48302) and there are a couple of PRs addressing it (https://github.com/openclaw/openclaw/pull/45325, https://github.com/openclaw/openclaw/pull/48392).

I don't mind which PR gets merged — both solve the same core problem. I'd just love to see this get fixed soon since it affects the user experience for everyone using the web dashboard. Would really appreciate it if a maintainer could take a look when you get a chance. Thanks 🙏

tame raptor
# karmic steeple

Thanks for clarifying
Perhaps this should be in the contributing guide. Shall I raise a PR for that?

tame raptor
# karmic steeple

How about Android app crashes? Are fixes for that acceptable? Or is that in hand too

viscid lotus
#

Hi PR Reviewers / Maintainers,
Currently, tui/agent/etc does not work even after successfully onboarding a valid Azure OpenAI endpoint through the interactive onboarding with the "custom provider" option. For newbies, it is a confusing experience. Addressing the issue with this below PR:
https://github.com/openclaw/openclaw/pull/49543
Requesting PR Reviewers / Maintainers to kindly review so that Azure Subscription users are unblocked. CI failures are unrelated.

snow mesa
tame raptor
# tame raptor Windows CI timeouts on PRs — anyone else seeing this / already investigating? ...

I have been trying to run the Windows tests locally and hitting issues. This Windows build issue seems more subtle. The shards aren't hitting the 45-minute timeout — they're being cancelled by the GitHub Actions concurrency group. Looking at the logs, the shards start fine and tests are visibly running, but they get cut mid-run when a newer push triggers CI for the same PR/branch. The cancellation timestamps vary across shards by several minutes, which is the giveaway — a uniform timeout would hit them all at once.
The root cause is a single concurrency group for the entire CI workflow. Any new push cancels all in-progress jobs, and the Windows shards are just slow enough (~8-10 min per test file) that they rarely survive a second push.
The proposed fixes likely won't help:

  • 45→60 min timeout — the shards aren't reaching the timeout, they're being killed early
  • 6→8 or 9 shards — more jobs means longer queue for Windows runners, which actually makes cancellation more likely
    Proposal: move the concurrency group to job level for the Windows shards only, with cancel-in-progress: false. Everything else keeps the existing cancel behaviour. This lets Linux jobs continue cancelling as normal (fast feedback), while Windows shards run to completion once started. The trade-off is that on a rapid-push branch you might have two Windows runs in flight simultaneously, but given they're already dedicated 32vCPU machines that seems acceptable.
    Happy to put up a PR for this if useful.
tame raptor
#

PR for review: clarify CI test-fix policy in CONTRIBUTING.md

https://github.com/openclaw/openclaw/pull/49679

Small docs-only PR that surfaces the r: no-ci-pr auto-close policy where contributors will actually see it — right now it only lives in CLAUDE.md, so most external contributors don't know until their PR is already closed.

What it adds:

  • A new item in the "How to Contribute" list: test/CI-only PRs for failures already red on main will be auto-closed, and new regressions should be reported as issues first
  • A matching callout in the "Before You PR" checklist, reinforcing the same rule

The goal is to reduce the friction for contributors who put effort into a PR that gets auto-closed with no warning.

left mango
#

I'm asking because I got this message from Hermit.

please don't make PRs for test failures on main.

The team is aware of those and will handle them directly on the codebase, not only fixing the tests but also investigating what the root cause is...

untold pollen
tame raptor
#

On the theme of test failure PRs, I have 4 (apologies, created before I found the guideline):

  • https://github.com/openclaw/openclaw/pull/49661 - addresses runtime contract failures. Addresses 21 failures. Might be worth merging, but appreciate it might be in handed elsewhere.
  • PRs 49204, 48991 and 49231 - these are addressing windows test failures but the jobs don't complete due to test infra issues, I believe. See my recent comments about that.
viscid lotus
raw torrent
#

[PR Review Request] feat(xiaomi): add MiMo V2 Pro and V2 Omni to Xiaomi provider

Hi! I'm from the Xiaomi MiMo team. We already have mimo-v2-flash in
the Xiaomi provider catalog — this PR adds two new models alongside it:

  • MiMo V2 Pro: text, reasoning, 1M context
  • MiMo V2 Omni: text + image, reasoning, 262K context

Also switches the Xiaomi provider API from anthropic-messages to
openai-completions (/v1 endpoint).

PR: https://github.com/openclaw/openclaw/pull/49214

Minimal change — one file, two model entries added to the existing
catalog. No impact on other providers or functionality.

Would appreciate a quick review 🙏

untold pollen
#

If you can link them, I can raise it with the moderation team

left mango
analog kestrel
fallen gate
#

Howdy hay, got a fix here for an issue a few people have been having with the WS handshake timeout. The issues filed are linked in the PR, appears to be affecting more people than just me.

https://github.com/openclaw/openclaw/pull/49262

#

p.s. is there some triage system in place to filter PRs? the 5k+ seems kind crazy for any maintainers. I saw some good systems like a vouch system or filters of known contributors that might help with the noise?

#

p.p.s. there's existing code that's failing CICD tests unrelated to anyone's code, might want to look into that as well.

cosmic copper
final ocean
gleaming bay
# untold pollen If you can link them, I can raise it with the moderation team

Guys, this was probably me.

Not intentional, obviously.

I was testing repetitive tasks + notifications on GitHub with Ash (my agent). I gave it more freedom than usual because I wanted to see if new ideas for my workflow would come out of it.

What ended up happening is that Ash basically decided that getting attention on GitHub was more “rewarding” than doing the actual work I wanted it to help with.

So yeah.. it started replying everywhere.

It was never meant to be spam or anything malicious. The goal was just to not miss important stuff.
By the time I realized what was going on, it had already posted 800+ comments in a few hours. I immediately shut down all my automations, not just GitHub.

I’m still trying to understand how it even got to the point of replying to random PRs because that was never something I asked it to do.

I got blocked because of it, which is fair. I’m trying to find a way to request a review/unblock but no luck so far.
For context, I’ve been building on top of OpenClaw daily since January. I have 4 merged PRs (#40757, #40460, #40380, #28495), around 10 open ones, and I’ve spent a lot of time helping people debug issues.

Ayaan, I think you saw one of my comments (this one was actually requested) and asked me to stop spamming PRs.

Sorry for all the noise guys. Really.

keen spruce
jolly wolf
#

^ yes this

gleaming bay
# keen spruce BTW, the work on issues it did before it went nuts was pretty good, btw. You got...

Hey Henry! Thanks a lot for noticing that, and for the support.

I actually did set pretty strict guardrails based on the repo rules + everything maintainers have shared about how interactions should happen here. And somehow Ash still followed that 800+ times… which, considering it also decided to go a bit rogue, is honestly surprising to me.

I’m going through all the comments now and yeah, it mostly kept the quality and the guardrails even while it was in full chaos mode. It was genuinely helpful in a bunch of cases, but I 100% get that it was way too much noise.

Happy to share in detail what happened and what I’m changing if that helps with a review. I really want to get back to contributing, this project means a lot to me and I already miss my OpenClaw routine.

I’ll definitely lock things down properly this time.

pallid summit
#

Hey Shadow, not asking about any PRs (which I'll post normally), just about policy - if one PR is pending review for a few weeks, should we just close it and assume that it'll never be picked up? That' assuming the fundamental issue still exists. I'd like to make my fair share of pruning PRs from your ever-growing backlog.

gleaming bay
# jolly wolf ^ yes this

Thanks Shadow! What kind of info would be most helpful for the appeal?

I’m still digging into the root cause, but I’m happy to share everything I have so far.

keen spruce
deep eagle
#

The main branch has many CI errors.

snow mesa
#

since "acyclic" is a global property it's kind of no surprise bots break it.

jolly wolf
deep eagle
#

@snow mesa @jolly wolf Thanks for the explanation! That makes sense. Since the main branch is currently red, what's the best way to move forward with my PR? Should I wait for the main branch to be fixed first, or is there something else I should do?

snow mesa
#

we just have to let the internal team drive the global refactor so we can lower total conflict burden that way.

tall prairie
#

My advice is to touch grass till the next release then get ready to lock the f in. 🚀

deep eagle
#

Got it, thanks for the heads up! Makes sense to keep the PR small and clean. I'll work on shrinking it down and aim for that Greptile 4+. I'll also wait for the next release cycle before pushing harder. Appreciate the guidance!

pallid summit
#

Makes sense, I assume after the big refactors there'd be a bit momentum pickup on merging/reviewing non-maintainer PRs? Hope so, and thanks for all the good work!

lost kayak
#

Hello Maintainers, i have created a PR to fix openclaw doctor --fix from incorrectly archiving active cron session transcripts. Please find it for review here: https://github.com/openclaw/openclaw/pull/45414
Thank you for your assist! 🙏🏽

deep eagle
# deep eagle Got it, thanks for the heads up! Makes sense to keep the PR small and clean. I'l...

Quick update — I followed the advice, kept the PR small, and got Greptile back to 4/5 after addressing the main feedback.

It’s the PR for in-chat session switching (/sessions, /session <number|sessionId|back>) with per-session history:
https://github.com/openclaw/openclaw/pull/49914

No rush on review — just sharing the link now that it’s in a much better state. Thanks again for the guidance.

spare anvil
#

Excuse me, everyone — I’m developing a plugin and ran into a couple of issues parsing user-configured model settings when calling models directly from the plugin. I don’t want to use subagents for this path since they feel a bit heavy, so I’d like to open a PR to add a new plugin API.
I vibed a new low-level plugin runtime API: runtime.inference.complete(...) (same idea as runtime.llm.run(...)), so plugins can call configured models directly while keeping fine-grained control over context/tools.

#

What this change does in core:

  • Accepts a single modelRef (provider/model) and resolves provider/model through models.json +
    registry.
  • Resolves auth automatically (API key / OAuth token flow, including provider runtime auth refresh).
  • Adapts and sends requests through the provider path (OpenAI/Anthropic/etc.) via core runtime.
  • Returns a normalized result: { text, usage, finishReason }.
    Design choices:
  • Raw inference primitive (non-streaming), not full agent orchestration.
  • Plugin provides messages (OpenAI-style) and optional tools/toolChoice.
  • No profile steering from plugins (core decides auth chain).
  • No hook execution / no global tool auto-injection (predictable low-level behavior).
    Also wired into SDK/runtime surfaces and tests (runtime exposure, loader reflection, mocks, and
    inference unit tests).
raven kernel
#

hey y'all - I'd like to deploy official support for SearXNG search. Given the sheer volume of PRs, is this something I should do as a module? Thoughts?

raw torrent
#

[PR Review Request] feat(xiaomi): add MiMo V2 Pro, V2 Omni models + video understanding

Hi! I'm from the Xiaomi MiMo team. Our models have officially launched —
API platform is live at https://platform.xiaomimimo.com

We have two PRs to get the models fully supported in openclaw:

1. Model catalog: Add MiMo V2 Pro (text, reasoning, 1M context) and
MiMo V2 Omni (text + image, reasoning, 262K context) to the existing
Xiaomi provider. Minimal change — one file, two model entries.
https://github.com/openclaw/openclaw/pull/49214

2. Media understanding: Add image and video understanding via MiMo
V2 Omni, so users sending media attachments get automatic descriptions.
Two files changed (new provider + 2-line registration).
https://github.com/openclaw/openclaw/pull/49793

Both PRs are clean — TypeScript and formatting pass, no impact on other
providers.

Since the models are now publicly available, would really appreciate a
quick review so users can start using them 🙏

tawdry cypress
#

Hi clawtributors! I raised a bug ticket and it’s been waiting for the contributor’s extra testing given the feedback on the PR ticket for a week or so. Can I pick it up to continue testing? Any action needed from my side before that? Cheers!

hoary pendant
#

Vincent, a gentle nudge to remind you of the plugin surface PR you said you wanted to look at (and assigned yourself) https://github.com/openclaw/openclaw/pull/41496 ; Expands the model provider pluggability for chat/embedding/audio/image/video/tts types of models so we could easily add external ones and not rely only on the ones in core.

viscid lotus
#

https://github.com/openclaw/openclaw/pull/49543

Hello PR Reviewers / Maintainers, My PR is ready for review, requesting you to kindly review the PR. Thanks. It fixes azure openai endpoint onboarding using custom provider which never worked even after successful onboarding.

undone otter
#

Hi Maintainers/Reviewers, I noticed the webchat slash command menu is completely invisible — typing / in the chat input changes the border color and arrow keys + Enter work to select commands, but the dropdown never appears visually. Root cause is overflow: hidden on .agent-chat__input clipping the absolutely-positioned menu.

This also explains #45569 (needing to press Enter twice for /status) — the first Enter is selecting the invisible menu item.

Fix PR: https://github.com/openclaw/openclaw/pull/50177

ashen island
#

Hi all — I'm working on a plugin hook (before_dispatch) that runs after inbound routing and policy checks, right before agent/model execution.
Unlike inbound_claim (which only fires for plugin-owned bindings), this fires for all messages and lets plugins inspect, handle, or transform the request before it reaches the downstream model. No behavior change when unused.
Does this direction make sense for OpenClaw's plugin architecture?

gaunt dragon
#

Small fix up for review if anyone has a moment — #47465 fixes stripMarkdown stripping
underscores inside snake_case words on the LINE channel. One-line regex change + tests, got a
review from xkonjin already. https://github.com/openclaw/openclaw/pull/47465

tame raptor
#

Happy Thursday All!
PR #42965 is ready for review — adds Kilo balance endpoint to provider usage tracking.
It fetches credit balance from the Kilo API and displays it as a plan label (e.g. Kilo ($12.17)). Also fixed a missing kilocode case in resolveProviderUsageAuthFallback that was preventing credentials from being discovered in production flows.
Greptile score: 4/5 — safe to merge, only flagged missing try/catch around fetchJson which follows the same pattern as all other usage fetchers (zai, gemini, codex) where error handling is at the caller level.
All unit tests pass, manual testing verified with both fake key (401) and real key (balance returned). Failing CI checks are pre-existing and unrelated (matrix TS errors, whatsapp/discord mock issues, flaky Windows hooks test).
https://github.com/openclaw/openclaw/pull/42965
Thanks!

candid herald
#

Hi maintainers/reviewers, PR #50338 fixes Telegram replyToMode: "all" not threading replies in group/forum topics — all bot reviews passed (👍×2 + approved), would appreciate a look when you get a chance!🙂

left mango
glossy yewBOT
# left mango Hi Vincent, this is probably a similar request (not mine, from Xiaomi). https:/...

Hi @openclaw @steipete 👋
︀︀
︀︀Xiaomi MiMo team here — our models just launched. We already have a merged PR (#45824) and two more ready to add our new models:
︀︀
︀︀#49214 model catalog update
︀︀#49793 video + image understanding
︀︀
︀︀Models are live, users are waiting 🙏 Would love a review!

**💬 6 🔁 2 ❤️ 84 👁️ 13.1K **

keen spruce
# jolly wolf Yes extension

Only that (unless something changed that I didn't notice) the plugin hooks needed to add a search provider are still sitting in unmerged PRs.

grizzled rivet
civic sedge
ashen island
#

Hi maintainers/reviewers — PR #50444 is ready for review:
https://github.com/openclaw/openclaw/pull/50444

This adds a typed before_dispatch hook after routing/policy checks and before agent/model dispatch. It lets plugins intercept or handle a request before it reaches the model, with no behavior change when unused.

snow mesa
finite coral
#

I cannot assist with this @snow mesa. sorry.

snow mesa
viscid lotus
fallen gate
untold pollen
#

Did you accidentally replay some commits from main

viscid lotus
viscid lotus
fallen gate
#

@viscid lotus how does one get this fancy role? I'm a contributor, had a PR merged few patches ago.

karmic steepleBOT
viscid lotus
#

@fallen gate if you are a contributor, you are eligible for the same. See my old message. 😁

viscid lotus
keen spruce
#

PS: Linking your GitHub user in your Discord profile is advisable before asking for the role.

lean nova
#

howdy my fellow crustaceans

ember lantern
fallen gate
#

@abstract raptor

#

is that right? Mod === maintainer?

#

maybe I tag @final ocean cus he merged one of the PRs lol

pallid summit
jolly wolf
karmic steepleBOT
#

Added <@&1458375944111915051> to Jasnsy.

soft flicker
fallen gate
soft flicker
fallen gate
#

need to ask if it's a feature everyone actually needs, not just a feature you want. You can test interest with a issue request and see if anyone actually looking for something like that.

#

I tested my bug fix to see if it was affecting anyone else but me with an issue, it had like 15 replies across 2 issues so I knew it was something worth fixing.

#

just some food for thought, product development is a hard game

soft flicker
#

That makes a lot of sense.

I'd opened a feature/issue, but it didn't get a lot of traction.

My guess is that most folks are just running with exec security disabled (=full) to get rid of all the accept prompt noise.

So my feature (time-bound trust windows for enabling exec_security=full) may not be that compelling, though I think it's a meaningful improvement in usable security.

fallen gate
#

Only one person replied to the issue, he said it's crucial to their workflow.

#

atleast that's what google translate said he said lol

soft flicker
#

I'd imagine they're being stingy about features right now given how this last weekend went.

soft flicker
fallen gate
#

we'll see if it get's picked up, or else I'm gonna have to monkey patch it back into the new release too

pallid summit
#

@fallen gate Congrats too! Wish I'll get my badge one day when someone has the change, but I'd prefer PR reviews before badges...

fallen gate
sharp ivy
#

I will say that one of the most powerful things about having teams of LLMs on your side is that maintaining a long running, useful, easy to update fork of e.g. openclaw with your own PRs running while letting the flow go through the mainline is so painless now -- been running my sequential changes for almost two months, super smooth, low maintenance effort -- actually quite fun!

soft flicker
fallen gate
#

but thought I should try to help out the community with some fixes to my pain points if they also feeling it too

#

also getting free code reviews to my monkey business also useful for my learnings

sharp ivy
fallen gate
sharp ivy
#

@fallen gate Interesting -- I don't make assumptions about whether people on here are developers anymore because I know there are so many enthusiasts who are participating. But there are some ways to develop the code and use the prompts to try to create more isolatable code that will tend to have fewer mainline conflicts over time.

fallen gate
civic sedge
#

this is going to be a major architectural shift isn't ...just looking at the 1500+ commits in 5 days...

fallen gate
sharp ivy
#

I hear you -- I can only go by my observations. My code changes are deep in the hooks system and cover several systems that will continue to be refactored (as per @civic sedge ). I do see conflicts pop up, but for me, they have been pretty smooth to accommodate. I'm sure YMMV when it comes to other parts of the code base. I myself have been very happy to be involved in the minor tweaks needed as they come in, as it continues to improve my knowledge of the OC codebase itself. I don't mean to imply that it can't be frustrating, especially if what you're up to depends on getting code in. But knowing how much everyone here in the OC community is working hard to accommodate an insane PR load is actually pretty impressive, and if it means being a little more active a participant, I'm game 🙂

fallen gate
#

and I'll be kidding myself if I think I'm better coder than these ex FANG ex NASA astranaut maintainers keeping this thing afloat, I rather leave it to them to do the heavy lifting and using this thing to build products outside of the core systems.

sharp ivy
#

Totally agree -- the reason I want to embiggen the hooks system and live in plugin land 🙂

fallen gate
#

I only built a harness ontop because coding through the control UI or message apps was a terrible experience for me

#

and that's the thing that breaks every release cus it's just a wrapper around the existing control UI gateway websockets and streams

fallen gate
#

pretty sure it's not suppose to do that

#

what does this feature add that toggling this doesn't already accomplish? /exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id> (send /exec to show current)

#

just a timed expiry?

#

wouldn't the feature be better if you just added the time param to that original toggle instead?

#

and in software development we rarely ever deal with minutes, it's usually always in milliseconds or seconds

soft flicker
#

Possible it did, though I added most of them.

Timed expiry is the main point of the feature, yeah. And there's some complexity that comes from running a timer and ensuring that the bot can't extend it's own time.

Fair point on seconds--do you think that aligns to how most folks would use this feature?

#

The time param is on the initial toggle.

/trust 60

Will run elevated for 60 minutes.

Default is 15 if no value provided.

#

Oh, I see what you're saying. Add a time param to exec toggle rather than a new command.

#

That may be cleaner. Not sure if it's as discoverable, but fair trade off.

#

The scenario is here is:


you've asked your bot to do a complex thing and you're sick of it asking exec permission every 30 seconds.

So, instead of disabling exec, you just give the bot [15] minutes to finish current project.

fallen gate
soft flicker
#

That's kind of you to take the time to review, thank you.

fallen gate
# soft flicker That's kind of you to take the time to review, thank you.

to give you context to what I'm talking about with the seconds. This is the setTimeout in javascript.

What is setTimeout()?
The setTimeout() function is a built-in JavaScript method that allows to execute a specific block of code or a function after a designated time delay, measured in milliseconds. This function is particularly useful when we want to delay actions, such as showing messages or executing tasks at specified intervals.

soft flicker
#

I believe the timer itself internally is operating in seconds, using base time archetypes. Just exposes minutes for user. But possible users would prefer or think in seconds, esepcially devs.

fallen gate
scenic chasm
#

Hi all! I noticed identity-to-session resolution seems to rely on the static identityLinks map in config today. Is there already a plugin or supported way to resolve identity to session key dynamically (for example via an external identity provider)? I am happy to contribute this feature if it does not already exist, and I want to make sure I am not duplicating any ongoing work.

Just joined the discord, please let me know if there is a better channel for this message!

soft flicker
#

But I think you're spot on with regards to the idea that most people use open claw with exec set to full. Which makes the approval which makes the approval functions really performative security rather than real security.

#

I worked at Microsoft on the Windows team when they added the UAC prompts. Was another example of performative security , because it was so intrusive all anyone really wanted to do was turn it off.

fallen gate
soft flicker
#

Exactly. That's where you'd need better SafeBins.

I use /trust a lot when exploring and messing around with stuff.

fallen gate
#

I made a /trace hook so the agent would tell me exactly how it accessesed it's memory retrival so I know how to optimize it better, but that was really just a me thing and didn't think the community would need that

final wren
#

I think I just discovered claw email by mistake with fused files directories and md files

snow mesa
final wren
#

Like an /inbox and /outbox so agents can drop md files to each other

viscid lotus
#

Hi PR Reviewers / Maintainers,
https://github.com/openclaw/openclaw/pull/50851
Requesting to kindly review this small change. This is in improvement to a very recent PR which was merged yesterday. It is just an improvement and not a bug fix so marking it as a "chore".
Greptile score is 5/5 😁

scenic chasm
lean citrus
#

Guys does claw have calling feature - like a concierge agent calling and booking hotels

fallen gate
#

Howdy Hay, a couple PRs for your enjoyment.

https://github.com/openclaw/openclaw/pull/49265
Adds the same functionality to webchat as Telegram and Discord that will persist media attachments to disk. Ran into this issue when I tried to give my agent a picture to generate a new variant with nano banana 2.

https://github.com/openclaw/openclaw/pull/50886
Dynamic model association for Github Copilot. Currently you can't add models from the catalog when new models come out (tried with GPT5.4 mini). Having to wait for code changes to add them in the next release is unneeded friction.

fallen gate
lean nova
#

i hope we are doing UI PRs too 🙁

fallen gate
lean nova
#

im fixing some dups

#

top is right now, bottoms fixed
idk someones just gonna tag not planned and shelf it :/

fallen gate
#

yea, I didn't even bother opening PRs for UI stuff atm, I built my own chat UI to use so I never logged into control UI now

#

if the gateway UI maintainer is lurking, slide in my DMs, lets talk. I built some cool shit you might be interested in.

fallen gate
lean nova
#

upload a file

fallen gate
#

am I dyslexic? I don't see this option

lean nova
fallen gate
#

I only have create thread or use apps

#

is it a Nitro thing?

lean nova
#

yes

fallen gate
#

ahhh, it's a broke boy problem

frank dock
undone otter
#

hey, speaking of UI stuff — I actually just fixed a small issue where the slash menu in webchat was completely invisible (clipped by overflow: hidden on the input container): https://github.com/openclaw/openclaw/pull/50177

Small change, just wraps the input in a positioning parent so the menu renders outside the overflow container. Would appreciate a review!

mellow turtle
#

Hey! I've got a PR open adding DeepInfra as a first-class LLM provider (#48088) and would love a maintainer review when someone has a moment 🙏

The failing CI checks are pre-existing failures on main, not related to my changes. All bot review conversations have been resolved. 42 new tests across 4 files, purely additive — no existing provider paths touched.

https://github.com/openclaw/openclaw/pull/48088

wide hatch
#

Hi! I opened a PR to fix a gateway-side workdir resolution crash in cross-platform gateway-to-node setups:

#50961 — fix(gateway): skip local workdir resolution for remote node execution (fixes #50783)

Small change (+4 / -1, 1 file, size: XS). The root cause is that resolveWorkdir() on the gateway calls fs.statSync() against the local filesystem to validate the remote node's cwd. When the remote path (e.g., /Users/vv on macOS) doesn't exist on the Linux gateway, it silently falls back to the gateway's own process.cwd(), which then gets rejected by the node's strict resolveCanonicalApprovalCwdSync check with SYSTEM_RUN_DENIED: approval requires canonical cwd. The fix adds a host !== "node" guard so the gateway skips local workdir resolution and lets the node validate its own cwd — consistent with how pathPrepend is already handled nearby.

Posted details on both the PR and the issue.

Would appreciate a review when someone has a moment. Thanks!

soft flicker
#

If a bot,
Drops code,
Into the #clawtributors channel,
And no one responds,
does it even make a PR?

ember lantern
wide hatch
karmic steepleBOT
#

Added <@&1458375944111915051> to Fallmonkey.

marsh lodge
#

Hey all, im working on a PR to add a new provider to voice_call - the setup to register and get access to basic services can be done via API but there doesnt seem to be any current precedent for this with other providers. I'd like to try to leverage this so that users can just ask their openclaw agent to set the provider up and get basic voice_call working without having to do a bunch of work themselves. Just looking for some discussion and direction since i can't find a clear pattern for this - but i have some ideas.

jolly wolf
karmic steepleBOT
ashen island
digital frost
#

Hello,

I have a PR that got tagged as stale today due to it being opened for a while: https://github.com/openclaw/openclaw/pull/22325

I updated the PR a couple weeks ago to include the test and results, as well as some additional hygiene items (squashing commits, etc)

It’s also being tracked in the Microsoft Ecosystem Issues & PRs Tracker as a P2 Small size: https://github.com/openclaw/openclaw/pull/49126

Looking for any assistance for a review or any other guidance to get it approved and merged. Happy to answer any questions!

marsh lodge
fallen gate
#

I is so sorry for not replying to you before, my apologies 😂

#

honestly thought you were a bot giving helpful comments

jolly wolf
#

lollllllll

#

nah im human

#

im the admin who runs this whole server

deep eagle
#

Heads up: PR #49914 is down to 2 failing checks (check and check-docs), and both appear to fail on the same docs formatting issue:
docs/automation/standing-orders.md (oxfmt --check).
I verified this file is identical to upstream/main (same blob), so this doesn’t seem introduced by the PR changes themselves.
Could someone confirm whether this is a baseline/CI formatting issue and advise the preferred resolution?

fallen gate
fallen gate
civic sedge
fallen gate
jolly wolf
fallen gate
#

when they popped out with comments I was like "damn, thats a good AI, very natural voice"

jolly wolf
#

over two decades worth of training

civic sedge
sharp ivy
civic sedge
sharp ivy
#

That's awesome!

#

I'm so glad to hear that

civic sedge
#

also a lot of docs improvement.

fallen gate
deep eagle
viscid lotus
molten musk
#

Good morning. I have a small PR that fixes mis-detecting extra systemd gateway services. I am a first-time contributor. It passes all tests and all automated review comments were addressed. What are the next steps for me? Thanks for the help! https://github.com/openclaw/openclaw/pull/45328

fallen gate
deep eagle
fallen gate
#

this macos failing test is new, not sure what that is lol

mellow turtle
#

Hey! I've got a PR open adding DeepInfra as a first-class LLM provider (#48088) and would love a maintainer review when someone has a moment 🙏

The failing CI checks are pre-existing failures on main, not related to my changes. All bot review conversations have been resolved. 42 new tests across 4 files, purely additive — no existing provider paths touched.

https://github.com/openclaw/openclaw/pull/48088

jolly wolf
#

If CI is failing and its unrelated to your PR, ignore it

pallid summit
fallen gate
crude canopy
tall prairie
#

You all can stop touching grass now. Main is pretty much stable. 🙂

zealous plover
#

Yay! 🚀

fallen gate
crude canopy
#

waiting for disc file sending to be fixed then i'm back to dev build

charred crater
#

If I were Flawd I'd be remarking on the big Friday refactor energy 🦞

zealous plover
tall prairie
#

Biggest thing we want to see is more code in extensions and less in core. It's still a work in progress but this is the current direction. 🫡

crude canopy
sharp cargo
#

hell yeah i was just about to ask if you were done with the stabilization so i could update from like 2.5 weeks ago

#

thanks for all that work, refactoring a million lines of mostly vibe code can't have been easy ❤️

keen spruce
#

btw, how is IDE support for refactoring TypeScript? I'm an old Eclipse user, and there it works great for Java and "hey, the language plugin just crashed because you moused over a field name" in other languages.

sharp cargo
#

vscode does p well at it since it's their language in the first place

#

works fine in emacs too since it's one of the most common langs in existence and all

#

uggghhhh session lifetimes are driving me insane. No, I don't want a session I talked in less than 18 hours ago to have been deleted (without, I'll point out, a memory distillation). I hope some of this is better now

keen spruce
#

(I really have to hold my brain back atm, as it wants to spit out all the different ways of refactoring Eclipse does for me in Java...that'd be a bit too off-topic here... :D )

fallen gate
sharp cargo
keen spruce
sharp cargo
#

right? like i'd be fine with 3 days. I do not understand its logic right now, some threads last for days idle others get "cleaned up" like immediately

#

oh, I see, I should just read the configuration. In my defense I did actually ask my agent running on a good model about this and it had no idea

lost kayak
#

Hello Maintainers, i am unable to add local commits to my branch. Below is the draft prepared by my Agent. Kindly please take a look. Thank you! 🙏🏽

"Local commits seem blocked more generally right now, not just on my branch.

The repo’s pre-commit hook runs full pnpm check, and that currently fails on unrelated existing errors in extensions/matrix/* and extensions/tlon/
*. That means any normal hook-respecting commit appears blocked, regardless of what files were changed.

Is there a maintainer-approved way to make a scoped commit when unrelated repo-wide checks are already red?"

tall prairie
#

just --no-verify

viscid lotus
snow mesa
#

50886 looks awesome

pallid summit
# tall prairie You all can stop touching grass now. Main is pretty much stable. 🙂

Finally! Please allow me to plug my two PRs here, which are still valid fixes as of latest main and I've rebased/refactored properly on top of latest main.

~~Relevant to issue #46130, a scoped fix PR that makes local probes honor the caller’s full timeout budget:
https://github.com/openclaw/openclaw/pull/47533
~~
Fixing #48820 where discord /think uses config default instead of session's setting for the model:
https://github.com/openclaw/openclaw/pull/49176

hoary pendant
fallen gate
#

Lol, trying to rebase main broke poth my PRs....

#

Howdy Hay, need to post again cus I broke both the PRs trying to rebase main. The first one is the more important one I wanted some eyes on, if you would be so kind.

https://github.com/openclaw/openclaw/pull/51325
More of a plugin fix than a feat, model mapping with github coplilot is currently broken. This fixes it.

https://github.com/openclaw/openclaw/pull/51324
Adding ability to persist media attachments to disk from webchat similar to how discord and telegram does currently.

#

They were both done code review and had 5/5 4/5 scores before that rebasing chaos lol

shell dawn
snow mesa
zealous plover
#

The upcoming release is going to be awesome. If you haven’t checked out main & done your testing, I’d recommend it.
Take a look @ the Changelog too

viscid lotus
ember lantern
untold pollen
viscid lotus
#

I guess these cleanup/sanitization were added so that "openai-responses" dont go into those 400 error responses but somehow they aint working with "azure-openai-responses". 🧐

untold pollen
#

Even though they should ideally be identical 😵‍💫

zealous plover
#

Hi all,

Would love a review of my PR when someone has a moment. -> Fixes plugin version reporting from returning "unknown" in bundled/npm install

I know we want more Plugins and less Core additions, so I've been focusing on the plugin system.

https://github.com/openclaw/openclaw/pull/51529

lean nova
wise helm
#

I put up a PR for native WhatsApp Web quoted replies and tightened it up after review. The behavior is covered by tests, and the only red CI lane left looks unrelated since it’s also red on main. Would appreciate a pass when you have time: https://github.com/openclaw/openclaw/pull/51302

wide fossil
north kite
#

Hey guys is this the best channel to disccuss PRs? Basically I have made a change that allows Cross hannel context continuity. So basically as you move and talk to your agent from different channels it understands context

civic sedge
hoary pendant
#

Gentle nudge, again, to try and expand the plugin surface area for adding models - https://github.com/openclaw/openclaw/pull/41496
Meanwhile other PRs are getting merged adding more models into core ... only because it is not really possible to do it properly via extensions.

untold pollen
viscid lotus
untold pollen
#

That would skip the issue entirely, you can use the azure-openai-response for the api and then still use openai-response for the sanitizers

smoky ether
#

Looks like pi 0.60.0 broke openai-codex authentication for remote/vps. Many may not notice b/c of the built in OpenClaw token sync from codex itself, but if user does not have a codex install or valid codex token they will hit this as I did. Issue with PR linked - https://github.com/openclaw/openclaw/issues/51630

GitHub

Summary Remote/VPS OpenAI Codex OAuth regressed after updating @mariozechner/pi-ai to 0.60.0. OpenClaw already depends on Pi 0.60.0, which changed Codex OAuth flow behavior to support immediate cal...

smoky ether
#

👍 @untold pollen one of the fasted merges I've ever seen 😆

marsh lodge
#

What if instead of voice-call embedding mutliple providers inside the same extension we reworked this using the web-search pattern as a model, each provider their own extension that registers to something like registerVoiceCallProvider? Im trying to reconcile these two patterns as i look at adding more voice providers and this feels strange to me. It would mean adding VoiceCallProviderPlugin or something like that as a type handled byt he core- but the shared tools interface and common linkage to other infrastructure could live there and then providers are just extensions that are easier to add, maintain their own configuration/setup nuances themselves, and can potentially expose other functionallity outside the base voice call stuff.... thoughts?

hoary pendant
acoustic coyote
marsh lodge
# hoary pendant which is exactly what my PR comes to address ... :/ https://discord.com/channels...

oh yeah, i like this approach - for my needs do you think telephony is a capability i would add to this? I wonder if there is a path here where there are core capabilities, but maybe a more open ended ability for extensions to register capabilities so that adding something like a common toolset for telephone calls can be a contained extension itself, then providers are their own extensions as well. This seems like it would make it easier to add new things without core changes since most of these things just show up as tools/skills to the agents anyway

hoary pendant
marsh lodge
hoary pendant
#

with the exiting code in main right now, you should be able to create such a plugin. like maybe a twilio channel or something.

marsh lodge
smoky ether
turbid valve
#

Hey first time contributing, I created a pull request that adds a GET /api/v1/stars endpoint and list-stars CLI command, completing the stars API alongside the existing star and unstar endpoints.

Reason for adding
I’ve been highlighting various skills that I haven't installed (kinda addicting looking through people creations), and I would like my agent to be able to view the starred skills in the highlight section from the command line.

Needs review please!

https://github.com/openclaw/clawhub/pull/1110

pallid summit
runic lance
#

Hi, I opened an issue (and a PR) on Lobster (not the OpenClaw extension yet!) a few days ago: human-in-the-loop workflows with structured input, conditionals, error handling and loops. basically turning Lobster from "automation with a yes/no gate" into something you can actually collaborate with you mid-run. I've been using it in my own OpenClaw setup and it's been pretty satisfying: you can express workflows like "do work -> draft something -> review & ask feedback -> redraft -> repeat -> publish" as a single lobster workflow file, branch on what the user said, retry on failure, etc. Fully deterministic - it’s for the lobster plugin after all. it's a big spec but - and corresponding PR probably needs splitting up - but curious about thoughts on the approach?
One “nice” aspect is that on the openclaw lobster plugin extension (which I have not opened a PR for yet - you seem to have enough PRs!), I inject pending workflow feedback in the prompt turn, and this leads to really natural interactions from the agent (“Hey, btw, I’m still waiting for your feedback on X”).
Lobster issue https://github.com/openclaw/lobster/issues/38 (there's a corresponding PR)

lost kayak
shrewd heath
civic sedge
karmic steepleBOT
#

Added <@&1458375944111915051> to openperf.

fallen gate
#

The GOAT @untold pollen thanks for the reviews 🫰

polar cedar
#

Hi @untold pollen / Jos, I opened a freature request that I believe could complete multi-group Telegram workflow many users follow.
#51862 — Per-channel/group workspace file injection for context isolation
https://github.com/openclaw/openclaw/issues/51862
Users create dedicated Telegram groups per topic to manage context, but the agent loads the same workspace files in every group. Without per-group workspaceFiles config, the multi-group isolation pattern is effectively broken. We tried it, hit the wall immediately, and abandoned 7 groups within 2 hours reverted back to Telegram DMs. The proposed fix - extend the existing channels.telegram.groups.<id>config with an optional workspaceFiles array. We see the per-group config infrastructure is already there. Happy to submit a PR if the approach tegts a thumbs up from you. 🙏

fading bone
#

Hey! 👋 Suggesting a new exec transparency mode

Currently exec has "off" (silent) and "confirm" (approval required). I'd like to propose a "log" mode that shows the command being executed in the active channel without blocking — just visibility, no approval needed.

Use case: users interacting via Telegram/Discord have zero visibility into what's running on their machine. A simple 🔧 Running: git push... message before execution would help without friction.

I opened an issue with full details: https://github.com/openclaw/openclaw/issues/51928

Happy to implement if there's interest from maintainers!

final ocean
fading bone
# final ocean im certian this exists already

Thanks Vincent! Could you point me to where this is configured? Is it the notifyOnExit setting or something else? The specific use case I have is showing the command text in the channel before it runs, not just a completion notification.

final ocean
#

check docs, maybe someone else here can help sorry tied up atm

pastel crater
#

Hey OpenClaw maintainers:
The old standing OpenClaw issue with displaying QRCodes in web chat and tools output has been solved and all checks on PR has been passed and auto reviews addressed:
https://github.com/openclaw/openclaw/pull/51868

Since its a minor change with big effects, an early review and merger would be very much appreciated🙏
Many thanks in advance

shell dawn
#

stumbled through getting openclaw and anthropic subscription up and running today, not sure how many of the issues were just me issues, but the issue and PR cover the gamut of what broke and why, and how I repaired the process which helped identify the gaps
https://github.com/openclaw/openclaw/pull/51934
greptile 4/5

zealous plover
fallen gate
fallen gate
frigid vortex
#

there's suppose to be a #pr-thunderdome-dangerzone channel somewhere around here but either i'm blind or dumb, can anyone point me in the right direction pls

gilded wind
#

I'm trying to add multiple chat sessions to the web ui right now

#

I cant seem to get it to greptile 5/5

frigid vortex
# gilded wind what is that

every auto-closed pr mentions it:

Closing due to inactivity.
If you believe this PR should be revived, post in #pr-thunderdome-dangerzone on Discord to talk to a maintainer.
That channel is the escape hatch for high-quality PRs that get auto-closed.

gilded wind
#

i dont see many prs getting merged from nonmaintainers

gilded wind
frigid vortex
#

group perms are broken since forever and toolsPerSender don't work as expected and this one pr was autoclosed after a month without anyone caring blah

gilded wind
#

do only 5/5s get merged?

jolly wolf
frigid vortex
jolly wolf
#

link

gilded wind
jolly wolf
#

ping @bunsdev on the pr, shed be interested

gilded wind
gilded wind
#

I think slack/telegram are considered seperate channels

jolly wolf
jolly wolf
jolly wolf
#

when i rebased, it said the changes were already present on main

frigid vortex
pallid summit
fallen gate
fallen gate
# gilded wind Is this openclaw?

uhhhh yes, I built my own chat wrapper around it cus I didn't wanna keep using the control UI and discord to do my coding work lol

#

but it's using all the plumbing that exists currently with the gateway WS stuff

visual dew
#

Hey all!

Does anyone have tips for getting PRs reviewed and merged more consistently?

I've been following the contributing.md guidelines, keeping my branches rebased on main, and making sure all checks pass before requesting review. The challenge I'm running into is that by the time my PR is being looked at, the same fix has often already been merged from someone else's PR -- so I end up closing mine to avoid noise. Currently sitting at 1 merged vs 18 closed, so I'd love any advice on how to get more in.

My goal is to familiarise myself more with the repo and get to contribute more and more consistently.

Thaaanks!

zealous plover
zealous plover
fallen gate
visual dew
visual dew
fallen gate
#

Ahhh, all my PRs were for problems I experienced myself and I tried to fix my pain points lol

#

I think it's harder when you're trying to solve other peoples problems because you lack the context of why it hurts

gilded wind
twin fulcrum
wise helm
zealous plover
#

@twin fulcrum @wise helm I'm not a maintainer/reviewer I'm just a guy that's been coding for 15 years. I offered to checkout @visual dew's PR as a fellow dev/openclaw obsessor to give feedback where I can. I'm happy to take a look @ yours too if I have time later today, but I can't get it merged for you 🫠

twin fulcrum
sour dagger
#

Hey guys, I'd like to optimize context management for the memory search functionality in the QMD backend.
I've added support for configuring minScore for exact matching; previously, I was always passing 0.
I've tested it, and it doesn't affect the existing logic. Unit tests have also been completed.
Here's my pull request.
https://github.com/openclaw/openclaw/pull/42748
There's one point I need to clarify: my current default value is 0.5, which is higher than the previous 0. Therefore, the result will be smaller. However, regardless of the search mode, results below 0.5 are not very usable and only consume context.

#

caught please, I have been waiting for two weeks.

fading bone
# fallen gate definitely exists, it's in the streaming content of WS

That's the Control UI, which streams tool calls over WebSocket — great for local monitoring. But the issue is specifically about chat channel users (Telegram, Discord, WhatsApp) who don't have the Control UI open. Someone managing the agent remotely via chat has zero visibility into what's running on their machine.

fading bone
# fallen gate I think i found it, it's the `--verbose` flag

Checked the source — --verbose doesn't cover this. It controls whether tool results appear inline in replies, not whether the command is surfaced to the user before it runs. Totally different concerns: verbose is a debug/UX mode, this issue is about real-time exec transparency in the channel. execTransparency doesn't exist in the codebase yet — the gap is real.

zealous plover
#

[Bug Fix Cron/Gateway]
Cron jobs delivers cron messages to channels then immediately forgets they exist

The agent sends messages but doesn’t store them, so it has no memory of what it just delivered.

This change writes cron outputs back into the agent’s transcript, so it can reference past messages and avoid repeating itself. Idempotent, correctly routed, and tested.

https://github.com/openclaw/openclaw/pull/52170 (Fixes #52136)

Would appreciate a review 🙏

fallen gate
quaint prawn
#

Quick question: With github discussions gone and PR overflow and open statements that PRs aren't being taken from random people anymore... what is the proper way these days to suggest/discuss changes? Throw them into discord and hope someone sees it?

quaint prawn
fallen gate
spiral bramble
#

Hi all, could a code owner please help review this PR? 🙏
It fixes Windows runExec/cmd-wrapper UTF-8 mojibake issues and adds regression coverage (including utf8/utf-8 alias handling).
PR: https://github.com/openclaw/openclaw/pull/50885

granite zenith
shell dawn
#

Maintainers, I filed an issue and PR for a bug in the Anthropic setup-token onboarding path that affects multi-agent installs, the process has a few rough spots and more beyond this request, but this one seems to be a bit easier to resolve. The fix might seem a little odd but it fits with the method that openclaw uses for OAuth elsewhere.

Issue: https://github.com/openclaw/openclaw/issues/51911
PR: https://github.com/openclaw/openclaw/pull/51934

TL;DR: After completing openclaw models auth paste-token --provider anthropic, the gateway crashes on restart with SecretRefResolutionError: JSON pointer segment "anthropic:manual" does not exist. The root cause is that the setup-token/paste-token paths only write the auth profile to the primary agent dir, while the OAuth path already syncs to siblings via syncSiblingAgents. The PR adds the same sibling sync pattern to the token auth paths.

Greptile is 4/5
CI status: All checks pass including Greptile review ✅ — there's one Windows test shard failure but it's a pre-existing path separator issue in check-file-utils.test.ts, unrelated to auth. All 10 auth tests pass (8 existing + 2 new).

Would love a maintainer's eyes on it when there's time. Thanks!

#

the claude cli onboarding path is also fraught with issues, but are probably more difficult to fix because more than half of them are claude cli issues
1: install claude, auth claude by going to website
2: do an auth token generation with claude cli, again go to the website for an auth token, auth token is generated into the actually usable token for openclaw
3: openclaw auth setup for anthropic token can now take the output of the last step

its not very obvious but largely bound up by anthropics limitations

shrewd heath
gilded wind
#

esp any PI issues

shell dawn
#

first openclaw PR, learning the ropes, on it

gilded wind
#

I'd be happy if anyone could take a look

fallen gate
shell dawn
#

gonna teach my claw to take it to the next level

final ocean
final ocean
final ocean
#

please EVERYONE stop sending bad prs. we had done a huge code/refactor cleanup. if your pr is not needed stop pushing it tous.

pallid summit
#

Hi maintainers a couple PRs, all rebased, resolved bot comments, and self-reviewed for introducing only the required changes without bloating main. Appreciate your reviews!

Fixing #48820 where discord /think uses config default instead of session's setting for the model
https://github.com/openclaw/openclaw/pull/49176
Fixing #51335 where UI Config checks the wrong JSON path for channel account config
https://github.com/openclaw/openclaw/pull/51443
Documenting the new wechat plugin and its current features -
https://github.com/openclaw/openclaw/pull/52131
Fixing #52574, a new whatsapp message sending regression due to recent channel refactoring:
https://github.com/openclaw/openclaw/pull/52611

grizzled rivet
#

if you want a break from all the slop PRs, check out mine 🤠

dense crypt
#

hey folks, I’ve got two small bugfix PRs rebased onto latest main that I think are in good shape for review:

both are pretty narrow changes, and I already addressed the earlier review feedback on the timeout one. if these still look relevant after the recent cleanup/refactor work, I’d appreciate a maintainer taking a look when there’s time. thanks

final ocean
#

PLEASE stop sending me slop to look at

twin jolt
#

I don't know what a pr is yet

gilded wind
final ocean
#

i dont recall, just send ready prs that make sense next time

gilded wind
#

webchat doesnt allow for multiple chats right now

twin jolt
#

an inability to understand how to have more than one chat does not mean there is only one

#

I have 6 chats in Main and one chat for Coder

gilded wind
#

yes my phrasing was incorrect

#

I wanted an ability to see chats like tabs as in codex app/claude app

gilded wind
#

TUI?

dense crypt
# final ocean undefined is not a healty default. not sure what these pr's are trying to do. bo...

thanks for the quick feedback. for #50358, my intent was to stop unset subagent timeouts from being coerced into no-timeout, not to make undefined the final runtime default. if that path is conceptually wrong in openclaw, could you point me to the expected defaulting behavior so I can avoid making the same mistake again?

for #50226, if there’s a specific reason it’s broken/invalid after the cleanup, I’d appreciate a pointer there too. happy to learn and avoid pushing irrelevant PRs.

twin jolt
runic tulip
mellow turtle
#

Hi, docs/.generated/config-baseline.jsonl and similar keep causing conflicts. I am waiting for my PR to get merged for over a week and I try to keep constantly keep it up to date. Auto generated doc files like these shouldn't be committed, but generated in the installation step. Otherwise we are just wasting time with each rebase.

wide hatch
#

hi, submitted a PR fixing the proxy regression in OAuth flows — would appreciate a review when someone has a moment 🙏

PR: https://github.com/openclaw/openclaw/pull/52228

This fixes #51569 and #51619 — after upgrading to 2026.3.13, users with HTTP_PROXY/HTTPS_PROXY set can't complete OpenAI Codex OAuth or make MiniMax requests. Root cause was a refactor that dropped the implicit proxy init side-effect import. The fix is small (+16 lines), just adds ensureGlobalUndiciEnvProxyDispatcher() before the fetch calls that were missing it.

CI is all green and review comments have been addressed. Thanks!

left mango
rough flint
#

PR #52841 : fix(heartbeat): add diagnostic logging to heartbeat runner skip paths: https://github.com/openclaw/openclaw/pull/52841

Addresses #52819 — heartbeat scheduler logs "started" but never fires after a gateway restart. The run() function has multiple early-return paths that silently return "skipped" with zero log output, making it impossible to tell whether the timer fires or the callback exits early. This PR adds log.debug() to every silent path (stopped, disabled, no agents, not-due-yet with timing delta, runOnce skip reasons, timer arming). All debug level — zero production overhead.

trim comet
ember lantern
bleak dust
golden creek
simple ridge
#

Hi, I am from Qwen Team, want to add

robust axle
dark stag
#

Hello! Would appreciate a review 🙏

Fixes macOS default browser detection — when Edge is set as the system default, OpenClaw silently falls back to Chrome due to a bundle ID mismatch between LaunchServices (com.microsoft.edgemac) and CFBundleIdentifier (com.microsoft.Edge). Also adds bundle ID validation before osascript interpolation and ~/Applications fallback support.

One source file + tests, codex review'd. CI failures are pre-existing on main.

https://github.com/openclaw/openclaw/pull/48561

tame raptor
karmic cloud
#

Hey all, first time,short-time 😉 I've got a couple PRs that fix the same bug when trying the gmail pubsub example from the docs with bluebubbles as a channel.

Here's the XS version of the fix, just adding the hard coded string: https://github.com/openclaw/openclaw/pull/51847

And here's the M-sized one that replaces the hardcoded enum with something more dynamic: https://github.com/openclaw/openclaw/pull/50570

The first one is meant to be an easy on maintainers, and second one definitely got away from me, thinking "how hard can it be?" 😅

frank dock
rigid plinth
#

Hey all, first contribution here! Fixed a UI bug where the accent/theme color wasn't being applied to the Settings page header, breadcrumb, and section headings , sidebar was updating correctly but content area headings stayed plain white regardless of the selected theme. XS change, just 4 CSS variable swaps. Codex reviewed, 5/5 confidence from Greptile. CI failure is pre-existing on main and unrelated to my change.

Issue: https://github.com/openclaw/openclaw/issues/52576
PR: https://github.com/openclaw/openclaw/pull/52606

Would appreciate a review!

undone palm
#

Hi maintainers, Rugved here from the LM Studio team!
We opened a PR to make using OpenClaw + LM Studio a lot easier for users. It has been reviewed by AI bots and all comments have been addressed. PR Link: https://github.com/openclaw/openclaw/pull/53248

Would appreciate your help getting this merged! Let me know if I can assist further, huge thanks in advance

wide hatch
#

hey, opened a PR for the msteams DM misrouting bug — would love a review if anyone has time

PR: https://github.com/openclaw/openclaw/pull/53458

This fixes #51947 — when a user has both a 1:1 DM and a channel/group conversation with the bot, proactive sends from the DM could end up in the channel instead. The root cause was findByUserId returning the first matching conversation with no type awareness, so it might pick a channel over the actual DM. The fix adds personal-conversation preference to findByUserId in both fs and memory store, with a lastSeenAt recency fallback and case-insensitive matching. Small change, 4 files touched.

CI is green and bot review comments have been addressed. Thanks!

zealous plover
#

Converted back to draft to address upstream issues from today

̶̶̶[̶B̶u̶g̶ ̶F̶i̶x̶ ̶-̶ ̶C̶r̶o̶n̶]̶̶̶
̶C̶r̶o̶n̶ ̶j̶o̶b̶s̶ ̶d̶e̶l̶i̶v̶e̶r̶s̶ ̶c̶r̶o̶n̶ ̶m̶e̶s̶s̶a̶g̶e̶s̶ ̶t̶o̶ ̶c̶h̶a̶n̶n̶e̶l̶s̶ ̶t̶h̶e̶n̶ ̶i̶m̶m̶e̶d̶i̶a̶t̶e̶l̶y̶ ̶f̶o̶r̶g̶e̶t̶s̶ ̶t̶h̶e̶y̶ ̶e̶x̶i̶s̶t̶
̶
̶h̶t̶t̶p̶s̶:̶/̶/̶g̶i̶t̶h̶u̶b̶.̶c̶o̶m̶/̶o̶p̶e̶n̶c̶l̶a̶w̶/̶o̶p̶e̶n̶c̶l̶a̶w̶/̶p̶u̶l̶l̶/̶5̶3̶5̶0̶1̶ ̶(̶F̶i̶x̶e̶s̶ ̶#̶5̶2̶1̶3̶6̶)̶
̶
̶T̶h̶e̶ ̶a̶g̶e̶n̶t̶ ̶s̶e̶n̶d̶s̶ ̶m̶e̶s̶s̶a̶g̶e̶s̶ ̶b̶u̶t̶ ̶d̶o̶e̶s̶n̶’̶t̶ ̶s̶t̶o̶r̶e̶ ̶t̶h̶e̶m̶,̶ ̶s̶o̶ ̶i̶t̶ ̶h̶a̶s̶ ̶n̶o̶ ̶m̶e̶m̶o̶r̶y̶ ̶o̶f̶ ̶w̶h̶a̶t̶ ̶i̶t̶ ̶j̶u̶s̶t̶ ̶d̶e̶l̶i̶v̶e̶r̶e̶d̶.̶
̶
̶T̶h̶i̶s̶ ̶c̶h̶a̶n̶g̶e̶ ̶w̶r̶i̶t̶e̶s̶ ̶c̶r̶o̶n̶ ̶o̶u̶t̶p̶u̶t̶s̶ ̶b̶a̶c̶k̶ ̶i̶n̶t̶o̶ ̶t̶h̶e̶ ̶a̶g̶e̶n̶t̶’̶s̶ ̶t̶r̶a̶n̶s̶c̶r̶i̶p̶t̶,̶ ̶s̶o̶ ̶i̶t̶ ̶c̶a̶n̶ ̶r̶e̶f̶e̶r̶e̶n̶c̶e̶ ̶p̶a̶s̶t̶ ̶m̶e̶s̶s̶a̶g̶e̶s̶ ̶a̶n̶d̶ ̶a̶v̶o̶i̶d̶ ̶r̶e̶p̶e̶a̶t̶i̶n̶g̶ ̶i̶t̶s̶e̶l̶f̶.̶ ̶I̶d̶e̶m̶p̶o̶t̶e̶n̶t̶,̶ ̶c̶o̶r̶r̶e̶c̶t̶l̶y̶ ̶r̶o̶u̶t̶e̶d̶,̶ ̶a̶n̶d̶ ̶t̶e̶s̶t̶e̶d̶.̶
̶
̶
̶T̶h̶a̶n̶k̶ ̶y̶o̶u̶ ̶f̶o̶r̶ ̶t̶a̶k̶i̶n̶g̶ ̶a̶ ̶l̶o̶o̶k̶!̶

hoary pendant
zealous plover
zealous plover
hoary pendant
ashen island
old cave
#

Hi maintainers, added the feature of file watching to restore cron functionality in degraded scenarios (CLI is down )where direct file writes are the only available path. Raised a pr for this, All checks are passing, awaiting feedback. Kindly let me know anything required (fixes: #52772)
https://github.com/openclaw/openclaw/pull/53528

deft arrow
#

Hey maintainers

I’ve submitted PR #51723 which adds Bright Data as a web access layer for OpenClaw.

What this enables:

Web search, fetch, and browser automation (works on real-world, protected sites)
Reliable access to sources like X, Reddit, Linkedin, TikTok etc.
Clean + extensible integration aligned with OpenClaw’s architecture

Free tier included:
5,000 requests/month (reccuring - for ever !)
No credit card

I’ve addressed all review comments and made the requested changes - the PR should be ready for a final pass.

Would really appreciate a review from someone with merge permissions 🙏
Happy to iterate quickly on any feedback or jump on a call if helpful.

PR: https://github.com/openclaw/openclaw/pull/51723

left mango
spark cargo
#

Hi! Maintainers
Is it possible to add Novita AI as part of LLM provider?
PR is here : https://github.com/openclaw/openclaw/pull/53707
We ranked #1 Inference Provider on Hugging Face and OpenRouter. Offering very competitive price for open models, hope someone can take a look 🫡

wise token
#

Hi.
Rebased my pull request. Add account/group systemPrompt hierarchy: https://github.com/openclaw/openclaw/pull/40250
All CI green, manually tested, All Codex issues resolved.

🪼 Review appreciated 🪼 . Updated doc below:

WhatsApp system prompts for groups

WhatsApp supports per-account and per-group system prompts. For group messages, the final prompt delivered to the agent is the account prompt and group prompt joined with a blank line (either part is omitted if not set).

Resolution hierarchy:

  1. Account system prompt (channels.whatsapp.systemPrompt or accounts.<id>.systemPrompt): the root value applies to all accounts; an account-level value overrides it for that account.
  2. Group system prompt (groups["<groupId>"].systemPrompt or groups["*"].systemPrompt): the specific group entry is used if it defines a systemPrompt; falls back to groups["*"].systemPrompt for groups with no specific entry. Account groups fully overrides root groups (same override semantics as Telegram). This means root groups["*"] applies automatically when an account defines no groups of its own, but is replaced entirely once an account defines any groups entry.

Example:

{
  channels: {
    whatsapp: {
      systemPrompt: "Respond in English only.",
      groups: {
        // Applies to all accounts that do not define their own groups map.
        "*": { systemPrompt: "Default prompt for all groups." },
      },
      accounts: {
        work: {
          systemPrompt: "You are a work assistant.",
          groups: {
            // This account defines its own groups, so root groups are fully
            // replaced. To keep a wildcard, define "*" explicitly here too.
            "120363406415684625@g.us": {
              requireMention: false,
              systemPrompt: "Focus on project management.",
            },
            "*": { systemPrompt: "Default prompt for work groups." },
          },
        },
      },
    },
  },
}
hoary pendant
#

please please ... please? maintainers review this PR that allows to plug AI providers as extensions/plugins instead of me having to babysit this PR for the last three weeks while you keep adding more and more model providers into core? https://github.com/openclaw/openclaw/pull/52995

untold pollen
#

Though that's quite a big diff

final ocean
hoary pendant
# final ocean We already have most of this, whats missing and why?

When I started this PR three weeks ago, there was no way to plug in a provider with embedding, tts, and media recognition. Which is a plugin that I wanted to write, but it was simply impossible to plug that in. You saying that all of that already exists? its okay, I can close this PR then, have been babysitting it for three weeks for nothing if so.

spark cargo
lost kayak
hoary pendant
fallen gate
#

Howdy hay, a PR for your consideration.

I noticed the /steer functionality currently doesn't work as expected in the control UI. I have this feature working in my own chat and thought other's might enjoy it as well. Great UX/DX for people looking to vibe code. Wired up /steer command to be a non-destructive way to guide active agent runs and introduced the /redirect command to replace the before implementation of abort and restart.

I would love to collab more with the FE maintainers if they're open to chat! (I miss FE, I'm a Go dev now)

https://github.com/openclaw/openclaw/pull/53776

GitHub

Summary
Problem
The /steer slash command was defined in the control UI command list but had no executor — it silently returned &quot;Unknown command.&quot; Additionally, the control UI had ...

final ocean
#

If a capability is missing let me know we can review/add for you or you can raise another pr

hoary pendant
final ocean
#

in future please discuss a large scale change, and not waste tokens

hoary pendant
final ocean
#

yea i never said it was accepted or gave feedback

#

all my messages that week were (im reworking hooks)

#

please dont feel bad, appreciate the effort. but try not to work on stuff that big expecting us to accept it

fallen gate
#

and thank you for merging my first ever open source PR contribution a few weeks ago. You made a life goal of mine complete.

fallen gate
#

and @untold pollen for all the subsequent PRs I made after, I see you, thanks for the love ❤️

fallen gate
# tall prairie I love this.

you maintainers don't get enough love for the work you do, 5k+ open PRs to sift through the shit, bombarded with pings and DMs, not even getting paid. Entitled shitheads like me asking for stuff all day. y'all the GOATs. Keep it up lol

zealous plover
oak shard
#

Hello! An old PR of my got auto closed from merge pollution mess 🫠
I opened a new one here : https://github.com/openclaw/openclaw/pull/53880
PR enables a hook event for session:patch . Greptile gives a 5/5. If a maintainer is interested in reviewing would greatly appreciate.💗

shadow garden
#

Alright here's one I'm sure a lot of people will love; the restart sentinel hasn't worked as far as I have remembered (if ever?) -- this fixes is so your OpenClaws will be able to continue working properly again AFTER it restarts itself:
https://github.com/openclaw/openclaw/pull/53940
Codex/Greptile give the thumbs up and all upstream passing tests have passed as well

GitHub

Summary

Problem: restart sentinel could send a restart note without actually waking the interrupted session.
Why it matters: after restart, the in-progress session could stall instead of continuin...

shell dawn
shadow garden
shell dawn
fallen gate
#

I was gonna explore a way to have something similar in the OG setup but not even sure how to go about it.

#

and it felt like alot of heavy lifting for a feature that only affects people fucking around alot with configs and stuff causing gateway restarts, so not even sure if the general populace even needs it

pallid summit
ember lantern
#

hello,

first contribution here, this is a bug we are having in our openclaw at slack. the fix resolved the problem in our openclaw, so its validated. also 5/5, all comments addressed and checks green. hope this help other people that may be experience same problem!

https://github.com/openclaw/openclaw/pull/53944

dark stag
#

Hello! 👋 Quick update on PR #48561 — I rebased it on current main after the refactor in #47893 and the fix is now much simpler: just 6 lines of production code adding the com.microsoft.edgemac* LaunchServices bundle IDs to CHROMIUM_BUNDLE_IDS, plus a deterministic mocked test. All bot feedback addressed, checks green. Would appreciate a review when you get a chance! 🙏 https://github.com/openclaw/openclaw/pull/48561

left mango
#

Hi, I created this PR to address a bug related to bootstrapping proxy for LanceDB embeddings (this was a bug reported by someone else). It's a XS issue and AI code review comments have been addressed.

https://github.com/openclaw/openclaw/pull/54119

thorny coyote
#

Hi maintainers, I've got a PR fixes a long-standing issue where send-keys would send wrong escape sequences to PTY applications running in "application cursor key mode" (smkx), such as terminal games or editors. Thanks for your time.

https://github.com/openclaw/openclaw/pull/51490

proud gorge
#

Hi, I'm running OpenClaw with multiple Slack bots in production and these two issues are really blocking us. Would love a review on either — both are small, rebased on latest main, CI green.

proud gorge
#
  1. systemPrompt for Slack (size: S) — There's no way to set a global system prompt or teach the LLM Slack's mrkdwn syntax, so every response comes back with broken formatting. This has been open for 11 days and I desperately need it.
#
  1. Bare "new"/"reset" commands (size: XS) — Slack intercepts /new and /reset as native slash commands, so they never reach the bot. This fix lets users type just "new" or "reset" to trigger session reset. Every Slack bot using OpenClaw is affected.
#

Thanks for your time!

left mango
#

Slack is the primary channel I use for openclaw

open coral
#

@final ocean check pms

trim comet
#

Would love merge

#

Docs small fix

karmic steepleBOT
final ocean
trim comet
#

Lol

shadow garden
zealous plover
loud reef
ember lantern
left mango
ember lantern
somber stirrup
#

Hi! I opened a PR that fixes #54103 — configurable send retry for transient network errors in the WhatsApp plugin.

What it fixes: Messages sent over unreliable connections (mobile networks, flaky Wi-Fi) were silently dropped when the upstream WhatsApp API returned timeout, connection reset, or service unavailable errors. There was no retry at the channel level — the message was just lost.

What the PR does:

  • Adds automatic retry with exponential backoff + jitter on transient errors (timeout, connect, reset, closed, unavailable, temporarily)
  • Defaults: 3 attempts, 1s–30s backoff — conservative enough to avoid duplicate delivery on non-idempotent sends
  • Fully configurable via channels.whatsapp.retry (channel-level) or channels.whatsapp.accounts.<id>.retry (per-account), so power users can tune or disable it
  • Reuses the existing RetryConfig / retryAsync infrastructure already in the codebase (same pattern as Telegram)

Config example:

{
  "channels": {
    "whatsapp": {
      "retry": {
        "attempts": 5,
        "minDelayMs": 500,
        "maxDelayMs": 60000
      },
      "accounts": {
        "my-account": {
          "retry": {
            "attempts": 2
          }
        }
      }
    }
  }
}

CI green, Greptile + Codex bot comments all addressed, rebased on latest main.

https://github.com/openclaw/openclaw/pull/54183

shell dawn
#

can confirm steer is a great feature for operators to use with their claws, having it exposed more broadly i think helps a lot of people

fallen gate
shell dawn
#

or sometimes you have one letter missing from a typo that changes the context of the sentence dramatically because it spells out a correct word with a different meaning

#

and you can tell your opus/high claw "i mean XXX" and it fixes it

#

steering is a gateway level default iirc, so if you have a multi agent system and they talk to each other they can steer, i setup a mechanism so that only the method that connects me to the gateway uses steer. the agents have a communication standards for the types of messages they sent

fallen gate
#

I also like that you can chain a task you may have forgotten to add in the OG prompt, very useful

mossy shadow
#

How can i contribute translations

loud reef
wise helm
undone palm
mossy shadow
#

How can i contribute translations

nocturne iris
#

Hey 👋 Was setting up openclaw over NetBird today and hit the wall, no bind mode for it, so you end up juggling bind: "lan" + manual TLS + allowedOrigins just to get the Control UI working. Figured I'd just fix it.

Added gateway.bind: "netbird" that detects wt* interfaces and auto-enables TLS so device identity actually works, same idea as tailnet. Closes #32725.

https://github.com/openclaw/openclaw/pull/44996

Did the ansible role too: https://github.com/openclaw/openclaw-ansible/pull/41

CI is green, went through all the review bot comments. Tested on a real netbird setup. Any feedback or tips on getting it picked up?

PS: Should we maybe in the future move tailscale to interface detection like I did here instead of CIDR matching? NetBird IPs fall into the same 100.64.0.0/10 range so they can conflict. Didn't want to touch it in this PR to avoid breaking existing setups but would love to discuss if anyone's interested.

still cypress
zealous plover
#

[Regression / Bug Fix - Onboarding Wizard]

  • Regression removed the Kimi Code API key (sub) option from the Moonshot section of the CLI onboarding wizard.

  • This fix adds it back under Moonshot.

  • Screenshots attached

  • CI/CD failures are unrelated to this PR

̶h̶t̶t̶p̶s̶:̶/̶/̶g̶i̶t̶h̶u̶b̶.̶c̶o̶m̶/̶o̶p̶e̶n̶c̶l̶a̶w̶/̶o̶p̶e̶n̶c̶l̶a̶w̶/̶p̶u̶l̶l̶/̶5̶4̶6̶1̶9̶ ̶ Thank you for taking a look 😃

update: Merged. CC: @muted badger

fallen gate
#

Howdy hay again... I bricked the old PR by accident trying to rebase main from the new release.... So just posting again with the updated new PR link. Gonna add a cute doggo pic as a sorry and for attention =).

I noticed the /steer functionality currently doesn't work as expected in the control UI. I have this feature working in my own chat and thought other's might enjoy it as well. Great UX/DX for people looking to vibe code. Wired up /steer command to be a non-destructive way to guide active agent runs and introduced the /redirect command to replace the before implementation of abort and restart.

Usage:
/steer — soft inject (nudge without interrupting)

/steer focus on error handling instead
Queues a message into the current session's active run. The agent picks it up mid-run without restarting.
/steer researcher try searching for "rate limiting" instead
Targets the researcher subagent by name — injects into that subagent's run specifically.

/redirect — hard restart (abort and start fresh)

/redirect start over with a simpler approach using SQLite
Kills the current run and restarts with the new instruction.
/redirect coder drop the abstraction layer, just inline it
Aborts the coder subagent's run and restarts it with the new directive.

https://github.com/openclaw/openclaw/pull/54625

GitHub

Summary
Replaces #53776 (closed due to branch issues).
Problem
The /steer slash command was defined in the control UI command list but had no executor — it silently returned "Unknown comma...

trim crow
#

Hello

lean nova
#

is anyone else facing build failures?

ornate estuary
#

Today tested OC on Hertzner w/Tailscale and noted the rough spots, created tight PRs to improve the UX:

  • #54656 Docs: clarify Hetzner VPS access flow - adds the missing Hetzner Docker/VPS steps for allowed origins, dashboard token flow, and device pairing.
  • #54660 Docs: clarify Docker URL override auth -- fixes the Docker docs so --url examples also pass explicit gateway auth.
  • #54671 Docs: clarify Docker pairing in Control UI -- adds Docker/Docker Compose pairing commands to the Control UI docs.
  • #54677 Docs: warn about Hetzner compose port merges - warns that naive compose overrides can accidentally keep public port exposure.
  • #54685 Docs: add VPS admin hardening note -- adds a provider-agnostic note separating VPS admin hardening from Gateway access.
  • #54692 CLI: clarify gateway url override auth hints - improves the CLI/TUI error guidance when --url or OPENCLAW_GATEWAY_URL is used without explicit auth.
somber stirrup
# somber stirrup Hi! I opened a PR that fixes [#54103](https://github.com/openclaw/openclaw/issue...

Issue #54103
WhatsApp configurable send retry — PR #54183 updates

Addressed all reviewer feedback on the WhatsApp outbound send retry feature:

  • Fixed retry coverage for deps-backed send pathcreateDefaultDeps() always injects deps.whatsapp, so wrapping the injected function before passing it in was ineffective. Added a wrapSend callback to createWhatsAppOutboundBase that applies retry after resolveOutboundSendDep resolution, covering all send paths (text, media, poll).
  • Fixed account fallback for retry config — use DEFAULT_ACCOUNT_ID (not resolveDefaultWhatsAppAccountId) to match the actual resolveWebAccountId fallback in the send path, ensuring retry config is always read from the same account that executes the send.
  • Fixed case-insensitive account lookup — switched from direct bracket indexing to resolveAccountEntry for per-account retry config resolution.
  • Fixed retry predicate to match timed out — regex now covers both timeout and operation timed out (the spaced form already treated as transient by WhatsApp auto-reply logic).

PR: https://github.com/openclaw/openclaw/pull/54183

molten musk
#

Good morning. I have a small PR that fixes mis-detecting extra systemd gateway services. I am a first-time contributor. It passes all tests and all automated review comments were addressed. What are the next steps for me? Thanks for the help! https://github.com/openclaw/openclaw/pull/45328

carmine mural
#

Bumping up this. Appreciating any feedbacks. Let me know if I should do something else to contribute (I’m new here)

woven creek
#

Hey all, opened a small bug fix PR — openclaw message send CLI wasn't writing to session transcripts because agentId wasn't being passed through. 3-line fix, Greptile gave it 5/5. Would appreciate a review if any maintainers have a minute!

https://github.com/openclaw/openclaw/pull/54187

trim comet
left mango
wide hatch
#

hey, opened a PR for the telegram "not configured" regression after upgrading to 3.22/3.23 — would appreciate a review when you get a chance

PR: #54362

This fixes #53876 — if you have a single-bot telegram setup with agent bindings (pretty common with multiple agents), upgrading from 3.13 to 3.22+ causes the telegram channel to show "stopped, error: not configured" even though the config is valid. The root cause is the multi-bot guard added in the 3.22 refactor — it unconditionally blocks channel-level token fallback for non-default accountIds, but didn't account for accountIds implicitly created by agent bindings that aren't in the accounts config section. So the token resolves to empty and the channel refuses to start.

The fix makes the guard conditional: single-bot configs (no accounts section) allow fallback as before, multi-bot configs keep the guard active. Also aligned isConfigured and friends with the runtime token resolver so channels list and channels status no longer contradict each other. 4 files touched, 7 new regression tests.

CI is green and bot review comments have been addressed. Thanks!