{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":696950547,"defaultBranch":"main","name":"harmony","ownerLogin":"kellnerd","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-09-26T18:40:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/52860029?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1721759286.0","currentOid":""},"activityList":{"items":[{"before":"2db91de5b61fc64ca3205da2d4d62b1869f2775a","after":"1744a1a87ee8a8f8a0a59cbf8208e8f01ee9bae0","ref":"refs/heads/main","pushedAt":"2024-07-23T18:28:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"fix(util): Extract HTML data attributes with newline characters\n\nWhile HTML attributes can not contain unescaped CR and LF characters,\nthey may contain Unicode characters which are considered newline\ncharacters by RegExp, such as LS (U+2028).\n\nExample that contains a random LS character which breaks data extraction:\nhttps://dinrecords.bandcamp.com/album/tone-science-module-no-9-theories-and-conjectures-din-ts09","shortMessageHtmlLink":"fix(util): Extract HTML data attributes with newline characters"}},{"before":"0102dcfd944777b42595eaa9d666d0594c33602c","after":"2db91de5b61fc64ca3205da2d4d62b1869f2775a","ref":"refs/heads/main","pushedAt":"2024-07-11T16:57:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"chore(deps): Update snap-storage to v0.6.2\n\nThe new version optimizes the SQLite DB to improve cache performance.\nThis should speedup cached lookups significantly for large caches.","shortMessageHtmlLink":"chore(deps): Update snap-storage to v0.6.2"}},{"before":"3037dfcdaa2b64da9dd8f09a79162515acf31ba4","after":"2db91de5b61fc64ca3205da2d4d62b1869f2775a","ref":"refs/heads/dev","pushedAt":"2024-07-11T16:47:37.000Z","pushType":"push","commitsCount":26,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"chore(deps): Update snap-storage to v0.6.2\n\nThe new version optimizes the SQLite DB to improve cache performance.\nThis should speedup cached lookups significantly for large caches.","shortMessageHtmlLink":"chore(deps): Update snap-storage to v0.6.2"}},{"before":"4702fcb33183131823dd5620ca9925cf7990e319","after":"0102dcfd944777b42595eaa9d666d0594c33602c","ref":"refs/heads/main","pushedAt":"2024-07-09T08:36:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(Tidal): format textual copyright symbols as © or ℗\n\nAdd a utility function formatCopyrightSymbols to handle this and use\nit also in the Spotify implementation.","shortMessageHtmlLink":"feat(Tidal): format textual copyright symbols as © or ℗"}},{"before":"db4e0ef2caf604ce99ce6695ccb48be1f685ae19","after":"4702fcb33183131823dd5620ca9925cf7990e319","ref":"refs/heads/main","pushedAt":"2024-07-08T20:42:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(Deezer): Fail lookups for which the API returns a wrong ID or GTIN\n\nDeezer recently changed the behavior of their API to return only\nreleases which are available in the client's region (as it seems).","shortMessageHtmlLink":"feat(Deezer): Fail lookups for which the API returns a wrong ID or GTIN"}},{"before":"dfdffd425cdc21820640f06cb4292cff5c021300","after":"db4e0ef2caf604ce99ce6695ccb48be1f685ae19","ref":"refs/heads/main","pushedAt":"2024-07-08T19:58:41.000Z","pushType":"push","commitsCount":19,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"refactor(harmony): sort and merge all release types in one step\n\nAvoids merging and sorting the types multiple times.","shortMessageHtmlLink":"refactor(harmony): sort and merge all release types in one step"}},{"before":"2677b82e11e27da1e9bfac82047410c327d46b25","after":"2281222d3bf99c40c6a0807a13c50edd54fa37eb","ref":"refs/heads/musicbrainz-provider","pushedAt":"2024-07-06T17:16:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(provider): Define default link types for each provider","shortMessageHtmlLink":"feat(provider): Define default link types for each provider"}},{"before":"e0c936dcaba5449bef440c9e7a1f376579c7d0a5","after":"2677b82e11e27da1e9bfac82047410c327d46b25","ref":"refs/heads/musicbrainz-provider","pushedAt":"2024-07-02T12:05:34.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"chore: Update spell checker dictionary","shortMessageHtmlLink":"chore: Update spell checker dictionary"}},{"before":null,"after":"e0c936dcaba5449bef440c9e7a1f376579c7d0a5","ref":"refs/heads/musicbrainz-provider","pushedAt":"2024-06-28T15:31:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"doc: Add hint about merge algorithm for new release and track properties\n\nI already forgot to do this twice and had been wondering why the props\nwere missing from the seed...","shortMessageHtmlLink":"doc: Add hint about merge algorithm for new release and track properties"}},{"before":"011bfbc1e2b6ce65ff09b27772b217ee137c23e4","after":"dfdffd425cdc21820640f06cb4292cff5c021300","ref":"refs/heads/main","pushedAt":"2024-06-23T18:03:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(mb): Ignore excluded regions which are boycotted for XW check","shortMessageHtmlLink":"feat(mb): Ignore excluded regions which are boycotted for XW check"}},{"before":"3037dfcdaa2b64da9dd8f09a79162515acf31ba4","after":"011bfbc1e2b6ce65ff09b27772b217ee137c23e4","ref":"refs/heads/main","pushedAt":"2024-06-22T18:56:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"style(web): Reword release action \"Open in MusicBrainz\"","shortMessageHtmlLink":"style(web): Reword release action \"Open in MusicBrainz\""}},{"before":"23b7da23d2a1176f3fe5909dec031ded5cf0add9","after":"3037dfcdaa2b64da9dd8f09a79162515acf31ba4","ref":"refs/heads/main","pushedAt":"2024-06-22T18:44:04.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(web): Drop `target='_blank'` from all external links\n\nThere are few good reasons (like interrupted playback, or loss of state)\nto enforce links to open in a new tab, none of them apply to Harmony.\nA user can still decide to open links in new tabs, forcing them to open\nin the same tab is not easy when `target='_blank'` is present.\n\nPreviously Harmony's external links were not even consistently using it.","shortMessageHtmlLink":"feat(web): Drop target='_blank' from all external links"}},{"before":"3d2ec4f7d7ae4999330f35107e53550715b6f59c","after":"3037dfcdaa2b64da9dd8f09a79162515acf31ba4","ref":"refs/heads/dev","pushedAt":"2024-06-22T18:32:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(web): Drop `target='_blank'` from all external links\n\nThere are few good reasons (like interrupted playback, or loss of state)\nto enforce links to open in a new tab, none of them apply to Harmony.\nA user can still decide to open links in new tabs, forcing them to open\nin the same tab is not easy when `target='_blank'` is present.\n\nPreviously Harmony's external links were not even consistently using it.","shortMessageHtmlLink":"feat(web): Drop target='_blank' from all external links"}},{"before":"a6c65949c6cff0e6359ead85284d4454e068d72c","after":"3d2ec4f7d7ae4999330f35107e53550715b6f59c","ref":"refs/heads/dev","pushedAt":"2024-06-22T15:59:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(web): Drop `target='_blank'` from all external links\n\nThere are few good reasons (like interrupted playback, or loss of state)\nto enforce links to open in a new tab, none of them apply to Harmony.\nA user can still decide to open links in new tabs, forcing them to open\nin the same tab is not easy when `target='_blank'` is present.\n\nPreviously Harmony's external links were not even consistently using it.","shortMessageHtmlLink":"feat(web): Drop target='_blank' from all external links"}},{"before":"536bc325b9967615ae630d569b1799229d4eb759","after":"a6c65949c6cff0e6359ead85284d4454e068d72c","ref":"refs/heads/dev","pushedAt":"2024-06-22T15:35:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(Bandcamp): Warn about digital GTIN which belongs to a package","shortMessageHtmlLink":"feat(Bandcamp): Warn about digital GTIN which belongs to a package"}},{"before":"36b8d28676c1e6ccb46469cbf0a6273dfda7f3b3","after":"536bc325b9967615ae630d569b1799229d4eb759","ref":"refs/heads/dev","pushedAt":"2024-06-22T15:10:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"fix(Bandcamp): Treat \"name your price\" releases as both free and paid","shortMessageHtmlLink":"fix(Bandcamp): Treat \"name your price\" releases as both free and paid"}},{"before":"2efee6271d2e8fb274c7c256b06d0e1796f08a4c","after":"23b7da23d2a1176f3fe5909dec031ded5cf0add9","ref":"refs/heads/main","pushedAt":"2024-06-12T11:42:41.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"fix(iTunes): Accept literal \"id\" prefix before the actual numeric ID\n\nIt should only be present for the legacy itunes subdomain, but it does\nnot hurt to generally accept it.","shortMessageHtmlLink":"fix(iTunes): Accept literal \"id\" prefix before the actual numeric ID"}},{"before":"4828e2c65fb86f591b4838b15e9bcc090ed6cbae","after":"2efee6271d2e8fb274c7c256b06d0e1796f08a4c","ref":"refs/heads/main","pushedAt":"2024-06-11T21:04:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(Tidal): Support listen.tidal.com URLs","shortMessageHtmlLink":"feat(Tidal): Support listen.tidal.com URLs"}},{"before":"a914df7dad6ebbe98297c12aa6d58018bf55a313","after":null,"ref":"refs/tags/v0.0.3","pushedAt":"2024-06-11T19:25:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"atj","name":"Adam James","path":"/atj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59319?s=80&v=4"}},{"before":"bfc8c3f54d95f1a2474774c8f6de3734728e57dc","after":null,"ref":"refs/tags/v0.0.2","pushedAt":"2024-06-11T19:25:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"atj","name":"Adam James","path":"/atj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59319?s=80&v=4"}},{"before":"537feb1faa7750bf1b70b6c2d6f807ce844e2d0e","after":null,"ref":"refs/tags/v0.0.1","pushedAt":"2024-06-11T19:25:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"atj","name":"Adam James","path":"/atj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59319?s=80&v=4"}},{"before":"1f525464bc5c578237653df323db502ebd0971b4","after":"4828e2c65fb86f591b4838b15e9bcc090ed6cbae","ref":"refs/heads/main","pushedAt":"2024-06-11T19:02:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(web): Display alternative copyright values","shortMessageHtmlLink":"feat(web): Display alternative copyright values"}},{"before":"0c9cd5f51a4fbf7cd60e08fdc94ec26f02206537","after":null,"ref":"refs/heads/limit-deploy-users","pushedAt":"2024-06-11T19:01:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"}},{"before":"0c9cd5f51a4fbf7cd60e08fdc94ec26f02206537","after":"1f525464bc5c578237653df323db502ebd0971b4","ref":"refs/heads/main","pushedAt":"2024-06-11T18:42:05.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(mb): Improve MBID resolving rate limit error message\n\nCatch the error as soon as possible and make it a warning only.\n\nThe rate limit error still kills all parallel MBID resolving attempts\nand their results are only available after a reload, but fixing this\nrequires fundamental design changes.","shortMessageHtmlLink":"feat(mb): Improve MBID resolving rate limit error message"}},{"before":"c7aa6149256ae83140cfecbf198b2a0f2ab2310f","after":"0c9cd5f51a4fbf7cd60e08fdc94ec26f02206537","ref":"refs/heads/main","pushedAt":"2024-06-11T16:39:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(ci): Limit users who can trigger the deploy job to those from a var","shortMessageHtmlLink":"feat(ci): Limit users who can trigger the deploy job to those from a var"}},{"before":null,"after":"0c9cd5f51a4fbf7cd60e08fdc94ec26f02206537","ref":"refs/heads/limit-deploy-users","pushedAt":"2024-06-11T16:29:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat(ci): Limit users who can trigger the deploy job to those from a var","shortMessageHtmlLink":"feat(ci): Limit users who can trigger the deploy job to those from a var"}},{"before":"9d5cc843604204add0f88d3efd4b6836419cea1c","after":"c7aa6149256ae83140cfecbf198b2a0f2ab2310f","ref":"refs/heads/main","pushedAt":"2024-06-11T14:15:24.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"chore(provider): Log whether response snapshots are fresh or old\n\nUseful to debug potential caching issues.","shortMessageHtmlLink":"chore(provider): Log whether response snapshots are fresh or old"}},{"before":"3ac4077484b13f0eb440cb27e41dc3edf0e6be72","after":"9d5cc843604204add0f88d3efd4b6836419cea1c","ref":"refs/heads/main","pushedAt":"2024-06-11T12:57:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"fix(utils): fix descriptions for label tests","shortMessageHtmlLink":"fix(utils): fix descriptions for label tests"}},{"before":"9bfea87ea5435434c4d3289ce488e4e09a261f82","after":"3ac4077484b13f0eb440cb27e41dc3edf0e6be72","ref":"refs/heads/main","pushedAt":"2024-06-11T12:41:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"feat: show a \"lookup\" link in multiple results warning","shortMessageHtmlLink":"feat: show a \"lookup\" link in multiple results warning"}},{"before":"58299596b1820a803455d4569782ffc0462cf11d","after":"9bfea87ea5435434c4d3289ce488e4e09a261f82","ref":"refs/heads/main","pushedAt":"2024-06-10T22:19:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kellnerd","name":"David Kellner","path":"/kellnerd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/52860029?s=80&v=4"},"commit":{"message":"fix(Tidal): fixed request error detection","shortMessageHtmlLink":"fix(Tidal): fixed request error detection"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEhyyrawA","startCursor":null,"endCursor":null}},"title":"Activity · kellnerd/harmony"}