Skip to content

maintenance: selective upstream sync 2026-05-19#205

Merged
frankhli843 merged 33 commits into
mainfrom
maintenance/upstream-openclaw-20260519
May 19, 2026
Merged

maintenance: selective upstream sync 2026-05-19#205
frankhli843 merged 33 commits into
mainfrom
maintenance/upstream-openclaw-20260519

Conversation

@frankhli843

Copy link
Copy Markdown

Summary

Selective upstream OpenClaw cherry-pick port for 2026-05-19. 33 commits total including fixes for test failures discovered during the port.

Fixes cherry-picked from upstream:

  • fix(agents): persist subagent registry before returning accepted
  • fix(agents): skip fallback for session coordination errors
  • fix(telegram): preserve forum topic origin targets + inbound origin helper
  • fix(channels): clear canonical stale routes
  • fix(gateway): preserve spawned sessions + clear CLI bindings on session reset
  • fix(gateway): allow trusted-proxy local-direct password fallback
  • fix(telegram): preserve implicit default account
  • fix(provider): use Together video API endpoint (v2)
  • fix(anthropic): preserve Claude image capability
  • fix(memory): preserve qmd lexical search for hyphenated queries
  • fix(memory): catch up stale sessions on startup
  • fix(discord): return subagent thread delivery origin
  • fix(subagents): collect unresolved announce batches
  • fix(config): accept gateway remote port (enabled + remotePort fields)
  • fix(memory-core): yield event loop during fallback vector search
  • fix(memory-wiki): make wiki_lint tool output path-safe
  • fix(ui): render session-scoped tool events
  • fix(tui): preserve draft while chat is busy + pendingChatRunId

Gemmaclaw-local fixes applied during port:

  • chore: regenerate base config schema after cherry-picks added remotePort/enabled to GatewayRemoteConfig
  • fix(agents): add persistSubagentRunsToDiskOrThrow to subagent-registry test mock (new export missing from mock)
  • fix(telegram): wire buildTelegramInboundOriginTarget into session context (cherry-pick added helper but forgot to wire it)
  • fix(memory): correct session path format in startup-catchup test (wrong agent path prefix in index rows)
  • fix(together): update video generation test URL from v1 to v2 (test stale after source updated)

Test plan

  • pnpm check:changed — all checks pass (conflict markers, tsgo core/extensions, lint, import cycles, guards, tests)
  • CLI smoke: gemmaclaw --version, setup --help, backup --help, backup restore --help
  • CI green on this PR

frankhli843 and others added 30 commits May 18, 2026 20:37
Add SessionWriteLockTimeoutError class and hasSessionWriteLockTimeout
helper needed by the ported fix(agents) skip-fallback commit. Remove
route property references from session-delivery.ts that don't exist in
gemmaclaw's SessionEntry type. Add authorizePasswordAuth helper that was
present in upstream but missing from gemmaclaw's auth.ts.
Remove test assertions using .route property that exists in upstream's
SessionEntry type but not in gemmaclaw's, restoring typecheck green.
…nclaw#81172) (openclaw#83758)

Summary:
- The branch changes memory-core fallback vector search to scan chunks in 256-row rowid batches with `setImmediate` yields, updates regression tests, and adds a changelog entry.
- Reproducibility: yes. from source and supplied live output. Current main synchronously scans fallback vector ...  and the PR body shows the before/after heartbeat behavior through the actual `searchVector` fallback path.

Automerge notes:
- PR branch already contained follow-up commit before automerge: test(memory-core): add boundary, parity, and concurrent-insert covera…
- PR branch already contained follow-up commit before automerge: fix(memory-core): yield event loop during fallback vector search (#81…

Validation:
- ClawSweeper review passed for head 0ede3d7.
- Required merge gates passed before the squash merge.

Prepared head SHA: 0ede3d7
Review: openclaw#83758 (comment)

Co-authored-by: NW <nitinwadhawan66@gmail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
Summary:
- The PR changes collect-mode follow-up queue routing so unresolved-origin items can batch with a single resolved route and later compatible items can resume batching after a true cross-channel drain.
- Reproducibility: yes. at source level: current main treats unkeyed-plus-same-keyed queue items as cross-chan ... failing path is directly visible in `src/utils/queue-helpers.ts` and `src/auto-reply/reply/queue/drain.ts`.

Automerge notes:
- PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'origin/main' into maint-83701-20260518

Validation:
- ClawSweeper review passed for head e6ad029.
- Required merge gates passed before the squash merge.

Prepared head SHA: e6ad029
Review: openclaw#83701 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
Cherry-pick 68b3729 accidentally dropped the '>' from '}>',
producing a syntax error. Restore '}>;' as it was in origin/main.
* fix(agents): prioritize manual session turns

* docs: update changelog for session priority

---------

Co-authored-by: Galin Iliev <Galin.Iliev@microsoft.com>
…y test mock

New export added to subagent-registry-state.ts was missing from the
vi.mock definition, causing all tests in the suite to skip and the
module to fail to load.
…text

Cherry-pick 675e053 added the helper and the test assertion but did not
update bot-message-context.session.ts to use it. OriginatingTo now
correctly includes :topic:<id> for forum groups.
sessionPathForFile returns sessions/<basename> (no agent dir), but the
cherry-picked test used sessions/main/<basename>. The clean-file test
always failed because the path mismatch made every file look unindexed.
The source uses TOGETHER_VIDEO_BASE_URL = https://api.together.xyz/v2
but the cherry-picked test still asserted the old v1 URL.
@frankhli843 frankhli843 merged commit 61f4a44 into main May 19, 2026
110 of 111 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants