Skip to content

Latest commit

 

History

History
1190 lines (834 loc) · 90.7 KB

CHANGELOG.md

File metadata and controls

1190 lines (834 loc) · 90.7 KB

Change Log

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

3.1.1 (2017-11-14)

Bug Fixes

  • shared kegs re-encryption is safe and secure now (965d1ec)

3.1.0 (2017-11-14)

Features

  • prombservable variation to expect multiple values (2a776a6)

3.0.10 (2017-11-13)

Bug Fixes

  • hooks [skip ci] (b4af55e)
  • room invite behaviour to match new design (#68) (6a8f8fa)

3.0.9 (2017-11-13)

3.0.8 (2017-11-10)

Bug Fixes

3.0.7 (2017-11-09)

3.0.6 (2017-11-09)

3.0.5 (2017-11-09)

3.0.4 (2017-11-09)

3.0.3 (2017-11-09)

3.0.2 (2017-11-09)

3.0.1 (2017-11-07)

Bug Fixes

  • clear Download Failed notice on new download attempt (#58) (0dafa48)

3.0.0 (2017-11-07)

Features

  • rename oversized to match file property. add oversizeCutoff (#57) (3eb41d7)

BREAKING CHANGES

  • Message#externalImages array objects property renamed oversized => isOverInlineSizeLimit

2.14.7 (2017-11-06)

Bug Fixes

  • inline image file limit because it doesnt format well (#56) (5f9d9fe)

2.14.6 (2017-11-04)

Bug Fixes

  • copy (68009d9)
  • tiny db records for download resume were never deleted in case of keg removal (c29d9f4)

2.14.5 (2017-11-04)

Bug Fixes

  • NodeFileStream#getStat was throwing instead of rejecting promise (28f9ce5)

2.14.4 (2017-11-04)

2.14.3 (2017-11-04)

Bug Fixes

  • chat paging no longer breaks if entire page of deleted/empty messages was received (3387b23)

2.14.2 (2017-11-03)

2.14.1 (2017-11-02)

Bug Fixes

  • beforeShareCallback was not being passed to uploadAndShare (#55) (7c8453a)

2.14.0 (2017-11-02)

Bug Fixes

  • some tweaks in marking unread items logic (04ccf5e)

Features

  • beforeShareCallback in FileStore#shareAndUpload allows you to add last modifications to keg before sharing (26c1754)

2.13.4 (2017-11-01)

2.13.3 (2017-11-01)

2.13.2 (2017-11-01)

2.13.1 (2017-10-31)

2.13.0 (2017-10-31)

Bug Fixes

  • chain callback to wait for result (ca8f1fa)
  • cleanup (ca4c9ae)
  • delete room test (7dee8b5)
  • failed messages displaced if managed to get keg id (41447d1)
  • file not appearing in sidebar in new DMs (7775b3d)
  • find email contact (cabad11)
  • make first test pass (d93536c)
  • make sure data from scenario is not null before processing it (38b4769)
  • merge scenarios for Send/receive read receipt (59a379a)
  • merge send/receive scenarios (66a0a65)
  • move test from util to keys (898954a)
  • move test related packages to devDependencies (bc25beb)
  • potential duplication of contacts now is prevented in sdk (c7e39ea)
  • profile tests (f450da2)
  • receiver can't see deleted files (0414bd4)
  • redo contact filter story (189b0d1)
  • remove filters tests (615df7e)
  • remove mailinator package from dependencies b/c causing errors in returned response (79e58a2)
  • remove unused feature (965088f)
  • resolve error response after sharing file (1e1e898)
  • run primary address test on separate instance (d5f83f1)
  • storage stories (f37f23a)
  • storage test path (9ff28d6)
  • stringify passed data; unify support code (2971832)
  • undo reset code (7131005)
  • update docs (2a1f1af)
  • update story (d1d6b76)
  • wait on contact being loaded to check if it's in the invites or not (d877295)

Features

  • 2fa (5518773)
  • add a few test scenarios (8e69b86)
  • add create account with username helper (94a8bb0)
  • add icebear source in e2e tests (b5ac74e)
  • add input data as process env to scenario runner (e188e5c)
  • add sign in test implementation (24d9c33)
  • add tests for ghost chats (3c1b172)
  • added more happy path tests and few edge cases (b1ca9f1)
  • avatar tests (7bb888c)
  • clear require cache (50c3071)
  • Create favorite contact from invited user (f1e0651)
  • cucumber child process helper (4c0c982)
  • delete account feature (849965a)
  • delete file test implementation (9b49754)
  • delete room (8d2a582)
  • end to end test project with sample test and docs (cba2a03)
  • End to end tests for Icebear (#51) (6595b71)
  • favorite dm (e88b3d7)
  • file icon types (#52) (d2d152b)
  • made receipts observable (68d2596)
  • make 'download file from storage' test pass (07ccb27)
  • new test case for deleting file after sharing it (06534ee)
  • promservable and string unit tests (2e182d3)
  • receive DM (fe77e7c)
  • remove favorite (d6e377e)
  • Remove favorite contact before email confirmation (8df5305)
  • run scenario on separate thread and pass back data to calling feature (0b4d144)
  • run scenarios by name (675bb91)
  • search folders for features (5a80478)
  • send chat invite, log in as receiver and view invite (58c7cf9)
  • Send invite email test (4a2a924)
  • separate cucumber scripts (70263ec)
  • share a file and login as receiver to view it (9c2b39d)
  • task pacer helper (917157f)
  • test for changing primary address (0e5d3e4)
  • test implementation for sign out, add/remove email (de5e2c5)
  • test that admin can change room name and purpose (c3bbb4f)
  • test that i can make other user admin / not admin in room i created (e42ae2b)
  • test that i can remove participant from room i created (c62e497)
  • tests for file helper (35fe207)
  • update access scenarios (1f7eb65)
  • update test cases for avatar and user email (f4da42c)
  • upload file test (da429ee)
  • use another id to invite for every room test (7fa15a3)
  • wait for chat to be added to chat list, verify that message is received (3a0c86c)
  • wait on auth and profile loaded in login step (54afce9)

Performance Improvements

  • manual updates of chat invites are not needed anymore (04144aa)
  • pace socket requests (17ed012)

2.12.0 (2017-10-23)

Bug Fixes

  • make getUrls always return an array (3a9f944)
  • more reliable message re-processing when external content settings change (e5cb4a4)
  • one more pref for external content (db6c34e)
  • prevent endless file caching loop in case of error (243b684)
  • typings: correct typings for message keg (#50) (233e565)

Features

  • messages: support rich text field in message kegs (#49) (66bd370)
  • serverSettings: support for maintenance window (#48) (7b51328)
  • add File#nameWithoutExtension (be96cf1)
  • chat inline content settings support (04f43fc)
  • refresh external content state on settings change (d87f3a9)
  • unfurl and auto-download images (0075a83)

Performance Improvements

  • increase chat scrolling window for better ux (f715447)
  • load files after chats to speed up startup time (021b0b5)
  • throttle unfurl, don't request same url in parallel (d6019af)

2.11.1 (2017-10-02)

2.11.0 (2017-10-02)

Bug Fixes

  • chat name and purpose limits (3944aef)
  • new message marker now shows in any chat and not only after app is regaining focus (0654784)
  • really fix left participant auto-removal from boot keg (d526b66)

Features

  • smarter decision making on file up/download resume in case of errors (3075265)

2.10.1 (2017-09-27)

Bug Fixes

  • expected format of the list of users who left channel was wrong (583750a)
  • recent files should not try to load before meta (340d48a)

2.10.0 (2017-09-25)

Bug Fixes

  • admins always on top of participants (67dc9f9)
  • channel active members list computation issues (399db28)
  • move test from util to keys (#46) (36c5d58)
  • validation race condition when several validation runs are triggered (#47) (e6f8605)

Code Refactoring

  • rename Queue to TaskQueue (queue.js -> task-queue.js) to add more kinds of queues without confusion (c1fe5ed)

Features

  • recent files in chat (d3f8261)
  • update recent files list on the go (a0a5377)

BREAKING CHANGES

  • helpers/queue.js module is now called helpers/task-queue.js

2.9.0 (2017-09-20)

Bug Fixes

  • 'file unavailable' issue for inline files in chat (246732a)
  • custom name only for channels (3f67de6)
  • filter out chats that don't have chat_head loaded (1f66f06)
  • re-appearing of existing chats (3276144)

Features

  • info messages autoretry send now (93eee20)

Performance Improvements

  • contact lookup batching interval depends on app state (ddb30cd)

2.8.0 (2017-09-18)

Features

Performance Improvements

  • chat loading optimization (748dbdf)
  • contact lookup and tofu keg load batching (eed350b)
  • less awkward chat list loading through waiting for chat head (565d294)

2.7.0 (2017-09-15)

Bug Fixes

  • retry digest load on timeout (3f70e62)
  • some improvements and bugfix around room participants and invite rejections (88a12fd)

Features

  • ghosts: sort kegs by kegId, make it default (#44) (65ac4d8)
  • User.current.hasActivePlans (c85c674)

2.6.1 (2017-09-11)

Bug Fixes

  • removed unwanted warning on automated removeParticipant, for real this time, promise (5fe2048)
  • server anti-spam (77d8768)

2.6.0 (2017-09-11)

Bug Fixes

  • tinydb: use storage engine creator function instead of constructor (#43) (7c8040e)
  • chat names for unmigrated DMs (8e9c5b1)
  • do not send 'invited' system message when a room was created without participants (fcc08ae)
  • properly handle rejected channel invites (2fe2991)
  • remove error snackbars when room participants are being removed automatically (dd73f3c)

Features

  • db: split TinyDb into manager and collection (#42) (9416acf)

2.5.0 (2017-09-08)

Bug Fixes

  • better handling of chat leave/kick situations (4449926)
  • ghost: pass db to Ghost constructor (#37) (e8db3b1)
  • disable shared file keg re-encryption as a temporary workaround (c0ab754)
  • do now show 'you have been removed from channel' when user deletes a room (3ece49a)
  • give user another chance if 2fa entered incorrectly on login (0143d46)
  • removed 'cancelable' option from 2fa requests (1e3756f)
  • socket.io duplicating open connections on reset (1af0129)
  • sorting bug on invites (2304b84)
  • unconfirmed emails now still give hints about existing channel invites (001d94b)
  • unlimited upload size handled correctly (35e0e5a)

Features

  • auto add email invites to channel when they join (3e0f29f)
  • avatar uploaded bonus (#39) (a71c0c3)
  • bonus flag properties in User (#35) (6c04adc)
  • channel email invites (8e01c41)
  • channel email invites (76de8e8)
  • new property chat.leaving (3b05dda)
  • sdk exports Contact model (2382d75)
  • send/remove email invites to channel (17b5252)
  • signout support to expire 2fa trust (b11b683)
  • use retry for setAccountKeyBackedUp (#36) (b449961)
  • crypto: add utils.getRandomAccountKeyHex (#38) (159d4f3)

Reverts

2.4.0 (2017-08-31)

Bug Fixes

  • crypto: make sure failed encrypt operation throws instead of producing empty ciphertext (e2ad1c2)
  • attempt to fix chat migration (dbb767d)
  • chat migration (0b42a43)

Features

  • setAccountKeyBackedUp server call (#34) (86fafb6)
  • take file upload limits from server (#33) (b527eff)

2.3.0 (2017-08-26)

Bug Fixes

  • add default values to trust flag in 2fa api (4e8a857)
  • api path (9599fa5)
  • change DM participant limit to 4 (bbe40dd)
  • channel limit behaviour (0afee71)
  • channel name didn't appear in invite if participants were added as a part of channel creation routine (9c740f6)
  • channel system messages (8cb475d)
  • correctly activate channel after accepting invite (989d71e)
  • prevent spamming server on bootkeg migrations (b3d682c)
  • spam due to server index error protection (41950fa)
  • typo and remove console-kungfu plugin from dev babel configuration (f27bee5)

Features

  • channels: new property Chat#joinedParticipants and participant list sorting (f24ac62)
  • 2fa api (ad1541d)
  • 2fa UI request (2449641)
  • handle server 2fa requests on login (cdb0ba5)
  • ui: don't allow file exceeding current plan limit (#32) (bc6e69a)

2.2.0 (2017-08-15)

Bug Fixes

Features

2.1.0 (2017-08-10)

Bug Fixes

Features

2.0.1 (2017-08-09)

2.0.0 (2017-08-08)

Bug Fixes

  • some safety nets for files and fix for anti-tamper protection (ce20e4a)
  • keg: safe deserilizaton, avoid rewriting values with empty ones from empty keg (a1d4423)
  • logs: remove usernames from logs (#27) (c0a458f)

Features

  • channel: create channel with chat-store (c2ed205)
  • chat: chat gets new observable property added (a6dfa5b)
  • chat: chat store supports adding chat instance, thus reusing chat instance when creating new chat instead of reloading it (4541f88)
  • chat: support for chat and channel 'purpose' property (2378e7a)
  • keg: keg.dirty observable added to react to successful keg save (3a871aa)
  • keg: keyId property removed from keg (f89873f)
  • kegs: kegs support 'format' metadata property to track changes in keg payload and props structure (8e5016e)
  • chat store loads and sorts channels (0faa2c1)
  • Merge branch 'feat-channels' into dev (532f2b0)
  • update tracker doesn't try to minimise traffic and amount of data to process on reconnect anymore (0e44d16)
  • quotas: channel limit (3522961)

BREAKING CHANGES

    • Some chats are now channels, your client must support channels or it will confuse them for DMs
  • update-tracker.js: removed activateKegDb() deactivateKegDb()
  • keg.js: now assumes there's always a list of keys in keg db and uses keyId for crypto
  • chat-keg-db.js: redone to support channels, clarity improvements TBD
  • chat-boot-keg.js: redone to support channels and prepared for DM boot keg format migration
  • system-messages.js: added new system message type - purposeChange
  • keg: Keg#keyId is removed. No reason to have it in the keg instance, it's only used during deserialization.

1.5.2 (2017-08-01)

Bug Fixes

1.5.1 (2017-08-01)

Bug Fixes

  • make sure mobx when effect is called asynchronously for sequence-critical logic (282d121)

1.5.0 (2017-07-11)

Features

  • plans: get the list of active paid plans (#26) (2ce915e)

1.4.0 (2017-07-02)

Features

  • signup: signup sends client version information according to the new api signature (755088d)

Performance Improvements

  • files: file map added to file store to use instead of linear search (2d4f9f0)

1.3.0 (2017-07-01)

Features

  • contact: added Contact#isLegacy property to see if user was not found because migration is pending (7351154)
  • files: enabled file re-sharing (68f17b6)

1.2.1 (2017-07-01)

Bug Fixes

  • converted __sdk.json to __sdk.js to avoid copying in on clients when compiling icebear (d69c2c4)

1.2.0 (2017-07-01)

Bug Fixes

  • build script fixed to make docs show correct version + update __sdk.json file (bddbf3a)
  • hooks do npm install now too (b1509a7)

Features

  • auth: client sends sdk version on auth attempt (7191c21)
  • auth: support for server auth deny due to client deprecation (73888c7)

1.1.5 (2017-06-29)

1.1.4 (2017-06-29)

1.1.3 (2017-06-29)

1.1.2 (2017-06-28)

1.1.1 (2017-06-28)

1.1.0 (2017-06-28)

Bug Fixes

  • auth: not failing if saved username does not exist (fc30093)
  • auth: send arch to server (b63d1ef)
  • auth: version, platform (182a1cc)
  • avatar: update avatar letter on first name change (82cec6d)
  • avatars: api change (200d3f5)
  • bluebird: disable promise warnings for empty returns (7ba3832)
  • build: moment should be in dependencies and peerDependencies (ece5a1d)
  • chat: any activity in hidden chat automatically unhides it (6ebfcd0)
  • chat: better grouping for sending messages (28439a6)
  • chat: chat create/load logic (cbaa1c3)
  • chat: chat hide logic improvement (f7f971a)
  • chat: don't show new messages marker for own messages (13da762)
  • chat: fail-safe chat keg db (f14f9a9)
  • chat: failsafe chat hiding (a931800)
  • chat: fix chat favorite state sync (6e90d82)
  • chat: fix receipts and unread count logic (7a24828)
  • chat: fix receipts freeze under certain circumstances (cb0a8cd)
  • chat: frozen receipts (44a04eb)
  • chat: handle empty message kegs properly (4d3ad7a)
  • chat: last bits of error resiliency (e91b61a)
  • chat: mark as seen (0bdb578)
  • chat: mark messages as read in 2 seconds instead of 3 (c4b2624)
  • chat: no fail on emty kegs (692b863)
  • chat: prevent overwriting most recent message when paging up (9adff23)
  • chat: remove leading/trailing whitespace from chat names (bdcb161)
  • chat: somewhat fix message receive event (62d2384)
  • chat: validate chat name (57e6cb8)
  • chat: way better and smarter way to handle marking chat message as 'read' and removing new messages marker (8a24edd)
  • chatlist: fix hidden chat not reappearing under specific circumstances (57da5f5)
  • chatlist: sort favorite chats by name (1e7f2a5)
  • chats: chat rename (0449788)
  • chats: chats not loading for new accounts (9a56208)
  • chats: fix duplicate messages (8d57eb3)
  • chats: fix new message counter issues and updating after reconnect issues (5a988ee)
  • chats: fix receipt loading after diconnect (8b096e5)
  • chats: fixes chat refactor issues (a04cf8b)
  • chats: new chat gets activated (ca41eac)
  • chats: new chats loading correctly after reconnect (e310c56)
  • chats: open cached chat from new chat screen (a2e8cbc)
  • chats: refactor typo (e270bb5)
  • chats: removing name from a new chat created unused 'chat name cleared' event (3002cd6)
  • chats: reworked chat load/add/hide/star/unstar logic (2ab2b5b)
  • chats: sendMessage as a mobx action (44cb169)
  • config: coverage reporter fix (784b79d)
  • config: fixed url config (07d286d)
  • config: restore proper socket URL (e1930a1)
  • contact: make contact lookup case insensitive (4a45905)
  • contact: unicode aware first letter extraction (b467a7f)
  • contacts: all kinds of invite fixes (6c070af)
  • contacts: deduplicate invites keg data (61c005d)
  • contacts: fav contacts not loading at login (c4966ec)
  • contacts: flag not found contact properly (18938c7)
  • contacts: now that we hide chats, make sure we still have all our previous contact in user picker (1a541ae)
  • contacts: prevent duplicate contacts when looking up by email (bb7f353)
  • core: retry logic returning original promise instead of recreating it (2131b15)
  • core: snowflake minimal value is null (241a752)
  • core: switch to a new server query api (e58d7bb)
  • core: synced keg initial load and chat rename fix (86db184)
  • core: toLocaleLowerCase where applicable (b52e7b2)
  • crypto: 5x faster fingerprint calculation (e657e7e)
  • crypto: expose keys, public, secret crypto (for ghost use) (4a0577d)
  • crypto: hex to bytes for ghost (4dacf03)
  • crypto: improve getRandomNumber (5c45215)
  • crypto: increase interruptStep for most key derivations (e60e763)
  • crypto: keys (029f43e)
  • crypto: node support for crypto utils prng (fbf9506)
  • crypto: passcode generation bug, some refactor (e0f4403)
  • crypto: restore deriveKeys function resolving a value (8596608)
  • crypto: throw correct error if nacl.box.open returns false (f68b388)
  • crypto-util: fix arraybuffer implementation for safari (3748aa8)
  • cryptoUtil: export getRandomUserSpecificIdHex (47d1071)
  • db: export db & document (331392c)
  • dependencies: documentation version not found (36c8c03)
  • env: use env variables ❓ (12ae46d)
  • errors: typo (eababa5)
  • file: reject promise on upload error (581587b)
  • files: append mode (5f0610b)
  • files: cancel download (647915e)
  • files: cancel upload queue (ff66852)
  • files: cancel upload queue (4ae0c26)
  • files: canUploadFileSize calculated incorrectly (cb32649)
  • files: changed files to be shared only in chat, removed file counter (7c66432)
  • files: close share dialog after files are shared (addf8a2)
  • files: correct shared file props deserialization (b47d055)
  • files: deleted files correctly removing from the list (e0da6bd)
  • files: exists is a promise (67c3692)
  • files: exists is a promise (9c52ea5)
  • files: file up/download snackbars (7bdb76b)
  • files: fix file counter not clearing under certain circumstances (520f582)
  • files: fix file update logic (a944f2b)
  • files: fix uploaded files being stuck in 'processing' state sometimes (4b98a62)
  • files: make most recent files always be on top (725a309)
  • files: new sharing api (b7fd43b)
  • files: no systemWarnings when file upload is cancelled (d6b79e6)
  • files: notice when upload “queue” is consumed (63dbb20)
  • files: notification for fast uploads (9911a6d)
  • files: owner displaying properly (4fd6df8)
  • files: owner username was empty if it was user's own file (7506b6b)
  • files: pace file sharing (533ca03)
  • files: prevent updating file kegs that were loaded initially, also removes extra re-encrypt attempt (b80f8bb)
  • files: progress bar fix (37536ca)
  • files: proper selection and search logic (4df190b)
  • files: re-sharing keg deleted by recipient works now (d96c20d)
  • files: read queue>1 corrupts files (8525c6e)
  • files: restore query changes (972230f)
  • files: safer file list loading (771a777)
  • files: small fixes (b8025b6)
  • files: support s3 way of handling out of range requests (1633b91)
  • files: switch file store to new query api (f82720d)
  • files: update shareable state after upload (c164db9)
  • files: upload fix (45f9a2e)
  • fs: generate unique file path (f3320d9)
  • ghost: attach signature (4176b88)
  • ghost: do not assume ghost frontend url will have slash in the end (7b13c6f)
  • ghost: expiry handling (8bfab33)
  • ghost: fix fileIDs when attaching files (aac6c68)
  • ghost: include signing key in ciphertext (03ada83)
  • ghost: load ghost properties + revoke (40d326b)
  • ghost: message preview (3e95c58)
  • ghost: passphrase initialization (3e7aa24)
  • ghost: remove afterLoad (39f6f28)
  • ghost: replace old clock with new clock (2a532be)
  • ghost: revoke (f7ff781)
  • ghost: use moment (967cb15)
  • ghosts: frontend url + debug (5742a5c)
  • ghosts: if there are no ghosts, selectedId is unset (0606869)
  • ghosts: if there are no ghosts, selectedId is unset (d9de688)
  • ghosts: load properties from kegs properly (2f11359)
  • interface: do not export icebear db (a5edcca)
  • ios: add Uint8Array.slice polyfill for ios (2d0e7a5)
  • kegs: chatbootkeg (842b502)
  • kegs: don't fail evrything for the sake of one corrupted keg (660f30d)
  • kegs: failsafe keg version increment (0b23ebe)
  • kegs: fixed broken plaintext keg save (80fb547)
  • l18n: forgot one (e627ce7)
  • login: enable cehcking for passcode even when authKeys are loaded from cache (bc26bb3)
  • login: fill keys on login (ea5a4df)
  • login: load profile, then store last auth’d (cef1e7c)
  • login: relogin process hangs if server forcibly closes the connection during login (e6f0128)
  • login: theoretical support for user firstname on return (eeb1883)
  • message: don’t check mentions if empty text (ed1efc8)
  • message: make sure to clear message.files on deserialization (ff689cb)
  • migrator: fix migration crypto (3d8246e)
  • mobile: fix for android javascriptcore subarray (15d4237)
  • mobile: unicode literal (6ca2041)
  • models: add KegDB.toJSON to avoid cycles (#25) (da68adb)
  • net: fix onceAuthenticated event, that wasn't actually firing (7fccbac)
  • passcode: clean up test cases (8ce23da)
  • passcode: return hasPasscode back (e8cd149)
  • passphrases: dictionary collection (969bf5f)
  • passphrases: spaces (800b406)
  • perf: disable verifyKegSignature for now (36351f4)
  • profile: fix primary address confirmation fact not updating (35bd444)
  • profile: notify user when they try to add confirmed email (3cf80cc)
  • profile: primary address loading correctly (1586fdd)
  • profile: remove readonly fields (c6973d2)
  • profile: trim user's names on save (4280bae)
  • queries: file & ghost deleted: ‘false’ -> false (11c295c)
  • quota: fix quota not updating (81e3241)
  • quota: quota percent converted to number (4ffaba3)
  • receipt: switch receipts to named kegs, deprecate 'receipt' type, add 'read_receipt' instead (a662bc7)
  • receipts: don't load deleted receipts (8d3dce6)
  • receipts: fix receipts after refactor (e00b935)
  • receipts: less requests and proper handling of deleted receipts (8811568)
  • search: remember search query (294b596)
  • security: use payload as a source of truth for message attachments (a4c20ef)
  • security: username spoof protections (c85c20c)
  • serverWarning: restore token (d23a10f)
  • settings: save settings (7c734ec)
  • settings: settings keg properties renamed on server (ff5700e)
  • sign: typo (6b379f1)
  • socket: remove potentially harmful reset function (a5d34c5)
  • socket: socket.io import fix (6d5d117)
  • socket: upate state on disconnect - order (e7ebd94)
  • socket: update state on disconnect (33fdd7e)
  • sounds: improve receive sound notification logic (2f28619)
  • stability: reset socket on login error (9e842b4)
  • systemWarnings: support shift (8dd2e35)
  • tinydb: don't decrypt empty values (d46d8ef)
  • tinydb: guard key parameter (3dde898)
  • tinydb: scope system db file name so it won't conflict with any username (01e3341)
  • tofu: better make it observable (d7157a8)
  • tofu: fixed tofu validation (913d8c9)
  • tofu: tofu verification fix (1c27aa8)
  • tracker: safe update tracker handler calls (e615291)
  • upload: one-chunk files properly report lastChunk flag (fd087b2)
  • user: kegKey must have been renamed to overrideKey accidentally (ad63ef0)
  • user: pad passhprase in serializeAuthData (#22) (1058d1d)
  • util: safari support for data view (e0bc148)
  • ux: message grouping interval reduced to 10 minutes (f0f8252)
  • validation: … actually throttle… (76109b3)
  • validation: allow action to return a message (5cded0c)
  • validation: correctly parse throttled requests (70c26cb)
  • validation: fix error message trigger (e5650d0)
  • validation: fix name — empty name is ‘’ (8079ebc)
  • validation: handle undefined string (eb328c3)
  • validation: more legible throttled call (e77ef57)
  • validation: refactor (c603068)
  • validation: refactor validation so it doesn't cache bad results (9c83acf)
  • validation: remove timeout (564ce7b)
  • validation: require + value equality (137d2e9)
  • validation: return true (9d0b142)
  • validation: scope fix (4ad18e1)
  • no resets when connected (951e088)
  • validation: throttle server calls (d746969)
  • account for minCollectionVersion weirdness (01b7a9b)
  • amount of chats to load after favs (80c4348)
  • catch passcode error w passphrase (bb93c6b)
  • chatName (9e818e1)
  • contact import (6ffb23f)
  • contact lookup spam at login (b89c97a)
  • contact sorting (dfc645a)
  • file blob download retry (18811e3)
  • limit retry counts of file remove (b61b286)
  • make sure named kegs always have allowEmpty flag (6af2132)
  • new file sharing (b1fd378)
  • validation: undefined for pending requests (3e3cfe9)
  • quick fix (b0c8d02)
  • receipt verification (6f7c6df)
  • ups (f239923)
  • validation: throttling, again (557b162)
  • validation: translation strings (c84b172)
  • validation: uniform type (f417d6d)
  • warnings: don't display server warning with invalid key (3662090)
  • warnings: failsafe server warning clear (756e47f)
  • warnings: fix duplicates and late subscription (d8be158)
  • warnings: fix server warnings not showing (4ff734f)
  • warnings: prevent duplicate server warnings to appear on bad connections (be8f933)
  • warnings: server warnings constructor typo (7e2ac6f)
  • warnings: show snackbars for longer (02b9437)
  • warnings: small thinngs (fc86057)
  • remove unused fs (5d4c8a5)
  • small but mighty (aaa60b8)
  • typo (2563930)
  • update data read status based on user focus (18e209c)

Features

  • account: account delete reaction support (43548d3)
  • account: deleteAccount properly handles errors, generates warnings, returns promise (e9821d7)
  • auth: create account (3e3e93d)
  • auth: encrypt/decrypt auth data with passcode (39370ad)
  • auth: socket supports 'authenticated' event and state (c7e79b9)
  • avatar: signing key hashing for avatar color (13b6775)
  • avatars: avatars (e50f40c)
  • chat: adaptive unread counter clear (7439525)
  • chat: always load all updates in all chats (f3373cf)
  • chat: canSendAck Ack spam prevention api (e82d87f)
  • chat: chat header/rename support (7f320e6)
  • chat: chat hide/upload support (5a3d0ff)
  • chat: chat name prefers full names over usernames (f93d2f6)
  • chat: chat watchlist - makes sure hidden chats only pop when there are meaningful changes in them(messages) (b03a4de)
  • chat: chats start with automatic message (ec75a1a)
  • chat: fav/hidden chats, smart chat list loading (682883f)
  • chat: grouped messages calculation (ff60d91)
  • chat: last message snippet computed (05b75b0)
  • chat: limit amount of chats to load (6b63098)
  • chat: message date separator support (b12366c)
  • chat: new messages marker support (51aaa24)
  • chat: preload most recent message (379aa20)
  • chat: read receipts (90d0675)
  • chat: retry support (076fab3)
  • chat: sort chatlist on starring chats (300c29a)
  • chat: store system message metadata in keg props (725e559)
  • chat: tweak page size for more comfortable chat experience (5385583)
  • chat: ui props on message (1909265)
  • chats: chat store (0a79630)
  • chats: dynamic chat sorting based on unread items (09833e9)
  • chats: find a chat with existing participants (4477edd)
  • chats: makes icebear aware about specific view client app is in to trigger receipts etc when appropriate (1fef546)
  • chats: option to sort chats 'unread first' on/off (3846188)
  • chatstore: chatStore.hidingChat property to prevent spam clicking on ui 'hide' button (0aea914)
  • ci: add circle.yml (60a78a3)
  • clock: dispose() for Clock (d3ef650)
  • config: move chunk size to fs config (bf35b33)
  • contact: contact model (abf1953)
  • contact: contact whenLoaded function + load retry (78600ff)
  • contact: Contact.usernameTag (c3fd2b3)
  • contact: fullName property (6629f59)
  • contact: fullNameLower property for search purposes (2fb6efb)
  • contact: utility functions for contact loading (47a4153)
  • contacts: add invited contact when they join (563faae)
  • contacts: contacts support (06c5da4)
  • contacts: contactStore.filter(token, [collection]) smart user search (59ecafe)
  • contacts: contactStore.invite(email) (8b1dbb1)
  • contacts: delete invite (d1c1ff3)
  • contacts: import (782e031)
  • core: deleted and blacklisted account support (13fff3e)
  • core: most recently used [anything] support (9a02a9a)
  • core: observable clock (329ed8f)
  • crypto: add asymmetric key generation (2217ae3)
  • crypto: add functions to pad/unpad passphrase (#11) (23b0b8e)
  • crypto: add ghost key derivation & hash operations + tests (6692f88)
  • crypto: add signing keys generation (e4715cb)
  • crypto: add symmetric encryption (9131a82)
  • crypto: assymetric shared key cache (868bbbe)
  • crypto: cache keys (4edeef5)
  • crypto: crypto keys module (ebfb37e)
  • crypto: full public crypto with optimized functions (0befa8f)
  • crypto: node PRNG support (f75d53a)
  • crypto: own random bytes function (c5e6aa4)
  • crypto: passphrase generator (f51603f)
  • crypto: sign verify (9aa36b4)
  • cryptoUtil: string to hex (2eee003)
  • db: tests (9546808)
  • digest: minimalistic digest (b2f8b6e)
  • errors: handle 434 error (1f1284a)
  • file: set shared state of the file (f588ea0)
  • files: confirmation snackbar when sharing files from file tab (74fa954)
  • files: custom filename (cae5ff6)
  • files: delete cached file (8129dfe)
  • files: disable sharing of incomplete files (16241e9)
  • files: download (fb2f111)
  • files: download automatic resume (5ff4b0f)
  • files: drop to chat (7f054c5)
  • files: extend file store with selection functions and props (9f2c0f3)
  • files: failsafe logic (21c9776)
  • files: file sharing (c7a2d54)
  • files: file upload resume (c7dc806)
  • files: get cache list (e692779)
  • files: name filter/search support (ba29ad5)
  • files: prevent uploading files over quota (6c36225)
  • files: rename api (e772c24)
  • files: return file keg for uploadAndShare (2ff8169)
  • files: return file keg for uploadAndShare (f341a43)
  • files: selected files counter (808d59e)
  • files: shareable files support functions (4c5df90)
  • files: support deleteAfterUpload flag on chats (e56ff8e)
  • files: unread counter (28c14bb)
  • files: upload to chat (4fa9545)
  • ghost: attach files (afb5808)
  • ghost: sort, to be re-defined as per design (?) (2ab1859)
  • helpers: dynamic map array (962cad7)
  • keg: loading/saving observable state for base Keg (955f014)
  • keg: prop support (f469809)
  • kegs: SyncedKeg - new class for easy use of synced named kegs (62d8e4f)
  • legacy: legacy contact import (be9f9d7)
  • lib: check file owner for file sharing (47512e4)
  • lib: export FileNonceGenerator (9d5a8b0)
  • lib: file name utilities (b8db9cb)
  • lib: file name utilities (da6ac91)
  • lib: passcode validation (439cd77)
  • lib: queue timeout (621ea5c)
  • lib: validation (7bcdcac)
  • login: don't derive passcode if authKeys are cached (50efb48)
  • login: lastAuthenticated (b70ce84)
  • login: login with passcode (83a71eb)
  • login: save passcode (0a3e973)
  • message: add message (2a3bdc5)
  • message-kegs: load all (962fa62)
  • messaging: ack message support (e0e61b0)
  • messaging: incoming chat (5b44aec)
  • messaging: lookup by email (eab30a6)
  • migration: ability to generate publicKeyString for tests (89eafb9)
  • migration: legacy accounts migrator (35ff0ee)
  • mobile: add helper methods for mobile fs (540a97a)
  • mobile: add passcode existence check (e37db1a)
  • net: no more hanging requests (69ece4a)
  • network: add connected observable (64216ee)
  • network: handle throttling (358e024)
  • passcode: persist skipping passcode (376e3fa)
  • paywall: paywall errors via systemWarnings (9e266be)
  • profile: email editor support (530e01c)
  • profile: email update (d45dcb5)
  • profile: profile load/save (042dfa3)
  • props: props support for kegs (bc0b2d6)
  • queue: error result support for queue tasks (91fef6c)
  • quota: quota helpers (fd9257e)
  • quotas: methods to check for quotas (1a0b9af)
  • quotas: quotas keg support (d879019)
  • react-native: replace crypto with shim (9852e9e)
  • receipts: finalized (4d5d0ec)
  • receipts: remove duplicate receipt kegs if any (08fd6ba)
  • retry: failsafe retry with increasing interval and retry count limit (a566780)
  • security: identity fingerprint support (b47c05f)
  • security: use safer file extension routine (182048d)
  • settings: promo email newsletter setting (92d660c)
  • settings: settings keg support (8957eff)
  • sharing: new keg sharing logic (9ec89d1)
  • sign: encrypted keg signing (1662a71)
  • signin: working sign in (3764086)
  • signup: fully failsafe signup process (18c7dd5)
  • socket: add socket subscriptions (21e4a96)
  • socket: prevent /auth/* socket calls on not authenticated connection (89eeb4c)
  • socket: socket reconnect information goodies (cb21345)
  • sounds: send-receive sounds (8a83945)
  • stability: action retry helper (22a7d7e)
  • stability: fail-safe profile loading (84cb4a9)
  • storage: add storage injection (4b2b4ee)
  • storage: TinyDb encryption (3edc39f)
  • sync: complete and new collection version contract compatible SyncedKeg (3396c4f)
  • systemWarning: expand serverWarning to be more generic (a300a23)
  • tinydb: getAllKeys support (4020df5)
  • tinydb: support removing keys (18cc0d2)
  • tofu: flag contacts (41be5cc)
  • tofu: tofu (f26411c)
  • ui: expand systemWarnings to support global errors (2b7855f)
  • ui: extended preview for ghost body (94aa85a)
  • ui: extended preview for ghost body (2f9e9b3)
  • ui: letter function for contact (9641940)
  • ui: show email confirmation sent snackbar when adding new email (#13) (cda7035)
  • ui: skylar formatted fingerprint (1bc9145)
  • ui: skylar formatted fingerprint (22480aa)
  • ui: skylar formatted fingerprint (f9c31dc)
  • workers: make sign detach and verify async (9ba2fb8)
  • add secureWithTouchID observable (#24) (49ce578)
  • ui: validation export for login username (6936b1a)
  • updates: file store keg update support (b616a77)
  • updates: keg updates support (71b01dd)
  • user: account migration (7f37a90)
  • user: autologinEnabled observable (9e127ed)
  • user: current user export for modules that can't require User class (9182887)
  • user: delete account api (ddc4a36)
  • user: self-updating quota and profile data (8d0c540)
  • user: server warnings (5a627f0)
  • user: silent legacy account migration (b84c96f)
  • util: observable timer to make timer coutners (f5563ee)
  • util: prombservable - promise wrapper for observable (8168ac9)
  • validation: add ability to reset validation state (9d8150a)
  • validation: add value equality + docs (e6d9349)
  • devicetokens (#14) (56ba6eb)
  • support for desktop notifications (#12) (6ea719c)
  • time store (1d36f8b)
  • validation: login validation functions (1d1beae)
  • validation: refactor (dd456fd)
  • validation: refactor validation a bit (290b5ba)
  • warnings: custom action support for warning buttons (efb4545)
  • warnings: dismiss callback support for severe warnings (24ee5fd)

Performance Improvements

  • chat: async message decryption (9a0a97f)
  • chat: don't try to send receipts when not needed (2f1fa5c)
  • chat: effective initial chat list loading (2edceb5)
  • chat: send operation improved to avoid jitter on render (8cfc1d9)
  • chatlist: chatlist optimisation (f96d0b6)
  • crypto: scrypt proxy for worker implementation (ab749d3)