{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":11829145,"defaultBranch":"main","name":"trix","ownerLogin":"basecamp","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-08-01T22:21:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13131?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1723104840.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"4d5d18749afb97668393711dfa36efbe6dd40933","ref":"refs/heads/dependabot/npm_and_yarn/75lb/deep-merge-1.1.2","pushedAt":"2024-08-08T08:14:00.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":"Bump @75lb/deep-merge from 1.1.1 to 1.1.2\n\nBumps [@75lb/deep-merge](https://github.com/75lb/deep-merge) from 1.1.1 to 1.1.2.\n- [Commits](https://github.com/75lb/deep-merge/compare/v1.1.1...v1.1.2)\n\n---\nupdated-dependencies:\n- dependency-name: \"@75lb/deep-merge\"\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump @75lb/deep-merge from 1.1.1 to 1.1.2"}},{"before":"dd302a3bb3e45b4adbb9ffd06036e87fca1488dc","after":"457a834808abe07058e4e8fda1b2cb0452868e2c","ref":"refs/heads/main","pushedAt":"2024-08-08T08:13:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"v2.1.5","shortMessageHtmlLink":"v2.1.5"}},{"before":"e56ce81f903966bdc87d3b7d9b26f57c2d37f628","after":null,"ref":"refs/heads/show-placeholder-when-empty","pushedAt":"2024-08-07T10:22:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brunoprietog","name":"Bruno Prieto","path":"/brunoprietog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46098928?s=80&v=4"}},{"before":"9579e33ae8542ad67b5c072f38eaf04ab8c5492f","after":"dd302a3bb3e45b4adbb9ffd06036e87fca1488dc","ref":"refs/heads/main","pushedAt":"2024-08-07T10:22:03.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"brunoprietog","name":"Bruno Prieto","path":"/brunoprietog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46098928?s=80&v=4"},"commit":{"message":"Merge pull request #1177 from basecamp/show-placeholder-when-empty\n\nShow placeholder text when it's empty","shortMessageHtmlLink":"Merge pull request #1177 from basecamp/show-placeholder-when-empty"}},{"before":null,"after":"e56ce81f903966bdc87d3b7d9b26f57c2d37f628","ref":"refs/heads/show-placeholder-when-empty","pushedAt":"2024-08-06T17:19:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"michelleh","name":"Michelle","path":"/michelleh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3770571?s=80&v=4"},"commit":{"message":"Show placeholder text when it's empty\n\nNot just when it's not in focus","shortMessageHtmlLink":"Show placeholder text when it's empty"}},{"before":"7656f578af0d03141a72a9d27cb3692e6947dae6","after":"9579e33ae8542ad67b5c072f38eaf04ab8c5492f","ref":"refs/heads/main","pushedAt":"2024-08-01T09:02:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"v2.1.4","shortMessageHtmlLink":"v2.1.4"}},{"before":"626a4f41d539586c2113d2f76bf029a7fb366cec","after":null,"ref":"refs/heads/paste-vuln","pushedAt":"2024-08-01T08:51:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"}},{"before":"beabac297c7a29220af2c3247c531d14a6fca971","after":"7656f578af0d03141a72a9d27cb3692e6947dae6","ref":"refs/heads/main","pushedAt":"2024-08-01T08:51:48.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Merge pull request #1156 from basecamp/paste-vuln\n\nFix XSS vulnerability on paste","shortMessageHtmlLink":"Merge pull request #1156 from basecamp/paste-vuln"}},{"before":"c8dbd3d5deda2a17e8d76998a84da6adebdf1dcf","after":"626a4f41d539586c2113d2f76bf029a7fb366cec","ref":"refs/heads/paste-vuln","pushedAt":"2024-07-30T14:58:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Support browsers where getHTML is not supported","shortMessageHtmlLink":"Support browsers where getHTML is not supported"}},{"before":"8f7608e138432ac40ee9a91c3a81975ed0fb7164","after":"c8dbd3d5deda2a17e8d76998a84da6adebdf1dcf","ref":"refs/heads/paste-vuln","pushedAt":"2024-07-30T14:44:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Ensure we always sanitize HTML we set as innerHTML","shortMessageHtmlLink":"Ensure we always sanitize HTML we set as innerHTML"}},{"before":"c2e5882292ca2691a1798eb8935fa31e1d14d88e","after":null,"ref":"refs/tags/v2.1.3","pushedAt":"2024-07-16T04:28:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"}},{"before":"b29b6632184c53f3c9c46f9b3e6be710710de122","after":"beabac297c7a29220af2c3247c531d14a6fca971","ref":"refs/heads/main","pushedAt":"2024-07-16T04:26:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"Drop defunct bin/release superseded by yarn release","shortMessageHtmlLink":"Drop defunct bin/release superseded by yarn release"}},{"before":"c2e5882292ca2691a1798eb8935fa31e1d14d88e","after":null,"ref":"refs/tags/v2.1.3","pushedAt":"2024-07-15T20:20:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"}},{"before":"90c1006d02e76d6cc2830ef662ad5462a58e3679","after":"b29b6632184c53f3c9c46f9b3e6be710710de122","ref":"refs/heads/main","pushedAt":"2024-07-15T20:16:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"bin/release: upload .map files to release","shortMessageHtmlLink":"bin/release: upload .map files to release"}},{"before":"eca01a15a7a6c73fdc1ec8a1cb40b809b23787e8","after":"90c1006d02e76d6cc2830ef662ad5462a58e3679","ref":"refs/heads/main","pushedAt":"2024-07-15T20:09:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"bin/release: narrow release files","shortMessageHtmlLink":"bin/release: narrow release files"}},{"before":"4d6dd1b7d7cee146dfef0bae6c54373811c258ec","after":"eca01a15a7a6c73fdc1ec8a1cb40b809b23787e8","ref":"refs/heads/main","pushedAt":"2024-07-15T20:04:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"bin/release: drop needless copyright year updates and src commits","shortMessageHtmlLink":"bin/release: drop needless copyright year updates and src commits"}},{"before":"fc7a2d43f66503151eeca90d5aab70ef429c4d0f","after":"4d6dd1b7d7cee146dfef0bae6c54373811c258ec","ref":"refs/heads/main","pushedAt":"2024-07-15T19:54:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"boop","shortMessageHtmlLink":"boop"}},{"before":"b30606838c2000752b510b777046cf26522fed91","after":"fc7a2d43f66503151eeca90d5aab70ef429c4d0f","ref":"refs/heads/main","pushedAt":"2024-07-15T19:46:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"2.1.3","shortMessageHtmlLink":"2.1.3"}},{"before":"831697b11832996e0af76ee6151c6fcf8d856089","after":"b30606838c2000752b510b777046cf26522fed91","ref":"refs/heads/main","pushedAt":"2024-07-15T18:35:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"Bump version to current 2.1.2 release","shortMessageHtmlLink":"Bump version to current 2.1.2 release"}},{"before":"2651ea18a9483d9dba4cc65086c92d28da05c443","after":null,"ref":"refs/heads/file-pastes","pushedAt":"2024-07-15T18:22:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"}},{"before":"db9c35debfb6cea0777f160a8eb76bfe238fa449","after":"831697b11832996e0af76ee6151c6fcf8d856089","ref":"refs/heads/main","pushedAt":"2024-07-15T18:22:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jeremy","name":"Jeremy Daer","path":"/jeremy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/199?s=80&v=4"},"commit":{"message":"Prioritize pasting files over pasting HTML content (#1148)\n\n* Prioritize pasting files over pasting HTML content\r\n\r\nWhen right clicking and pasting an image the dataTransfer object\r\ncontains a file and text/html. If we paste the HTML content, the result\r\nis often a broken image. This change prioritizes pasting the file over\r\npasting the HTML content.\r\n\r\nThe gotcha is that when pasting text from MS Word, the dataTransfer object\r\ncontains a File with a screenshot of the text and text/html with the\r\nactual text. We need to check if the paste is from MS Word and if so,\r\nwe should paste the text instead of the screenshot.\r\n\r\n* Prevent duplicate file pastes\r\n\r\nThis change prevents duplicate file pastes by checking if the paste event\r\nis a file paste before handling it. This is necessary because Safari\r\ndoesn't support `beforeinput.insertFromPaste` for files, so we are handling\r\nfile pastes in the paste event handler too.\r\n\r\nWe need to check in the `beforeinput.insertFromPaste` event handler if the\r\nevent will be also handled by the paste event handler, to avoid duplicate\r\nfile pastes.","shortMessageHtmlLink":"Prioritize pasting files over pasting HTML content (#1148)"}},{"before":"aec58c43961fabb80cd5bca8b9ac38498b8b7bdc","after":"564436b33e360f36c6bc4865935c6660b3eb6049","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-07-05T07:14:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"v2.1.2","shortMessageHtmlLink":"v2.1.2"}},{"before":"9c89594221fb33b2af746341121bfa60a2c0daa1","after":"aec58c43961fabb80cd5bca8b9ac38498b8b7bdc","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-07-05T07:12:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Revert \"Pump version\"\n\nThis reverts commit 9c89594221fb33b2af746341121bfa60a2c0daa1.","shortMessageHtmlLink":"Revert \"Pump version\""}},{"before":null,"after":"9c89594221fb33b2af746341121bfa60a2c0daa1","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-07-05T07:11:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Pump version","shortMessageHtmlLink":"Pump version"}},{"before":"2f8c5eba16be6c5d47de166d1b6fabec71620298","after":null,"ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-07-05T07:10:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"}},{"before":"0c79bcb854b8e8ee23e7bec571fe9d8dbfab9e5e","after":"db9c35debfb6cea0777f160a8eb76bfe238fa449","ref":"refs/heads/main","pushedAt":"2024-07-05T07:10:16.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Merge pull request #1165 from basecamp/bug+safari-autocomplete\n\nFix problem with iOS beta 8 suggestions","shortMessageHtmlLink":"Merge pull request #1165 from basecamp/bug+safari-autocomplete"}},{"before":"c3494897e8a7ee14d7560c52dc414250370cc0b1","after":"2f8c5eba16be6c5d47de166d1b6fabec71620298","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-06-26T14:57:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Fix problem with iOS beta 8 suggestions\n\niOS beta 8 renders a preview of the suggestion that messes up with text composing in Trix. You may end\nup with misspelled words when typing in the suggested term. For example:\n\n1. Type: \"kno\".\n2. iOS suggests \"know\".\n3. Type: \"w\"\n4. The final word is \"knww\".\n\nThe problem is the system that handles compositionend events, which relies on deleting the composed text.\nWhen that only has one character, we default to performing a regular delete operation. The problem\n with the new iOS dimmed suggestions is that this matches the interaction of typing in the last character\n in a suggestion, and it results in Trix wrongly deleting legit content when discarding the suggestion.\n\nThis solution relaxes the condition to rely on the range when there is a length of one when the editor\nis in composing mode.","shortMessageHtmlLink":"Fix problem with iOS beta 8 suggestions"}},{"before":"54fedcf4c37faeb22cbdfc52383f895b5482e6bf","after":"c3494897e8a7ee14d7560c52dc414250370cc0b1","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-06-26T14:57:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Fix problem with iOS beta 8 suggestions\n\niOS beta 8 renders a preview of the suggestion that messes up with text composing in Trix. You may end\nup with misspelled words when typing in the suggested term. For example:\n\nType: \"kno\".\niOS suggests \"know\".\nType: \"w\"\nThe final word is \"knww\".\n\nThe problem is the system that handles compositionend events, which relies on deleting the composed text.\nWhen that only has one character, we default to performing a regular delete operation. The problem\n with the new iOS dimmed suggestions is that this matches the interaction of typing in the last character\n in a suggestion, and it results in Trix wrongly deleting legit content when discarding the suggestion.\n\nThis solution relaxes the condition to rely on the range when there is a length of one when the editor\nis in composing mode.","shortMessageHtmlLink":"Fix problem with iOS beta 8 suggestions"}},{"before":"91aa8a5b2e61a5754cd91f8c5722b0e8f97e840c","after":"54fedcf4c37faeb22cbdfc52383f895b5482e6bf","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-06-26T14:54:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Fix problem with iOS beta 8 suggestions\n\niOS beta 8 renders a preview of the suggestion that was messing up with text composing in Trix.\n\nThe problem is that the system to handle \"compositionend\" events, which relies on deleting\nthe composed text. When that only has one character we default to perform a regular delete. The problem\nwith the new iOS dimmed suggestions is that this matches the interaction of typing in the last character\n in a suggestion, and it results in Trix wrong deleting legit content when discarding the suggestion.\n\nThis solution relaxes the condition to rely on the range when there is has a length of 1 when the editor is in\ncomposing mode.","shortMessageHtmlLink":"Fix problem with iOS beta 8 suggestions"}},{"before":"88333dabaf2c1acb82c8342975c093bbb7b1eca6","after":"91aa8a5b2e61a5754cd91f8c5722b0e8f97e840c","ref":"refs/heads/bug+safari-autocomplete","pushedAt":"2024-06-26T14:53:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jorgemanrubia","name":"Jorge Manrubia","path":"/jorgemanrubia","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/129938?s=80&v=4"},"commit":{"message":"Fix problem with iOS beta 8 suggestions\n\niOS beta 8 renders a preview of the suggestion that was messing up with text composing in Trix.\n\nThe problem is that the system to handle \"compositionend\" events, which relies on deleting\nthe composed text. When that only has one character we default to perform a regular delete. The problem\nwith the new iOS dimmed suggestions is that this matches the interaction of typing in the last character\n in a suggestion, and it results in Trix wrong deleting legit content when discarding the suggestion.\n\nThis solution relaxes the condition to rely on the range when there is has a length of 1 when the editor is in\ncomposing mode.","shortMessageHtmlLink":"Fix problem with iOS beta 8 suggestions"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wOFQwODoxNDowMC4wMDAwMDBazwAAAASU_SMC","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0wOFQwODoxNDowMC4wMDAwMDBazwAAAASU_SMC","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0yNlQxNDo1Mzo1MC4wMDAwMDBazwAAAARv3HAM"}},"title":"Activity ยท basecamp/trix"}