Skip to content

[pull] master from mattermost:master#776

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

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

Conversation

@pull

@pull pull Bot commented Jun 16, 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 : )

pvev and others added 4 commits June 16, 2026 17:09
* MM-68846 - add canonical CEL AST masking walker and model resolver interface

* add canonical masking methods to PAP einterface and update mock

* Migrate app-layer masking to canonical CEL AST walker

* Remove Visual AST masking dead code and obsolete i18n key

* Update simulation masking tests to mock MaskExpressionForCaller

* reject persisted tokens and enforce merge shape match and add corresponding tests

* MM-68900 - abac masking add e2e back

* add missing config values and split the tests

* implement coderabbit feedback

* adjust timeout and disable button logic

* enhance masking logic and tests for access control policies

* refactor masking tests and database setup for improved field deletion handling

* Enhance error handling in TestMergeStoredPolicyExpressions to verify error ID and status code

* Refactor error handling in access control policy methods for clarity

* Refactor masking logic and improve clarity in access control methods

* Allow deny-all 'false' policies by dropping the redundant sentinel check in rejectMaskedTokens; add tests

* Add masking-related error messages and update test descriptions with tags

* Add error handling for uninitialized Policy Administration Point in access control
* phase 8f

* Fix slot-filtering test to actually exercise the slot gate

The previous test used the correct slot with matcher: () => false, so it
only validated matcher behavior. Removing the slot-filter code path would
not have broken it. Cast to a wrong slot with matcher: () => true so the
test fails if slot filtering regresses.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* remove unregisterPostDecorator

The unregister method dispatched REMOVED_PLUGIN_COMPONENT_BY_ID, which was
dropped along with the parallel unregisterChannelDecorator and
unregisterComposerPlaceholderSuffix in the 8d/8e fix passes. Restore is not
warranted: plugin lifecycle already sweeps all registrations on uninstall
and bundle-path-changed reload via REMOVED_WEBAPP_PLUGIN, and the matcher
contract handles dynamic on/off without re-registration. Drop the unregister
method and its tests; move clearLoggedPostDecoratorErrors into register so
the log-once tracker still resets on re-registration. Replace the deleted
tests with a REMOVED_WEBAPP_PLUGIN sweep test mirroring the 8b/8d/8e
pattern.

See /Users/chris/git/pbe/phase-8-unregister-removal-plan.md for cross-phase
rationale.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* phase 8f: gate post_header_badge on timestamp visibility

Slot docstring already promised "immediately after the post timestamp",
but the badge rendered unconditionally — leaving the icon stranded on a
phantom header row of consecutive CENTER posts, visually overlapped by
the next post.

Hoist the existing PostTime visibility predicate into a showTimestamp
boolean and reuse it for the post_header_badge group, so the badge
appears (and disappears) together with the timestamp.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* phase 8f: also gate post_header_badge on narrow-timestamp reflow

The previous gate (timestamp visibility) wasn't enough: for a consecutive
non-compact post (CENTER on hover, or any non-CENTER), the host renders
the timestamp in narrow style, and CSS reflows it out of badges-wrapper
onto the post body's left margin. The badge stayed in badges-wrapper,
producing the same phantom-row orphan above the post.

Add a second clause — when timestamp goes narrow, the badge follows it
out of the header. compactDisplay disables narrow style and keeps the
timestamp in badges-wrapper, so the badge stays.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* collapse registerPostDecorator into a Pluggable

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* Tighten thread membership cleanup on team membership changes

Ensure ThreadMembership rows are cleaned up when a user is removed
from or leaves a team, add a defense-in-depth filter on the thread
retrieval path so memberships referencing channels the user is no
longer a member of are excluded, and add a one-time migration to
clean up stale records on existing deployments.

https://mattermost.atlassian.net/browse/MM-69008

* Centralize per-channel membership removal and tighten tests

Extract the combined channel-member and thread-membership removal into
a shared helper used by both removeUserFromChannel and LeaveTeam, so
future code paths cannot revoke channel access without dropping the
dependent thread state. The channel-leave event is now logged after
the combined removal completes.

Also drop verbose test header comments and rename a test to a
behavior-focused name.

* Backfill channel members in thread storetest setups

The new ChannelMembers predicate on thread read queries filters out
ThreadMembership rows whose user has no ChannelMembers row for the
thread's channel. Several existing storetest setups bypassed the
normal write path and inserted threads/memberships without channel
members. Add the missing channel-member rows so the test data matches
the real-world invariant.

* Retrigger enterprise CI

Pick up enterprise merge e6953d4 (master into
MM-69008-thread-membership-team-leave) in the combined Enterprise
CI/tests lane, which pins the enterprise SHA at mattermost-side
dispatch time.

Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com>

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* phase 8h

* remove unneeded unregistration (feedback from earlier review)

* product-menu row style simplifications; isAvail->isHidden
@pull pull Bot locked and limited conversation to collaborators Jun 16, 2026
@pull pull Bot added the ⤵️ pull label Jun 16, 2026
@pull pull Bot merged commit 8e409c4 into code:master Jun 16, 2026
7 of 9 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