- Let API clients only deal with MessageIds
- Simplify resolving message IDs by returning an id triple
- Remove unused dependencies
- Added method to preview Markdown
- Parse message replies XEP-0461
- Add method to send message to MUC that returns the echoed message
- Log panics to a separate method in JSLogger
- Add avatar to MessageSender
- Ignore MUC owners/admins/members without a node in their JID
- Load avatar images in non-anonymous rooms
- Replace linebreaks with
in HTML representation of non-Markdown message - Keep room settings for MUC rooms too in case loading fails after reconnect
- Under certain circumstances the unread/mention count of a Direct Message was reset after reconnecting
- Expose avatar on AccountInfo and Contact
- Add avatar to Contact and AccountInfo
- Attachments of sent messages were not stored (and thus not displayed)
- Load vCard4 properly from PubSub
- Send Markdown content via XEP-0481 and convert body text to XEP-0393: Message Styling
- Prevent panic when reconnecting rooms after disconnect/reconnect cycle
- Use pretty nicknames in MUCs
- Include optional full name in Contact and UserPresenceInfo
- Publish nickname explicitly when saving profile
- Add id to Avatar
- Use proper key for AvatarRecord
- Refactor user info, nickname and avatar handling
- Add method to load vcard-temp
- Prevent roster from being loaded twice
- Include nickname in MUC presence
- Distinguish between presence and vCard name for participants
- Add client and caps on Participant
- Introduce Avatar struct to support vCard and PEP avatars
- Inline code from
console_error_panic_hook
crate to log panics via thetracing
crate
- Add vcard-temp parser
- Introduce invisible availability
- Sent messages in MUC rooms would be count as unread
- Dispatch disconnect events immediately
- Do not try to access account after logging out
- Round message timestamps to second precision
- Save received message for newly created rooms
- Reset state, connect & catchup rooms + send MessagesNeedReload event after reconnect
- Do not count sent messages as unread in sidebar
- Provide method to set last read message
- Ping MUC rooms regularly and reconnect if needed (XEP-0410)
- Segregate data by account in repositories
- Channels were not loaded in the web version due to an exception during the connection process
- Defer deletion of used PreKeys until after catch-up
- Await unused future
- Save MessageId instead of StanzaId for last unread message to allow marking sent messages as read
- Do not show invalid unread count while room is still pending/connecting
- Determine server time offset when connecting to improve accuracy of local timestamps
- Immediately cancel pending futures upon receiving a Disconnected event
- Defer processing of offline messages until after complete connection
- Improve unread handling and synchronize between clients
- Add MessageArchiveDomainService to catch up on conversations
- Support full range of MAM queries
- Record timestamp when connection was established
- Determine supported MAM version
- Add local room settings
- Include table name in generated index name
- Add method to get last received message
- Add method to fold rows
- Delete only messages that belong to a given account
- Add delete_all_in_index method
- Segregate messages in cache by account and room id
- Serialize RoomId identically when used as key or property
- Implement KeyType for every &T: KeyType
- Support multi-column indexes
- Support OMEMO in MUC rooms
- Improve event dispatching for sent/received messages
- Allow empty message bodies for attachment-only messages
- Include mentions in message corrections
- Do not send events for changes to our own compose state in MUC rooms
- Encrypt message updates
- Decrypt messages in MUC rooms
- Prevent continually trying to load a user’s vCard if none is available
- Pass room_id to SidebarDomainService to prevent creating DM sidebar items when receiving a message in a non-anonymous room
- Sort imports
- Distinguish between NoDevices and NoTrustedDevices errors
- Try to repair session when decryption fails
- Try to unpublish broken devices only once
- Unpublish device if session cannot be started
- Complete session automatically after receiving prekey message
- Mark sessions as active/inactive when the corresponding devices disappear/reappear
- Start OMEMO sessions for own devices lazily
- Remove UserDeviceKey::min & max which would lead to incorrect queries
- Throw EncryptionError when recipient has no OMEMO devices
- Start OMEMO session on demand
- Introduce EncryptionError and throw when recipient has no OMEMO devices
- Re-publish own device list if current device is not included in PubSub message
- Handle empty OMEMO messages
- Ignore failures when querying server components on startup
- Add interface and support for custom JS logger
- Trim vCard values which would lead to empty user names
- Resolve reaction senders’ names
- Include local timezone in entity time request (#71)
- Cache device list, include trust and fingerprint in DeviceDTO
- Clean OMEMO related data when clearing cache
- Support deleting OMEMO devices
- Support OMEMO in 1:1 conversations (#70)
- Support numeric keys in get_all methods
- Immediately insert participant in pending direct message rooms so that it can be accessed in API consumers
- Prevent MUC rooms from sending message history
- Parse private MUC messages and mark them as transient
- Prevent dangling futures when client is disconnected
- Update sent reactions in a MUC room
- Allow providing a media type when requesting an UploadSlot
- Interpret m4a extension as audio/mp4
- Support mentions
- Target messages for chat markers via StanzaId in MUC rooms (#60)
- Treat MUC messages sent by us correctly as “sent message”
- Improve carbon handling
- Allow message payloads to target messages by their stanza id (#60)
- Remove assertion that leads to crash when receiving a cached/delayed message on login
- Do not consume MAM messages in future to join room (#55)
- Increase unread count in channels (#49)
- Update unread count in sidebar (#49)
- Reduce newer cached messages into older messages loaded from server (#59)
- Fill MessageResultSet to a minimum (or more) of guaranteed messages (#58)
- Support loading older messages from MAM (#58)
- Rejoining an already joined group would not bring it back into the sidebar (#56)
- Regression where room topic was not available anymore introduced in #52
- Regression in merging/lookup of participants introduced in #52 (#54)
- Prevent stanzas being handled out of order with the native connector
- Show current user in participants list when affiliation is less than member (#53)
- Thumbnails set via Attachment::video_attachment were discarded
- Support XEP-0385 attachments and thumbnails (#24)
- Do not dispatch event when relaying a message
- Dispatch event again when sending a message (#24)
- Add some documentation to wasm bindings (#24)
- Support sending/receiving messages with attachments (#24)
- Add functionality to request upload slot (#24)
- Parse HTTP upload endpoint into server features (#24)
- Improve error handling (prose-app-web#38)
- Introduce MessageMetadata with isRead flag (#48)
- Enable missing feature
- Throttle and coalesce events (prose-app-web#37)
- Add jid to PresenceSubRequest (#45)
- Add some more documentation for new methods (#45)
- Add some documentation for new methods (#45)
- Add contact management methods (#45)
- Add method to remove contact from roster (#45)
- Do not throw error when trying to join the same room twice (#46)
- Return error from connect explaining what went wrong (prose-app-web#16)
- Add method to find public channel by name (#43)
- Send messagesUpdated event instead of messagesAppended if message already existed ((prose-app-web#27))
- Parse sent message ‘from’ into a ParticipantId::User (prose-app-web#27)
- Use ParticipantId in Message, MessageSender and Reaction (prose-app-web#27)
- Embed real jid in MessageSender for received messages (prose-app-web#27)
- Fallback to formatted JID instead of “” for MUC participants
- Add missing callbacks to delegate interface
- Add AccountInfo and AccountInfoChanged event (prose-app-web#18)
- Ensure that logging is only initialized once
- Prune hidden-from-sidebar bookmarks when the corresponding room generates a permanent error
- Filter hidden sidebar items
- Connect to rooms with global/restored availability (#40)
- Send ParticipantsChanged event when occupant availability changes (#40)
- Send presence to all connected rooms (#40)
- When connecting, do not insert placeholders for rooms that are not in the sidebar
- Allow logging to be configured
- Replace hard-coded date with timestamp (#41)
- When destroying a room remove it from the sidebar and delete its bookmark
- Mark room as disconnected if an error occurred (prose-app-web#28)
- Add temporary workaround for #39
- Improve user experience when populating sidebar initially
- Limit the length of a MUC nickname to 20 chars
- Ignore errors when joining a DM chat
- Return roster even if we’re unable to load details about the contacts
- Log version on startup
- rollback release badge, since there are no releases there
- add github release badge
- Set has_draft in SidebarItem
- Keep sidebar items in sync with remote changes
- Do not send unavailable presence when removing DM from sidebar
- Add contact to sidebar after receiving a message
- Support renaming channels
- Add contacts to sidebar when receiving a message
- Implement sidebar logic
- specify when a xep is only partially-supported in the doap file
- Use BareJid again in MessageDTO
- add npm publish provenance
- Add name to various objects return from Room
- Return ComposingUser instead of BareJid from load_composing_users method
- Treat Forbidden errors as ItemNotFound
- Look up real jids when loading messages from a muc room
- Handle chat states properly in direct message and muc rooms
- Only allow DateTime as DB keys
- Add repository and entity trait + macro
- Support DateTime properly as store key, support JID types
- Add store abstraction over IndexedDB and SQLite
- Add MUC module (XEP-0045)
- Support legacy bookmarks (XEP-0048)
- Do not call transformer when future failed
- Add bookmark module (XEP-0402)
- broken caps hash calculation
- do not announce xml:lang in caps
- make capabilities debuggable
- tests
- Keep track of user presences and resolve BareJids to FullJids internally
- add all caps disco info
- add npm badge
- Send empty
before
element if neither before nor after are set - roster favorite group not being picked up due to lowercased key
- bug where other group would always get picked up since contacts had no group set
- Deal with missing message IDs
- prose-sdk-js cargo.toml output to package.json
- Send caps when availability is changed
- Allow sending caps with presence
- sync avatar cache sizes/quality w/ web app saving parameters
- normalize prose website url (caps node)
- Response to last activity request
- Respond properly to disco query
- Allow configuring software version via ProseClientConfig
- Support XEP-0092: Software Version
- Handle ping requests
- Insert current user as contact into cache
- Assign each contact to one of a set of predefined groups
- Fallback to name of roster item when no name is available in vCard
- speed up build workflow
- naming
- add build & release action
- add release to npm
- clear Rust incompatible scope in wasm-pack package name
- Add readme
- Do not access code property of a DomException which might not contain a numeric value and throw
- Fix connection config
- Add config object for client
- Make sure that events are sent on connect and disconnect
- Support setting availability
- Handle presence update properly
- Support user_activity in SQLiteCache
- Race condition where “now” could be less than the timestamp of a pending future since it was measured before aquiring the lock
- Introduce UserMetadata
- Support loading last user activity
- Support loading entity time and responding to entity time requests
- Handle errors thrown by the JS connection
- Remove tel: from phone uris
- Send ping and timeout events from StropheJS connection
- Send ping again
- Add method to disconnect and delete cached data in wasm binding
- Support first_name, last_name & role in vCard
- Save Wasm avatar and profile
- Support user activity
- Improve TS type-safety
- Add toggleReactionToMessage method to wasm binding
- Add “store” element to reaction message
- Allow caching the same message twice
- Handle all messages
- Ignore presence stanzas without type
- Add missing functionality in IndexedDBDataCache (mostly)
- Save draft
- IndexedDB cache passes two more tests
- Set up wasm-pack tests
- Adapt message to fit into the web app’s shape
- Accidentally consuming params that lead to usage of moved values later on
- Use strongly typed Jid(s) in Wasm binding
- Optimize wasm build
- Store and fetch contacts from IndexedDB
- Send disco info response again
- Call connection_handler again
- Handle missing vCard and avatar metadata gracefully
- Improve parsing of XMPP errors
- Prevent failure by converting image to rgb8 before saving
- Make avatar metadata dimensions optional
- FFI conversion of URLs
- Reorder initial sequence so that caps don’t override availability
- Allow specifying availability and status when connecting
- Allow deleting current user profile
- Support sending presence and persisting it in new AccountSettings
- Add CachePolicy so that clients can load data from cache without hitting the server
- Show contacts as unavailable if we didn’t receive a presence yet
- Allow saving a draft message per conversation
- Add support for ChatStates
- Add mandatory id to iq stanza
- Add support for setting and loading avatar images
- Load last page if beforeId is not set
- Handle empty result sets
- Ignore possibly forged carbon messages (CVE-2017-5589)
- Support message carbons
- Add messageId to reactions
- Support retracting messages
- Support sending message reactions
- Use camel-case for callback interface which would otherwise not compile
- Add MAM support
- Deserialize ‘delay’ element
- Load and set MAM archiving preferences
- Add methods to modify roster and presence subscriptions
- Introduce XMPP extensions & testability (#6)
- Add support for sending presence, chat state and updating messages
- Provide JID parsing methods, save JID in client and throw error on connect instead of crashing
- Parse message corrections
- Forward received presence stanzas to observer
- Add support for chat states
- Add method to send raw XML payloads
- Support roster items without a group
- Extend message attributes
- Prepare presence support
- Send connection events to observer (#5)
- rename workflow step
- new badge url format
- add readme license to copyright
- badge paths
- normalize README
- mis-attributed comments
- Request and receive roster
- First version that can send and receive messages
- Add basic FFI interface using UniFFI
- declare lifetimes when passing client reference around