Skip to content

Releases: horde/ActiveSync

3.1.0

Choose a tag to compare

@ralflang ralflang released this 18 Jul 09:26

fix(sync): emit SYNC_MODIFY replies for EAS 16 email modifies
fix(activesync): throttle deferred-import keep-alive tokens
fix(activesync): address streaming review findings
docs(activesync): restructure documentation by audience
feat(activesync): defer up-sync imports and emit WBXML keep-alives when streaming
docs(activesync): note batch-size vector consolidation for Horde 6
feat(activesync): stream Sync responses incrementally
Merge pull request #82 from horde/fix/settings-oof-empty-msgs
fix(activesync): guard empty OOF messages in Settings response
docs(todo): document folder UID map long-term work
docs(activesync): explain crc32 mask in folder UID generation
Merge pull request #81 from horde/fix/deterministic-folder-uids-moveitems-gone
Potential fix for pull request finding
Potential fix for pull request finding
Potential fix for pull request finding
fix(activesync): stabilize folder UIDs after hierarchy changes
Merge pull request #80 from horde/fix/imap-mimepart-null-charset
fix(activesync): guard null charset before strcasecmp in getMimePart()

3.0.2

Choose a tag to compare

@ralflang ralflang released this 08 Jul 20:49

Merge pull request #79 from horde/fix/foldersync-empty-folderlist-guard
fix(activesync): report no folder changes when getFolderList() is false
Merge pull request #78 from horde/fix/imap-getimapob-null-guard
test(activesync): cover null IMAP client ping failure
fix(activesync): preserve IMAP auth exception context
Update _getImapOb() docblock @throws to Horde_Exception_AuthenticationFailure
fix(activesync): guard against null IMAP client in _getImapOb()
fix(activesync): handle invalid appointment timezone blobs in getTimezone()

3.0.1

Choose a tag to compare

@ralflang ralflang released this 04 Jul 06:09

fix(activesync): treat collection lock contention as transient during PING
Merge pull request #74 from horde/security/activesync-hardening
docs(activesync): note ValidateCert validator extraction in H6 todo
fix(activesync): correct ValidateCert OpenSSL result handling
fix(activesync): harden Autodiscover parsing and escape XML responses
fix(activesync): harden HTTP Basic auth header parsing

3.0.0

Choose a tag to compare

@ralflang ralflang released this 01 Jul 11:39

docs: Minor style and wording additions to documentation

3.0.0-RC5

3.0.0-RC5 Pre-release
Pre-release

Choose a tag to compare

@ralflang ralflang released this 01 Jul 11:26

fix(activesync): harden base64 URI decoding for GET requests
ci: add ci-platform block and regenerate workflow from RC6 phar
ci: regenerate workflow from RC5 phar templates
ci: regenerate workflow from RC4 phar templates
ci: regenerate workflow from RC3 phar templates
ci: install horde-components CI pipeline

3.0.0-RC4

3.0.0-RC4 Pre-release
Pre-release

Choose a tag to compare

@ralflang ralflang released this 25 Jun 16:32

fix(test): use PHP 8.3-compatible syntax in SyncTimeBudgetTest
fix(activesync): harden Autodiscover v2 (JSON) response handling
fix(activesync): harden Autodiscover v2 (JSON) response handling
feat(activesync): detect task recurrence-instance master changes
fix(activesync): return scalar conflict status from importMessageChange
feat(activesync): detect task recurrence-instance master changes
Merge pull request #68 from horde/fix/activesync-ping-stategone-sync-add
Merge remote-tracking branch 'origin/FRAMEWORK_6_0' into fix/activesync-ping-stategone-sync-add
docs(activesync): convert TODO.rst to todo.md
feat(activesync): export recurring MeetingRequest from iCal
fix(activesync): recover PING StateGone and fix SYNC_ADD duplicate UID
docs(activesync): close Find/KQL backlog and expand test coverage
docs(activesync): refresh Find KQL documentation
Merge pull request #66 from horde/fix/foldersync-required-loop-guard
Merge pull request #65 from powercycle/fix-deprecations
fix(activesync): address PHP 8 deprecations without state regressions
fix(activesync): guard FOLDERSYNC_REQUIRED infinite retry loop
Merge pull request #64 from horde/fix/incomplete-tasks-filter
fix(activesync): pass FilterType to driver for incomplete tasks
feat(activesync): adaptive Sync response time budget
Potential fix for pull request finding
Potential fix for pull request finding
Potential fix for pull request finding
feat(activesync): adaptive Sync response time budget
fix(activesync): initialize deviceinfo in Provision wipe path
fix(activesync): complete account-only remote wipe per user
fix(activesync): harden account-only wipe state and add unit tests
fix(activesync): complete account-only remote wipe per user
Merge pull request #61 from horde/fix/device-isset-version
Potential fix for pull request finding
fix(activesync): make device version visible to isset()
Merge pull request #60 from horde/fix/meeting-cancellation-eas-export
Potential fix for pull request finding
Potential fix for pull request finding
Potential fix for pull request finding
fix(activesync): export METHOD=CANCEL iMIP as Meeting.Canceled
Merge pull request #59 from horde/feat/meetingrequest-disallow-new-time-proposal
Potential fix for pull request finding
Potential fix for pull request finding
feat(activesync): export DisallowNewTimeProposal in mail MeetingRequest
Merge pull request #58 from horde/feat/legacy-collection-commands
Potential fix for pull request finding
Potential fix for pull request finding
feat(activesync): implement legacy collection folder commands
Merge pull request #57 from horde/fix/sync-missing-remove-server-entryid
Potential fix for pull request finding
docs(collections): document FolderGone throw in addCollection
fix(activesync): harden Sync error handling and EAS 16 MODIFY replies
fix(activesync): use ServerEntryId in Sync missing Remove replies
Merge pull request #56 from horde/feat/polish_EAS16.1
Potential fix for pull request finding
fix(activesync): emit empty proposed-time tags to clear EAS 16.1 proposals
refactor(activesync): replace broken TestServer factory with ActiveSyncServerTrait
Update Collections.php
feat(activesync): implement EAS 16.1 protocol support
feat(activesync): complete EAS 16.1 baseline and refresh docs
fix/cleanup
feat(activesync): expand EAS Find KQL parser for mailbox search
Merge pull request #51 from horde/feat/finish_EAS16.0
fix: add isset() guard for EAS 16.0 forbidden field stripping
fix: use !== false check and clear _exists when stripping EAS 16.0 forbidden fields
test(appointment): add regression test for setRecurrence EAS 16.0 firstdayofweek
feat(activesync): harden EAS 16.0 appointments
Revise ActiveSync TODO with current tasks and priorities
Revise README for improved clarity and structure
fix(activesync): use correct MAX_WINDOW_SIZE constant in SyncCache

