Commit Graph

759 Commits

Author SHA1 Message Date
Shakker
4452df5b17 test: tighten slack probe timeout assertion 2026-05-11 10:11:29 +01:00
Shakker
893632fc67 test: tighten slack reaction assertions 2026-05-11 09:52:35 +01:00
Peter Steinberger
32906ea64c test: use stable array ordering helpers 2026-05-11 09:37:13 +01:00
Peter Steinberger
f2031ee8c1 test: remove redundant slack test cast 2026-05-11 09:37:13 +01:00
Peter Steinberger
00cf49d607 test: fix assertion type checks 2026-05-11 09:23:54 +01:00
Shakker
38295d3c04 test: tighten slack and openshell assertions 2026-05-11 09:20:24 +01:00
Shakker
6066e878f6 test: tighten slack setup manifest assertion 2026-05-11 09:05:16 +01:00
Shakker
93cac4c7dc test: tighten slack target assertions 2026-05-11 08:20:22 +01:00
Peter Steinberger
122c0104cd test: tighten slack message adapter assertions 2026-05-11 08:04:00 +01:00
Shakker
e003849454 test: tighten slack user resolution assertion 2026-05-11 07:59:20 +01:00
Shakker
3ea27610f1 test: tighten slack thread recovery assertion 2026-05-11 07:29:09 +01:00
Shakker
51c9203510 test: tighten slack stream mode assertions 2026-05-11 07:21:29 +01:00
Peter Steinberger
526a43de6a test: tighten slack lazy seam assertions 2026-05-11 06:50:47 +01:00
Peter Steinberger
87d2b1bb48 test: tighten slack slash assertions 2026-05-11 06:48:13 +01:00
sxxtony
b2dab308ae fix(slack): include bot root message in new thread sessions (#79338) (#80409)
* fix(slack): include bot root message in new thread sessions (#79338)

When a user replies in-thread to a bot's own message in a Slack DM,
the new thread session was constructed without the parent/root message
content. The agent only saw `reply_to_id` metadata and could not
resolve what was being replied to, leading to confident-but-wrong
actions on follow-up corrections.

The thread-context resolver was filtering out every message authored
by the current bot before formatting thread history, including the
bot's own root message. For thread-replies starting a fresh session,
that left the agent without the parent context it needed.

This change retains current-bot messages in the thread history when
starting a new thread session, formats them with role=assistant under
a "Bot (this assistant)" sender label, and adds
`channels.slack.thread.includeRootMessage` (default `true`) to opt out.
Bot messages still bypass allowlist visibility filtering since the
bot's own output is not third-party content.

Fixes #79338.

* fix(slack): wire includeRootMessage into runtime config schema (#79338)

The first commit added `channels.slack.thread.includeRootMessage` to
the TypeScript type and zod schema, but the runtime AJV-style schema
generated from `extensions/slack/src/config-ui-hints.ts` rejected the
new field with `must NOT have additional properties` at gateway boot.

Adds the matching UI hint entry for `thread.includeRootMessage` and
regenerates the bundled channel config metadata so the live gateway
accepts the new field.

* Narrow Slack thread root context handling

Remove the public includeRootMessage config and keep the Slack thread fix focused on including only the current bot's root message on the first turn of a new thread session.

Preserve filtering of arbitrary current-bot Slack history while ensuring #79338 has parent/root context.

* Fix Slack thread root CI checks

---------

Co-authored-by: Bek <bek.akhmedov@gmail.com>
2026-05-11 01:09:03 -04:00
nickmopen
b90f28e895 fix(ui): prevent programmatic scrollTo from flipping chatUserNearBott… (#76991)
* fix(ui): prevent programmatic scrollTo from flipping chatUserNearBottom during streaming

* fix(ui): preserve user scroll-up events that arrive during programmatic scroll guard window

* test(ui): add unit coverage for programmatic scroll guard boundary and retry path

* fix(ui): preserve chat scroll bookkeeping

* chore: drop unrelated slack formatting

* test: narrow inbound dedupe claim result

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-11 05:07:19 +01:00
Peter Steinberger
4c26c90bee test: tighten slack reply assertions 2026-05-11 04:42:50 +01:00
Peter Steinberger
a99d8b82d9 test: tighten slack unfurl assertions 2026-05-11 04:40:39 +01:00
Peter Steinberger
15cf49222f build: refresh deps and route testbox through crabbox 2026-05-11 03:41:00 +01:00
Shakker
7430475044 test: tighten slack outbound adapter assertions 2026-05-11 03:25:06 +01:00
Shakker
b96e7f63ba test: tighten slack message tool actions 2026-05-11 03:21:51 +01:00
Shakker
bec2dc2f72 test: tighten slack interactive block assertions 2026-05-11 03:14:41 +01:00
Shakker
aaa5261c32 test: tighten slack outbound delivery assertions 2026-05-11 03:12:22 +01:00
Shakker
6274166940 test: tighten slack block edit assertions 2026-05-11 03:10:29 +01:00
Shakker
5e03a5d7d5 test: tighten slack client option assertions 2026-05-11 03:08:53 +01:00
Shakker
c872993985 test: tighten slack prepare metadata assertions 2026-05-11 02:24:59 +01:00
Shakker
a375039aeb test: tighten slack last-route update assertions 2026-05-11 02:20:21 +01:00
Shakker
62ea06e9b7 test: tighten slack preview reply readback assertion 2026-05-11 02:19:18 +01:00
Shakker
be67c587f3 test: tighten slack subteam warning assertion 2026-05-11 02:18:08 +01:00
Shakker
5cbcf7adb0 test: tighten slack malformed interaction log assertion 2026-05-11 02:17:08 +01:00
Shakker
8c4463677e test: tighten slack thread binding route assertion 2026-05-11 02:14:48 +01:00
Shakker
7ddb531a3b test: tighten slack send identity fallback assertion 2026-05-11 02:12:44 +01:00
Peter Steinberger
9ab94343a3 test: tighten slack monitor assertions 2026-05-11 02:00:53 +01:00
Peter Steinberger
7e12d8d54f test: tighten slack outbound assertions 2026-05-11 00:53:25 +01:00
Peter Steinberger
a7b250da36 test: tighten slack channel assertions 2026-05-10 19:21:43 +01:00
Peter Steinberger
909ab191a7 fix(slack): include api error details
Rewrite #53966 on current main, preserving Slack SDK structured fields while routing the final text through OpenClaw redaction.

Co-authored-by: Dennis Maskevich <dennis.maskevich@gmail.com>
2026-05-10 19:03:59 +01:00
Peter Steinberger
c14f4af2cc test: clear slack block send broad matchers 2026-05-10 18:59:12 +01:00
Peter Steinberger
22d979f0ab test: clear slack message action broad matchers 2026-05-10 18:26:52 +01:00
brokemac79
1d9530cc4b fix(slack): enable native socket reconnect 2026-05-10 18:01:50 +01:00
Peter Steinberger
710a83af90 fix(slack): recover full rich text messages 2026-05-10 17:46:41 +01:00
Peter Steinberger
f9c0dc2d2b fix(feishu): fall back from missing thread replies (#80306)
Summary:
- The branch adds an opt-in Feishu top-level group-send fallback for withdrawn or missing normal quoted thread replies, plus regression coverage, a changelog entry, and CI/lint typing and baseline refreshes.
- Reproducibility: yes. at source level. Current main hard-errors withdrawn/not-found Feishu reply targets when `replyInThread` is true, and the existing regression test asserts that no top-level create fallback occurs.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(feishu): fall back from missing thread replies
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): address review for automerge-openclaw-openclaw-8030…
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): reconcile automerge-openclaw-openclaw-80306 with ma…
- PR branch already contained follow-up commit before automerge: fix(ci): satisfy stricter lint and test types
- PR branch already contained follow-up commit before automerge: fix(ci): align Node 24 test typing

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

Prepared head SHA: 93146f9d13
Review: https://github.com/openclaw/openclaw/pull/80306#issuecomment-4415604729

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-10 16:41:51 +00:00
Peter Steinberger
f3ee9e26f9 test: clear broad mock helper lint 2026-05-10 17:06:15 +01:00
Peter Steinberger
79220d7832 fix(slack): allow top-level tool sends 2026-05-10 17:04:29 +01:00
Peter Steinberger
d0f0100bb2 fix(slack): drop ambiguous thread replies
Co-authored-by: Soichiro Yoshimura <soichiro0111.dev@gmail.com>
2026-05-10 16:54:38 +01:00
Peter Steinberger
a94aae73b4 fix(slack): honor configured acp bindings
Co-authored-by: Raasl <114852759+Raasl@users.noreply.github.com>
2026-05-10 16:49:59 +01:00
Peter Steinberger
a4eee2ccc2 fix(slack): scope dm last-route updates
Co-authored-by: clawSean <260045960+clawSean@users.noreply.github.com>
2026-05-10 16:44:58 +01:00
Peter Steinberger
da3ce0a1b6 fix(slack): normalize direct interactive sends
Co-authored-by: Kazuhiko Kazama <kazamak@gmail.com>
2026-05-10 16:28:15 +01:00
Peter Steinberger
dd167885e2 fix(slack): retain always-on room history
Co-authored-by: syedamaann <sydamaannnn@gmail.com>
2026-05-10 16:23:07 +01:00
Peter Steinberger
50c77f23c1 fix(slack): canonicalize dm mirror routes
Co-authored-by: Bek <bek.akhmedov@gmail.com>
2026-05-10 16:09:06 +01:00
Peter Steinberger
4143c8bb0a fix(slack): preserve loose mention tokens 2026-05-10 16:09:06 +01:00