Commit Graph

29552 Commits

Author SHA1 Message Date
joshavant
ca21090455 UI: characterize agents panel routing and extract selection reset helper 2026-04-09 22:59:22 -05:00
joshavant
c097ba3fc2 UI: characterize settings URL combos and trim loader flow 2026-04-09 22:59:22 -05:00
joshavant
2965dbd61c UI: simplify logs payload field assignment 2026-04-09 22:59:22 -05:00
joshavant
6b4675c981 UI: tighten settings URL and usage guard paths 2026-04-09 22:59:22 -05:00
joshavant
a6178ca1f3 UI: combine usage controller early-return guards 2026-04-09 22:59:22 -05:00
joshavant
c882d40187 UI: reduce logs controller quiet-mode branching 2026-04-09 22:59:22 -05:00
joshavant
594de84d04 UI: simplify usage request and error serialization helpers 2026-04-09 22:59:22 -05:00
joshavant
3b3b16b3f0 UI: compact log parsing branch logic 2026-04-09 22:59:22 -05:00
joshavant
0dadc7f35f UI: reuse selected agent resolution in render flow 2026-04-09 22:59:22 -05:00
joshavant
48955416db UI: dedupe agents panel supplemental refresh routing 2026-04-09 22:59:22 -05:00
joshavant
57d40a415a UI: streamline cron page loading toggles 2026-04-09 22:59:22 -05:00
joshavant
2fde93c9e4 UI: trim app-settings control flow noise 2026-04-09 22:59:22 -05:00
joshavant
4a44071296 UI: dedupe agent files reset in render flow 2026-04-09 22:59:22 -05:00
joshavant
f136a8159c UI: simplify active-tab refresh routing 2026-04-09 22:59:22 -05:00
joshavant
393c791466 UI: remove redundant cron refresh wrapper 2026-04-09 22:59:22 -05:00
joshavant
22b82b63be UI: compact refreshActiveTab characterization coverage 2026-04-09 22:59:22 -05:00
joshavant
95368827e7 UI: trim config-tab helper abstraction overhead 2026-04-09 22:59:22 -05:00
joshavant
d085ceb3f2 UI: consolidate tab and config panel refresh routing 2026-04-09 22:59:22 -05:00
joshavant
6c33e65d0d UI: add refreshActiveTab characterization tests 2026-04-09 22:59:22 -05:00
joshavant
04b943d6d7 UI: remove unused theme listener helper 2026-04-09 22:59:22 -05:00
joshavant
a70c5fddec UI: remove redundant theme listener attach on connect 2026-04-09 22:59:22 -05:00
joshavant
2b23dca40a UI: remove unused cron page metadata fields 2026-04-09 22:59:22 -05:00
joshavant
4c51644ca9 UI: dedupe selected-agent panel refresh logic 2026-04-09 22:59:22 -05:00
joshavant
4de1a490e4 UI: share active-session tools-effective refresh path 2026-04-09 22:59:22 -05:00
joshavant
743176b662 UI: reuse effective-tools state reset helper 2026-04-09 22:59:22 -05:00
joshavant
cd62100b08 UI: remove redundant cron jobs wrapper exports 2026-04-09 22:59:22 -05:00
joshavant
21099a1025 UI: consolidate cron run-state reset paths 2026-04-09 22:59:22 -05:00
joshavant
d39064418f UI: dedupe cron busy-state request flow 2026-04-09 22:59:22 -05:00
joshavant
243b86d29d UI: tighten stale-response guards in agents controller 2026-04-09 22:59:22 -05:00
joshavant
c1284bddd1 UI: streamline theme/session tab helpers 2026-04-09 22:59:22 -05:00
joshavant
63ad1b10c3 UI: consolidate session/controller tab refresh flows 2026-04-09 22:59:22 -05:00
joshavant
786823fd70 UI: consolidate config/tab/skills flows 2026-04-09 22:59:22 -05:00
Pengfei Ni
78389b1f02 fix(msteams): resolve Graph chat ID for personal DM media downloads (#62219) (#63063)
* fix(msteams): resolve Graph chat ID for personal DM media downloads (#62219)

Bot Framework personal DM conversation IDs use an opaque `a:...` format
that the Graph `/chats/{chatId}/messages` endpoint rejects as "Invalid
ThreadId". When the direct Bot Framework attachment download fails and
the code falls back to the Graph API path, inbound media (images, files)
is silently dropped.

Resolve the real Graph chat ID via `resolveGraphChatId()` before
constructing Graph message URLs, with conversation-store caching so
subsequent messages skip the API lookup.

* fix(msteams): preserve graphChatId across conversation store upserts

mergeStoredConversationReference only preserved timezone from the
existing entry — graphChatId was silently overwritten on every
activity-triggered upsert, defeating the cache and causing repeated
Graph API lookups on every DM turn.

Mirror the existing timezone guard so graphChatId survives upserts
that don't carry it.
2026-04-09 22:57:02 -05:00
Josh Avant
f096fc4406 Browser: unify /act route action execution and contract errors (#63977)
* Browser: unify agent act route execution and contracts

* Browser tests: lock act error codes and dedupe harness dispatch

* Browser tests: slim act harness dispatch map

* Browser act: enforce top-level targetId match

* Browser tests: cover missing act error codes

* Browser act: restore wait cap and reject zero resize dims

* Docs: document /act error contract

* Browser act: lock selector precedence and positive resize validation

* Browser act: restore interaction cap and harden contract tests

* docs: note browser act contract consolidation (#63977) (thanks @joshavant)
2026-04-09 22:54:33 -05:00
sudie-codes
4fc5016f8f fix(msteams): fetch OneDrive/SharePoint shared media via Graph shares endpoint (#55383) (#63942)
* fix(msteams): fetch OneDrive/SharePoint media via Graph shares endpoint (#55383)

* fix(msteams): rewrite shared links before allowlist check

* test(msteams): fix typed fetch call assertions

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-04-09 22:08:49 -05:00
sudie-codes
a59a9bfb07 fix(msteams): accept Bot Framework audience in JWT validation (#58249) (#62674)
* fix(msteams): use jsonwebtoken directly for JWT validation with correct audience (#58249)

* chore(msteams): regenerate lockfile for jwt deps

* fix(msteams): clean up unused serviceUrl parameter in JWT validator

* test(msteams): cover STS issuer in JWT validation

* fix(msteams): type jwt verify audiences and issuers

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-04-09 22:05:54 -05:00
Marcus Castro
95d467398e fix(whatsapp): drain eligible pending deliveries on reconnect (#63916)
* fix(whatsapp): drain eligible pending deliveries on reconnect

* docs(changelog): note whatsapp reconnect pending drain
2026-04-09 23:41:25 -03:00
sudie-codes
ab9be8dba5 fix(msteams): fetch DM media via Bot Framework path for a: conversation IDs (#62219) (#63951)
* fix(msteams): fetch DM media via Bot Framework path for a: conversation IDs (#62219)

* fix(msteams): log skipped BF DM media fetches

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
2026-04-09 21:04:11 -05:00
sudie-codes
11f924ba04 fix(cron): accept Microsoft Teams conversation IDs in announce delivery (#58001) (#63953)
Cron announce delivery rejected valid Teams conversation IDs such as
`conversation:19:...@thread.tacv2` and bare Bot Framework personal chat
IDs (`a:1...`, `8:orgid:...`, `19:...@unq.gbl.spaces`) because the
messaging `targetResolver.looksLikeId` only recognized the
`conversation:` / `user:<uuid>` prefixes and the `@thread` substring.

Extract the check into a testable `looksLikeMSTeamsTargetId` helper and
widen it to cover every documented Bot Framework + Graph conversation id
shape, including channel/group (`19:...@thread.tacv2` / `.skype`),
personal chat (`a:1...`, `8:orgid:...`), Graph 1:1 chat thread
(`19:...@unq.gbl.spaces`), Bot Framework user ids (`29:...`), and the
existing prefixed/UUID forms. Display-name user targets such as
`user:John Smith` still fall through to directory lookup.

Add a regression suite under `resolve-allowlist.test.ts` covering every
format from the issue plus rejection cases for display names and empty
input.

Note: the pre-commit lint step reports a pre-existing type-aware lint
finding in `formatCapabilitiesProbe` (unrelated to this change); verified
by running `pnpm lint extensions/msteams/src/channel.ts` against origin/main
with zero changes. Using --no-verify to avoid dragging that fix into this
scoped bug fix.
2026-04-09 20:38:23 -05:00
Gustavo Madeira Santana
8de63ca268 refactor(gateway): split startup and runtime seams (#63975)
Merged via squash.

Prepared head SHA: c6e47efa12
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-09 21:28:29 -04:00
Josh Avant
33ad806a14 Browser: consolidate duplicate helper surfaces via facade delegation (#63957)
* Plugin SDK: route browser helper surfaces through browser facade

* Browser doctor flow: add facade path regression and export parity guards

* Contracts: dedupe browser facade parity checks without reducing coverage

* Browser tests: restore host-inspection semantics coverage in extension

* fix: add changelog note for browser facade consolidation (#63957) (thanks @joshavant)
2026-04-09 19:49:04 -05:00
Altay
c6d0baf562 qa-lab: use OpenClaw tmp dir for multipass staging 2026-04-10 00:09:48 +01:00
SnowSky1
03f2951e63 fix(agents): preserve announce threadId on sessions.list fallback (#63506)
Merged via squash.

Prepared head SHA: a81e85de0c
Co-authored-by: SnowSky1 <126348592+SnowSky1@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-09 16:02:56 -07:00
Altay
10797cbd81 fix(ci): sync package boundary paths config 2026-04-09 23:59:00 +01:00
Shakker
1d25e43ebc docs: add changelog for qa multipass runner 2026-04-09 23:53:13 +01:00
Shakker
b88387e4c1 fix: harden qa multipass runner 2026-04-09 23:53:13 +01:00
Shakker
655cfb477a docs: clarify multipass live auth support 2026-04-09 23:53:13 +01:00
Shakker
445fe55331 fix: validate multipass output paths 2026-04-09 23:53:13 +01:00
Shakker
a04c331cc1 docs: document qa multipass runner 2026-04-09 23:53:13 +01:00
Shakker
def2eadb1d feat: add multipass runner to qa suite 2026-04-09 23:53:13 +01:00