3.0.0-RC3

3.0.0-RC3 Pre-release
Pre-release

Choose a tag to compare

@ralflang ralflang released this 12 Jun 13:15

Merge pull request #50 from horde/fix/find_meetinginvitation
feat(activesync): add EAS 16 Find and improve meeting invitation RSVP support
test: address review feedback on PSR-4 layout
chore: metadata
test: Modernize test suite to PSR-4 layout and remove dependency on Horde_Test
refactor(activesync): use Horde\Util\HordeString PSR-4
fix(activesync): emit correct FolderType on ItemOperations fetch
fix(activesync): parse calendar InstanceId as Horde_Date on SYNC_MODIFY
Merge pull request #47 from horde/fix/find_result_itemOperation
Merge pull request #46 from horde/fix/FIND_skip-nonexistent_messages
fix(activesync): return object-not-found for deleted ItemOperations fetches
fix(activesync): skip missing messages in Find results

3.0.0-RC2

3.0.0-RC2 Pre-release
Pre-release

Choose a tag to compare

@ralflang ralflang released this 10 Jun 19:32

perf(activesync): abort Find when client disconnects
feat(activesync): add EAS 16.0 Find command support

3.0.0-RC1

3.0.0-RC1 Pre-release
Pre-release

Choose a tag to compare

@ralflang ralflang released this 09 Jun 20:25

Merge pull request #41 from horde/fix/ActiveSync_loops
fix(activesync): consolidate state constants and document initial-sync ACK
fix(ActiveSync): force KEYMISMATCH when loading corrupt sync_data
Fix: Filename typo
fix(ActiveSync): harden state persist against races and sync_data corruption
docs(ActiveSync): clarify row lock behavior and sendNextChange contract
fix(activesync): serialize parallel state access with SQL and Mongo row locks
fix(activesync): repair initial sync, corrupt state, and nested MIME export
fix(activesync): reject corrupt collection sync_data on load and save
fix(activesync): separate PING watermark from SYNC modseq to stop iOS mail loops
refactor(ActiveSync): use HordeString instead of Horde_String in METHOD handling
Update MeetingRequest.php
Simplify method retrieval in fromvEvent
Refactor METHOD handling in EasMessageBuilder
fix(Iterator): use void return type for next() instead of ReturnTypeWillChange
fix(Device): restore isset guard for OS property access
Fix php and phpunit deprecations

3.0.0-beta3

3.0.0-beta3 Pre-release
Pre-release

Choose a tag to compare

@ralflang ralflang released this 29 May 07:43

style: Prefer ?? over no-op foo ? foo : bar
Enhance attendee parameter validation
Improve date handling in getDate method
Update Wbxml.php
Refactor attribute assignment logic in Base.php
Update Sync.php
Update message class handling in Importer.php
Change folder deletion origin to PIM
Remove duplicate endTag call
Merge pull request #34 from horde/fix/Modern_iOS_Notes_Multiplexing
Update DeviceTest.php
Update iOS note multiflex behaviour in Device.php
Refactor ensureUtf8 to handle exceptions and improve logic
Enhance PING request collection handling
Refactor collection sync and pingable logic
Handle orphan collections during PING in ActiveSync
Add version check for hierarchy requirement
Add hierarchy check before polling for changes
Request FolderSync if no hierarchy sync key found
Merge pull request #31 from horde/fix/duplicate_syncKey
Add TODO for switching to DI PSR-3 Logger
Refactor sync state saving logic
refactor: Use PSR-4 version of horde/compress
chore: Update workflow dependency
Fix typo in Exception.php for AIRSYNCBASE_LOCATION