{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":58298428,"defaultBranch":"main","name":"zulip-mobile","ownerLogin":"zulip","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-05-08T05:41:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4921959?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1721348635.0","currentOid":""},"activityList":{"items":[{"before":"9bccbca7af3c501d5348cfa2ddeaf0cfafa8c8ac","after":"2217c858e207f9f092651dd853051843c3f04422","ref":"refs/heads/main","pushedAt":"2024-07-19T00:23:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"version: Bump version to 27.230.","shortMessageHtmlLink":"version: Bump version to 27.230."}},{"before":"4826c3faaaa152a90ae11342ef8006406e03c656","after":"9bccbca7af3c501d5348cfa2ddeaf0cfafa8c8ac","ref":"refs/heads/main","pushedAt":"2024-07-19T00:20:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"changelog: Document changes since v27.229","shortMessageHtmlLink":"changelog: Document changes since v27.229"}},{"before":"8ebb563edc63f29a76d9a170268546f6f145346f","after":"4826c3faaaa152a90ae11342ef8006406e03c656","ref":"refs/heads/main","pushedAt":"2024-07-19T00:01:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"i18n: Add new languages from Transifex: eu (Basque), yue (Cantonese)\n\nNone of the strings are translated, so not time to offer these in\nthe UI yet. But perhaps soon!","shortMessageHtmlLink":"i18n: Add new languages from Transifex: eu (Basque), yue (Cantonese)"}},{"before":"2ae8d8e54dcf25ce760206b0f6fc16923b4375b5","after":"8ebb563edc63f29a76d9a170268546f6f145346f","ref":"refs/heads/main","pushedAt":"2024-07-18T23:19:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"content: Show spinner for thumbnail placeholders\n\nThis is a port of zulip/zulip#30477. That PR isn't yet merged, but\nit's been deployed on chat.zulip.org and I believe the styling is\nunlikely to change. (If it does get tweaked, we can always update.)\n\nThe placeholder `img` elements already come with a `src` pointing\nto this same `loader-black.svg` file, but on the Zulip server.\nSo the effects of this change are:\n\n * The placeholder image is local instead of remote, which may\n improve the experience a bit on a slow connection.\n\n * In dark theme, we use an appropriately contrasting white spinner,\n instead of a black spinner that blends in with the background.\n\nFixes: #5875","shortMessageHtmlLink":"content: Show spinner for thumbnail placeholders"}},{"before":"966e7f341809a9a22f00da821adb4a90b98267a9","after":"2ae8d8e54dcf25ce760206b0f6fc16923b4375b5","ref":"refs/heads/main","pushedAt":"2024-07-10T22:51:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"outboxActions: Show dialog if message send fails with informative ApiError\n\nThis is our minimal support for #5870 in this legacy codebase.\nSupporting it properly with a client-side check of the setting is\nmore effort than we can spare here, because it requires implementing\nthe group-based permissions system.\n\nProbably more error handling is called for in general (like for\nnetwork or server issues), but #3881 (\"Sending outbox messages is\nfraught with issues\") is complicated and it's probably best to leave\nit be.\n\nFixes: #5870","shortMessageHtmlLink":"outboxActions: Show dialog if message send fails with informative Api…"}},{"before":"e352f563ecf2fa9b09b688d5a65b6bc89b0358bc","after":"966e7f341809a9a22f00da821adb4a90b98267a9","ref":"refs/heads/main","pushedAt":"2024-07-10T00:52:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"docs: Update to point to #mobile-dev-help where appropriate","shortMessageHtmlLink":"docs: Update to point to #mobile-dev-help where appropriate"}},{"before":"8d6078c456dc998adc26ae1c77317a4d99ca7356","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/ws-6.2.3","pushedAt":"2024-06-27T03:56:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"8d6078c456dc998adc26ae1c77317a4d99ca7356","ref":"refs/heads/dependabot/npm_and_yarn/ws-6.2.3","pushedAt":"2024-06-18T16:15:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"build(deps): bump ws from 6.2.2 to 6.2.3\n\nBumps [ws](https://github.com/websockets/ws) from 6.2.2 to 6.2.3.\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/6.2.2...6.2.3)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"build(deps): bump ws from 6.2.2 to 6.2.3"}},{"before":"1b5947c0165f741c2d36bb979bc78a5a90bf66cf","after":"e352f563ecf2fa9b09b688d5a65b6bc89b0358bc","ref":"refs/heads/main","pushedAt":"2024-06-13T17:05:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"changelog: Mention topic permalinks in user highlights for v27.229","shortMessageHtmlLink":"changelog: Mention topic permalinks in user highlights for v27.229"}},{"before":"0220a8d8f984bceb9f4f529c626b96f58e5c3e99","after":"1b5947c0165f741c2d36bb979bc78a5a90bf66cf","ref":"refs/heads/main","pushedAt":"2024-06-13T01:52:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"version: Bump version to 27.229.","shortMessageHtmlLink":"version: Bump version to 27.229."}},{"before":"ee2644d50a9fd1a08fa9cea8b8a8b81e81edfd46","after":"0220a8d8f984bceb9f4f529c626b96f58e5c3e99","ref":"refs/heads/main","pushedAt":"2024-06-13T01:51:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"changelog: Document changes since v27.228","shortMessageHtmlLink":"changelog: Document changes since v27.228"}},{"before":"2a37d9c061bbd12e48ece719966b3477b0acaf50","after":"ee2644d50a9fd1a08fa9cea8b8a8b81e81edfd46","ref":"refs/heads/main","pushedAt":"2024-06-13T01:38:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"i18n: Sync translations from Transifex\n\nThanks as always to our kind volunteer translators.","shortMessageHtmlLink":"i18n: Sync translations from Transifex"}},{"before":"95627782c95076ace648647df775724770b9738d","after":"2a37d9c061bbd12e48ece719966b3477b0acaf50","ref":"refs/heads/main","pushedAt":"2024-06-12T23:23:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"ios build: Update CocoaPods to 1.15.2","shortMessageHtmlLink":"ios build: Update CocoaPods to 1.15.2"}},{"before":"6d5d56d175644cd0cdf47f3cd30ffadf6756bbdc","after":"95627782c95076ace648647df775724770b9738d","ref":"refs/heads/main","pushedAt":"2024-06-10T23:26:23.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"msglist: Handle topic permalinks (/with/) just as we do /near/ links\n\nExplanation in a comment, which quotes Greg in #5866.\n\nFixes: #5866","shortMessageHtmlLink":"msglist: Handle topic permalinks (/with/<id>) just as we do /near/ links"}},{"before":"f5a1a539a6114dbf2f58ad08dad11d16e06fa1af","after":"6d5d56d175644cd0cdf47f3cd30ffadf6756bbdc","ref":"refs/heads/main","pushedAt":"2024-05-01T23:00:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"version: Bump version to 27.228.","shortMessageHtmlLink":"version: Bump version to 27.228."}},{"before":"f869c44770700ec1634e2bb6d2d821dc0bfeea8b","after":"f5a1a539a6114dbf2f58ad08dad11d16e06fa1af","ref":"refs/heads/main","pushedAt":"2024-05-01T22:59:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"changelog: Document changes since v27.227","shortMessageHtmlLink":"changelog: Document changes since v27.227"}},{"before":"26be5cf8f9a7d0b6df239ede5ed6bdaafd54c12f","after":"f869c44770700ec1634e2bb6d2d821dc0bfeea8b","ref":"refs/heads/main","pushedAt":"2024-05-01T22:42:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"i18n: Sync translations from Transifex\n\nThanks as always to our kind volunteer translators.","shortMessageHtmlLink":"i18n: Sync translations from Transifex"}},{"before":"3b85a5049ec0ef9e5759d10b0cd59357849665f0","after":"26be5cf8f9a7d0b6df239ede5ed6bdaafd54c12f","ref":"refs/heads/main","pushedAt":"2024-05-01T22:37:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"TranslationProvider: Fix crash on login, from non-null-FL invariant\n\nSentry is reminding us that we forgot to check if the active account\nhas server data. Adding this check fixes a crash when\n`zulipFeatureLevel` is null because of not having server data right\nafter login.","shortMessageHtmlLink":"TranslationProvider: Fix crash on login, from non-null-FL invariant"}},{"before":"22bc54a4508a342d2ba70b0b8fc014354daac8b5","after":null,"ref":"refs/heads/dependabot/npm_and_yarn/katex-0.16.10","pushedAt":"2024-05-01T18:36:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"d1857377c2506eb304db410bf9992bed47eb5edd","after":"3b85a5049ec0ef9e5759d10b0cd59357849665f0","ref":"refs/heads/main","pushedAt":"2024-04-26T20:07:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"ui: Condition UI-string \"channel\" terminology on >=255, not >255\n\nOops; this was missed because I didn't do end-to-end testing before\nwe merged #5830.","shortMessageHtmlLink":"ui: Condition UI-string \"channel\" terminology on >=255, not >255"}},{"before":"937737f4ef6f146ff268071d568bb07a5605a06b","after":"d1857377c2506eb304db410bf9992bed47eb5edd","ref":"refs/heads/main","pushedAt":"2024-04-26T00:45:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"version: Bump version to 27.227.","shortMessageHtmlLink":"version: Bump version to 27.227."}},{"before":"7c356353c59508f8f91bf189f0fd1f0bb01a0e87","after":"937737f4ef6f146ff268071d568bb07a5605a06b","ref":"refs/heads/main","pushedAt":"2024-04-26T00:44:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"changelog: Document changes since v27.226","shortMessageHtmlLink":"changelog: Document changes since v27.226"}},{"before":"67c2655a301775c65500118a590015aa954ed6a9","after":"7c356353c59508f8f91bf189f0fd1f0bb01a0e87","ref":"refs/heads/main","pushedAt":"2024-04-26T00:26:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"ui: Use \"channel\" or \"stream\" based on server feature level\n\nDone at the level of TranslationProvider, which (conveniently) can\naccess the feature level of the active account if any.\n\nFixes: #5827","shortMessageHtmlLink":"ui: Use \"channel\" or \"stream\" based on server feature level"}},{"before":"647ccc5088138df7829096a36b487a7ee989a62d","after":"67c2655a301775c65500118a590015aa954ed6a9","ref":"refs/heads/main","pushedAt":"2024-04-26T00:20:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"i18n: Sync recently-added message strings across languages.","shortMessageHtmlLink":"i18n: Sync recently-added message strings across languages."}},{"before":"ae4cf01b7481ffcd7f7ad813367f2a31b9234553","after":"647ccc5088138df7829096a36b487a7ee989a62d","ref":"refs/heads/main","pushedAt":"2024-04-25T23:59:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"ios: Add privacy manifest, copying deps' reasons for \"required reason APIs\"\n\nApple has a new requirement to declare reasons for using certain\npotentially privacy-sensitive APIs. It calls these \"required reason\nAPIs\":\n https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api?language=objc\nStarting May 1, we risk being prevented from publishing until we\nproperly do that: #5847.\n\nWe don't have much iOS code of our own, and none of it uses these\nAPIs (I've checked). But some of our dependencies do, and we have to\nhandle that.\n\nSpecifically, we expect to have to aggregate the declared reasons of\nall our dependencies that use these APIs, and declare them ourself.\n(That is, of dependencies that are statically linked -- which we\nexpect them to be, since we don't call `use_frameworks!` in our\nPodfile.) The dependencies declare them with a \"privacy manifest\"\nfile, and the place we declare them is in a privacy manifest of our\nown.\n\nBelow are the reasons we're copying over, noted with the\ndependencies that declare them:\n\n---- File timestamp APIs ----\n\n(rn-fetch-blob uses some of these APIs, but that project hasn't yet\nmerged a privacy manifest. Currently the only reason code we haven't\ndeclared in this category is DDA9.1, and I don't think that applies.\nThe Apple doc says, \"Declare this reason to display file timestamps\nto the person using the device,\" and we don't do that.)\n\nC617.1: \"Declare this reason to access the timestamps, size, or\n other metadata of files inside the app container, app group\n container, or the app’s CloudKit container.\"\n\n @react-native-async-storage/async-storage (using the privacy\n manifest from the later version we take in #5856, which is not\n yet merged as of writing)\n\n @sentry/react-native\n\n expo-application (using the privacy manifest added recently in\n expo/expo@b8e40614b, which we haven't taken because Expo\n upgrades take a lot of effort)\n\n react-native (using the privacy manifest added very recently in\n facebook/react-native@d39712f54, which we haven't taken because\n RN upgrades take a lot of effort)\n\n~~0A2A.1~~ We considered including this because of expo-file-system\n but concluded that it's not appropriate for our privacy manifest;\n details here:\n https://github.com/zulip/zulip-mobile/pull/5859#discussion_r1579967905\n\n3B52.1: \"Declare this reason to access the timestamps, size, or\n other metadata of files or directories that the user specifically\n granted access to, such as using a document picker view\n controller.\"\n\n expo-file-system (using the privacy manifest added recently in\n expo/expo@b8e40614b, which we haven't taken because Expo\n upgrades take a lot of effort)\n\n---- System boot time APIs ----\n\n35F9.1: \"Declare this reason to access the system boot time in order\n to measure the amount of time that has elapsed between events that\n occurred within the app or to perform calculations to enable\n timers.\n\n Information accessed for this reason, or any derived information,\n may not be sent off-device. There is an exception for information\n about the amount of time that has elapsed between events that\n occurred within the app, which may be sent off-device.\"\n\n @sentry/react-native\n\n react-native (using the privacy manifest added very recently in\n facebook/react-native@d39712f54, which we haven't taken because\n RN upgrades take a lot of effort)\n\n---- Disk space APIs ----\n\n(rn-fetch-blob uses some of these APIs, but that project hasn't\nmerged a privacy manifest yet. Currently the only reasons we haven't\ndeclared in this category are 7D9E.1 and B728.1, and I don't think\nthose apply.)\n\n85F4.1: \"Declare this reason to display disk space information to\n the person using the device. Disk space may be displayed in units\n of information (such as bytes) or units of time combined with a\n media type (such as minutes of HD video).\n\n Information accessed for this reason, or any derived information,\n may not be sent off-device. There is an exception that allows the\n app to send disk space information over the local network to\n another device operated by the same person only for the purpose of\n displaying disk space information on that device; this exception\n only applies if the user has provided explicit permission to send\n disk space information, and the information may not be sent over\n the Internet.\"\n\n expo-file-system (using the privacy manifest added recently in\n expo/expo@b8e40614b, which we haven't taken because Expo\n upgrades take a lot of effort)\n\nE174.1: \"Declare this reason to check whether there is sufficient\n disk space to write files, or to check whether the disk space is\n low so that the app can delete files when the disk space is low.\n The app must behave differently based on disk space in a way that\n is observable to users.\n\n Information accessed for this reason, or any derived information,\n may not be sent off-device. There is an exception that allows the\n app to avoid downloading files from a server when disk space is\n insufficient.\"\n\n expo-file-system (using the privacy manifest added recently in\n expo/expo@b8e40614b, which we haven't taken because Expo\n upgrades take a lot of effort)\n\n---- User defaults APIs ----\n\n(expo-error-recovery uses some of these APIs, but that project\nhasn't merged a privacy manifest yet, and we don't expect it to\nbecause it is deprecated and not used in recent versions of Expo;\nsee expo/expo@87ffd749a. I don't *think* our app ends up using\nexpo-error-recovery; its README makes it sound like something we\nwould be aware of if it were active: \"`expo-error-recovery` helps\nyou gracefully handle crashes caused by fatal JavaScript errors.\".)\n\nCA92.1: \"Declare this reason to access user defaults to read and\n write information that is only accessible to the app itself.\n\n This reason does not permit reading information that was written\n by other apps or the system, or writing information that can be\n accessed by other apps.\"\n\n @sentry/react-native\n\n expo-constants (using the privacy manifest added recently in\n expo/expo@b8e40614b, which we haven't taken because Expo\n upgrades take a lot of effort)\n\n expo-file-system (using the privacy manifest added recently in\n expo/expo@b8e40614b, which we haven't taken because Expo\n upgrades take a lot of effort)\n\n react-native (using the privacy manifest added very recently in\n facebook/react-native@d39712f54, which we haven't taken because\n RN upgrades take a lot of effort)\n\nFixes: #5847","shortMessageHtmlLink":"ios: Add privacy manifest, copying deps' reasons for \"required reason…"}},{"before":"814087696fa57dec00c1ed973f79e5f7d58fb051","after":"ae4cf01b7481ffcd7f7ad813367f2a31b9234553","ref":"refs/heads/main","pushedAt":"2024-04-25T22:16:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"msglist: Catch invalid-URL error on link long-press\n\nFixes: #5854","shortMessageHtmlLink":"msglist: Catch invalid-URL error on link long-press"}},{"before":"98945cd17555fc887aa36e8ec0bbcf99819f029b","after":"814087696fa57dec00c1ed973f79e5f7d58fb051","ref":"refs/heads/main","pushedAt":"2024-04-25T22:12:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"compose: Fix breakage of LaTeX delimiters in quote-and-reply\n\nString.prototype.replace and String.prototype.replaceAll interpret\ncertain sequences such as $$ within a string provided as the\nreplacement argument. Because of this, LaTeX delimiters $$ were\nturning into $, and other sequences could duplicate part of the\nexisting draft.\n\nAvoid this interpretation by providing a function.\n\nFixes: #5849","shortMessageHtmlLink":"compose: Fix breakage of LaTeX delimiters in quote-and-reply"}},{"before":"c5b7a78ae2c71dc352764093b5268bbf43d50b24","after":"98945cd17555fc887aa36e8ec0bbcf99819f029b","ref":"refs/heads/main","pushedAt":"2024-04-25T19:05:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"ui: Rename \"All messages\" to \"Combined feed\"\n\nFixes: #5832","shortMessageHtmlLink":"ui: Rename \"All messages\" to \"Combined feed\""}},{"before":"5fa3ce6db390dbd82c92ac25c8f608571899bde6","after":"c5b7a78ae2c71dc352764093b5268bbf43d50b24","ref":"refs/heads/main","pushedAt":"2024-04-25T19:00:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"gnprice","name":"Greg Price","path":"/gnprice","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28173?s=80&v=4"},"commit":{"message":"internalLinks [nfc]: Inline internal_url.by_stream{,_topic}_url\n\nThis refactor will help with #5861, but Tim has reminded me that\nwe're not ready to address #5861 until a release addressing #5860\n(as we did in the previous commit) has been out for a while:\n https://chat.zulip.org/#narrow/stream/378-api-design/topic/URLs.20for.20stream.20to.20channel.20rename/near/1786615","shortMessageHtmlLink":"internalLinks [nfc]: Inline internal_url.by_stream{,_topic}_url"}},{"before":"7f7581ff1d9af8d48abf7b70a7605746484dfaae","after":"5fa3ce6db390dbd82c92ac25c8f608571899bde6","ref":"refs/heads/main","pushedAt":"2024-04-11T00:14:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chrisbobbe","name":"Chris Bobbe","path":"/chrisbobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22248748?s=80&v=4"},"commit":{"message":"version: Bump version to 27.226.","shortMessageHtmlLink":"version: Bump version to 27.226."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEg29o5QA","startCursor":null,"endCursor":null}},"title":"Activity · zulip/zulip-mobile"}