Skip to content

[pull] master from mattermost:master - #957

Merged
pull[bot] merged 4 commits into
code:masterfrom
mattermost:master
Sep 2, 2026
Merged

[pull] master from mattermost:master#957
pull[bot] merged 4 commits into
code:masterfrom
mattermost:master

Conversation

@pull

@pull pull Bot commented Sep 2, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

bgardner8008 and others added 4 commits September 2, 2026 10:32
* MM-70247: bump msgpack fork to cap byte-string allocation paths

* MM-70247: bump golang.org/x/image to v0.43.0 to clear Snyk findings

* MM-70247: remove stale go.sum entries after merge
* fix ABAC editor null-safety and ResizeObserver noise in local/dev mode.

Null users from plugin RPC and incomplete PropertyField names no longer crash the test results modal or CEL editor; ignore Chromium ResizeObserver loop messages.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Enforce self-inclusion on plugin-owned ABAC policy saves.

Non-system-admins must match the expression they save via SavePluginAccessControlPolicy; system admins retain the same carve-out as channel/team policy saves.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Share ABAC write guards across channel and plugin save paths.

Extract enforceAccessControlPolicyWriteGuards so plugin saves get value-holding
validation when AttributeValueMasking is on (without store merge), keep
non-sysadmin self-inclusion always on, and normalize empty plugin query users.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Finish ABAC test extraction after write-guard share.

Drop duplicated self-inclusion cases from the ownership suite, remove the weaker users-slice test subsumed by gob coverage, and align the team self-inclusion comment with always-on helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Stub QueryUsersForExpression in channel/team-admin ABAC save tests.

Always-on self-inclusion in CreateOrUpdateAccessControlPolicy calls
QueryUsersForExpression for non-sysadmins; existing API tests that
save policies as channel or team admins panicked on the unstubbed mock.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* Remove duplicate team self-inclusion check on policy save.

CreateOrUpdateAccessControlPolicy already runs always-on self-inclusion
via enforceAccessControlPolicyWriteGuards; the extra
ValidateTeamAdminSelfInclusion loop double-queried expressions. HTTP
still uses the team-specific check in the api4 handler.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* Type CEL attribute names honestly and cover team self-inclusion through the shared write guard.

Plugin proxies can omit attribute names, so the editor type now allows null/undefined instead of a string cast. The new team save test hits checkSelfInclusion with a real expression so QueryUsersForExpression is asserted once.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Satisfy eslint lines-around-comment on CELUserAttribute.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: mattermost-code <matty-code@mattermost.com>
prep-deps wrote node_modules + the Cypress binary to a shared Actions
cache keyed on the cypress lockfile, and the 40 workers read it back
within the same run.

The repo is pinned at the 10 GB Actions cache ceiling (100 entries,
9.99 GB), so LRU eviction runs continuously. Every distinct cypress
lockfile a run happens to build costs a ~275 MB entry in that budget —
four are live today, 1.10 GB total — and they evict entries other jobs
depend on: the webapp node_modules cache (3.7 GB), the Playwright deps
cache, and the E2E npm registry cache.

Build the deps once in prep-deps and upload them as a run-scoped
artifact instead. The handoff is unchanged in shape — one producer, N
consumers, within a run — but it costs the shared cache nothing, and it
drops the fail-on-cache-miss cliff the workers previously depended on.

The artifact name is scoped by edition: e2e-tests-ci.yml invokes this
template twice per workflow run (default and fips) and artifact names
are run-scoped, so the two invocations would otherwise collide.

prep-deps loses its cache-hit shortcut and now always installs, so it
restores the master-warmed ~/.npm registry cache read-only to keep that
install short, and its timeout goes 10 -> 15 minutes.

Playwright still uses the cache handoff; it is a larger payload with a
churnier key and follows separately.
* webapp: let Tag forward a ref

WithTooltip anchors its popover by cloning its child with a ref. Tag is a
function component, so the ref was dropped and React warned about it, leaving
the marketplace label tooltips without a positioning reference.

Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
(cherry picked from commit 3a34196)

* webapp: stop leaking component props onto DOM elements

isReadonly was hardcoded to false, never read, and fell through a prop spread
onto the channel header menu's <li>. SearchChannelSuggestion was connected with
a null mapDispatchToProps, so react-redux injected dispatch, which the
suggestion container then spread onto its <li>.

Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
(cherry picked from commit 959ba3b)

* webapp: stop connect's injected dispatch reaching suggestion list items

Suggestions are connected components that forward their rest props into
SuggestionContainer, which spreads them onto its <li>. A connect() without a
mapDispatchToProps injects dispatch, so React saw it as an invalid DOM
attribute. Drop it in the container alongside item, which covers every
suggestion rather than one call site.

Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
(cherry picked from commit 41d09df)

* webapp: key the add-workspace menu on a remote cluster's full identity

RemoteClusters is keyed on (RemoteId, Name), so the same remote_id can appear
more than once in the dropdown and React reported duplicate keys.

Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
(cherry picked from commit a4025d5)

* fixup! webapp: let Tag forward a ref

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Jesse Hallam <lieut-data@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Sep 2, 2026
@pull pull Bot added the ⤵️ pull label Sep 2, 2026
@pull
pull Bot merged commit f6f2719 into code:master Sep 2, 2026
2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants