* Add editing summary for a checklist
* fix spacing
* fix duplication issue due to rerender off-screen
* remove worktree from cursor as I'm not using that
* add tests
* address PR review feedback
- add double-tap prevention to save button
- rename goToRenamePlaybookRun to goToEditPlaybookRun for consistency
- add debug log when local DB update fails after successful API call
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update playbook run rename spacing
* [MM-66995] Edit summary gatekeep (#9490)
* gatekeeping summary edit
* Fix playbook run summary edit gating
* more tests
* Use options object for playbook run edit
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat: hide Playbooks button when no running playbook runs in team
The PlaybooksButton on the home screen channel list now only appears
when there is at least one in-progress playbook run in the current team,
in addition to requiring the playbooks feature to be enabled.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* improve team query
* test: add unit tests for observeHasRunningPlaybookRunsInTeam query
Add tests to verify the new query correctly:
- Returns true when running playbook runs exist (end_at = 0)
- Returns false when all runs are finished (end_at > 0)
- Returns false when no runs exist
- Filters by team_id correctly
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix: skip flaky playIncomingCallsRinging test in calls state
Skip the playIncomingCallsRinging test that has been causing
intermittent failures. Added TODO comment to track that the
root cause still needs to be identified.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* add link to ticket that should fix the test
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* delete button
* prevent deletion if we can't communicate with server
add tests
* I18n
* move to Pressable
* address review comments
* Use dedicated i18n IDs for delete task dialog
Replace reused generic translation IDs (mobile.post.cancel, post_info.del)
with playbooks-specific IDs for better maintainability and to avoid
unintended changes if source messages are modified.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* migrate naming
* temp
* temp 2
* fixed button when editing
* some bugs solved
* fix bugs
* add localization
* some review requests
* review comments
* upgrade db to 16
* Refactor property fields handling to batch database operations for improved performance
* Enhance error handling in PropertyFieldsListComponent by logging fetch errors and improving type definitions for property fields
* added tests for value change
* fix missalignment
* fix indent & typing
* fix test version
* missing version
* restore playbook run renaming
* move rename function to modal
* fix rebase
* prevent saving a non-trimmed value
* fix style
* remove tests that are no longer needed
* refactor: implement custom ExpoImage wrapper for cache control
Add ExpoImage component with automatic cacheKey/cachePath management and replace all expo-image imports across the app
* refactor(ios): convert Gekidou to CocoaPods
Migrate from Swift Package Manager to CocoaPods, add Keychain write operations, refactor notification handler to remove react-native-notifications headers, and upgrade Swift to 5.0
* npm audit
* update fastlane
* feat(ci): integrate Intune MAM for enterprise builds with strict OSS protection
Add Intune submodule, CI actions, Fastlane configuration, developer scripts, pre-commit hooks, and validation workflows to enable internal MAM builds while protecting OSS repository
* fix tests by mocking @mattermost/intune
* feat: implement Intune MAM integration with comprehensive security enforcement
Add IntuneManager, refactor SecurityManager/SessionManager for MAM policies, implement native OIDC auth flow, add biometric enforcement, conditional launch blocking, and file protection controls
* fix alerts when no server database is present
* Unify cache strategy
* fix emit config changed after it was stored in the db
* Handle Mid-Session Enrollment Detection
* fix ADALLogOverrideDisabled missing in Fastfile
* fix flow for initial enrollment
* fix and add unit tests
* enable Intune configuration for PR and beta builds, CLIENT_ID should be changed before actual release
* Update intune submodule with addressed feedback
* fix validate-intune-clean workflow
* feat(intune): add comprehensive error handling and SAML+Entra support
Add production-ready error handling for native Entra authentication with
user-friendly i18n messages, comprehensive test coverage, and support for
Entra login when server requires SAML.
* update i18n
* update intune submodule
* update build-pr token
* fix race condition between server auth and intune enrollment
* fix CI workflow to build with intune
* use deploy key for intune submodule
* set the config directly in the submodule .git
* debug injection
* try setting GIT_SSH_COMMAND
* remove action debug
* fix server url input
* match pod cache with intune hash
* Fastfile and envs
* have workflows check for intune/.git
* have ci cache intune frameworks as well
* update Fastlane to set no-cache to artifacts uploaded
* fix s3 upload
* fix pblist template
* Attempt to remove the cache control for PR uploads to s3
* use hash from commit for S3 path
* Implement crash-resilient selective wipe with automatic retry and add removeInternetPassword to Gekidou Keychain
* Fix surface errors from intune login
* fix postinstall scripts
* use cacheKey for draft md images
* remove unnecessary double await during test
* Have isMinimumLicenseTier accept valid license sku tier as target
* Add missing Auth error messages
* remove the last period for intune errors in i18n
* do not call unenroll with wipe on manual logout
* Fix tests and Intune error messages
* do not filter any SSO type regardless of which is used for Intune
* fix 412 to not retry
* fix tests, app logs sharing and share_extension avatar cache
* apply setScreenCapturePolicy on license change
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* re-apply screen capture on enrollment
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* use userData from intunr login and prevent getMe
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* Check for Biometrics and Jailbreak as we used to
---------
Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
* Agents streaming
* Fix bug and lint
* Add reasoning summaries to mobile agents
* Add tool call approval UI for mobile agents
* Add citations and annotations support for mobile agents
Implements Phase 4 from the agents mobile plan:
- WebSocket event handling for annotations control signal
- CitationsList component displaying sources below agent responses
- Collapsible sources section with source count
- Each citation shows title, domain, and opens URL on tap
- Citations persisted in post.props.annotations
- Touch-optimized UI with 44pt minimum tap targets
* Add stop and regenerate controls for mobile agents
* Add tests
* Fix tool approval buttons not updating after accept/reject
- Remove optimistic WebSocket event approach that didn't work
- Clear component streaming state on ENDED event to force switch to persisted data
- Remove delays in streaming store cleanup (500ms and 100ms)
- POST_EDITED event now properly updates UI for both accept and reject
- Remove debug console.log statements
- Fix ESLint issues (unused vars, nested callbacks, nested ternary)
* Refactor agents code: remove unused client mixin, fix bugs, and simplify logic
* Fixes
* Add CLAUDE.md
* Review feedback.
* Review feedback inline functions
* Learnings
* Address review feedback: StyleSheet.create, parent mount checks, utils
* Move to observables
* Last style fix
* Style tweaks
* fix no response + handle error
* address comment review
* add a screen to allow user to name the checklist
* handle local update errors
* can save as a memoized item
* change touchableopacity into a button
* fix typo
* memoize canSave
* [MM-66420] Add missing tests for playbooks
* i18n-extract
* Update message keys to more accurate ones
* Update status update post to use a more standard error handling and fix linter bugs
* Add post-merge tests and address feedback
* Fix failing test
* Address feedback
* add new value to conditionAction
* update progress management regarding conditions
* hide items
* add test to filtering
* icon added for condition reason
* add conditional reason to bottom sheet
* improve UI
* i18n
* this might need to be reverted later. Fix for condition changes not triggering updates
* cosmetic changes
* improve branch icon positioning
* pressing on checklist item should display bottom sheet
* review improvements
* Add select user screen to select owner and task assignee
* Fix i18n
* Add tests
* Address feedback
* Fix test
* Address UX feedback
* Fix test
* Put the no assignee button inline with the search
* Playbook run status update post
* Show Playbooks button in Channel Info screen only if playbooks is enabled
* Handle Playbook links
* Fetch playbook if needed
* fix playbooks migration
* fix deeplinks using parsedUrl
* update last time playbooks where fetched if no errors
* show participants for run status update post
* fix tests
* remove console.log in test
* feedback review
* wrap participants footer
* add fastlane FASTLANE_XCODEBUILD_SETTINGS_RETRIES env vars
* Fix order of finished runs and add a show more button
* Add missing text
* Add prevent double tap
* Fix show more button showing when it shouldn't
* fix tests
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Address plugin changes around incremental websocket
* ensure change_fields is set and is an object before processing
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>