{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":111653897,"defaultBranch":"main","name":"speedscope","ownerLogin":"jlfwong","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-11-22T08:01:13.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/150329?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1705082254.0","currentOid":""},"activityList":{"items":[{"before":"25f671e9d860fe2f480cf2559f37b4b9afb780ef","after":"d69f3d0eec29d1d1aeb725b97de3a5209f85447a","ref":"refs/heads/main","pushedAt":"2024-04-15T18:50:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Fix bug where import after error continues failing (#463)\n\nSteps to reproduce:\r\n1. Open https://www.speedscope.app/\r\n2. Try to import an invalid file such as [invalid.json](https://github.com/jlfwong/speedscope/files/14167326/invalid.json). The page says \"Something went wrong. Check the JS console for more details.\"\r\n3. Now try to import a valid file such as [simple.json](https://github.com/jlfwong/speedscope/files/14167335/simple.json). The page says \"Something went wrong. Check the JS console for more details.\" even though this second file is valid.\r\n\r\nExplanation of the fix (copied from the commit message):\r\n> We need to clear the error flag, otherwise once there is an error and we display \"Something went wrong\" we will keep displaying that forever even when the user imports a valid file.","shortMessageHtmlLink":"Fix bug where import after error continues failing (#463)"}},{"before":"0121cf93423033f41b42fc607ef076c7b8f8ac4e","after":"25f671e9d860fe2f480cf2559f37b4b9afb780ef","ref":"refs/heads/main","pushedAt":"2024-04-15T18:45:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Bundle the font (#472)\n\nFor performance, offline support and privacy.\r\n\r\nContinues from https://github.com/jlfwong/speedscope/pull/412","shortMessageHtmlLink":"Bundle the font (#472)"}},{"before":"68fd88ceaf93d89aa27f3f0a20a27c9cfdc015c5","after":"0121cf93423033f41b42fc607ef076c7b8f8ac4e","ref":"refs/heads/main","pushedAt":"2024-02-05T18:58:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Clarify specification of startValue in speedscope file format (#464)\n\nThe previous description (\"event values will be relative to this\r\nstartValue\") was ambiguous.\r\n\r\nSuppose the profile starts at wall time 1000ms and the first event is\r\nat wall time 1003ms.\r\n\r\nThe intention is that startValue should be set to 1000 and the \"at\"\r\nvalue of the event should be set to 1003. The viewer's time axis will\r\nstart at 0ms and the first event will be displayed at 3ms.\r\n\r\nBut the previous description could be incorrectly interpreted as\r\nsaying that the \"at\" value of the first event should be set to 3 (the\r\ntime relative to startValue, as opposed to the absolute wall time).\r\n\r\nClarify that \"relative\" is referring to how the viewer displays the\r\ndata, not about which values to store in the file.","shortMessageHtmlLink":"Clarify specification of startValue in speedscope file format (#464)"}},{"before":"ea58cf2a2a288a4b47261aa637d2d70d2d526bec","after":"9b5e600505bfedd3f43a33c1a4e3dd4fca749930","ref":"refs/heads/gh-pages","pushedAt":"2024-01-12T17:58:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Deploy speedscope-1.20.0.tgz","shortMessageHtmlLink":"Deploy speedscope-1.20.0.tgz"}},{"before":"a6d700194f987da0fe07cc43f6bb4dcb4ff3c65c","after":"68fd88ceaf93d89aa27f3f0a20a27c9cfdc015c5","ref":"refs/heads/main","pushedAt":"2024-01-12T17:57:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"1.20.0","shortMessageHtmlLink":"1.20.0"}},{"before":"a3c0b15935fe125130ef371ec79dbe1c5e744b63","after":"a6d700194f987da0fe07cc43f6bb4dcb4ff3c65c","ref":"refs/heads/main","pushedAt":"2024-01-03T21:04:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Partition based on samples instead of traceEvents when importing a sample-based chrome trace (#460)\n\nIn the existing code, if `traceEvents` did not have any importable events, the profile would be marked as empty. This was a bug, as the dev Hermes profiles I was testing with had one X event which made the code work. However we do not need to guarantee (and the spec doesn't seem to) any traceEvents being present as long as we have samples and stack frames. \r\n\r\nWhen I tested a production profile taken from Hermes it did not have any importable events, just a metadata event with a thread name. This PR updates the implementation to iterate over partitioned samples instead of traceEvents so we construct profiles for all thread + process pairs referenced in the samples array.\r\n\r\n| Before | After |\r\n| --- | ----- |\r\n| \"Screenshot | \"Screenshot |","shortMessageHtmlLink":"Partition based on samples instead of traceEvents when importing a sa…"}},{"before":"3708b2e0869e81c22924108199df50c59b25d3aa","after":"ea58cf2a2a288a4b47261aa637d2d70d2d526bec","ref":"refs/heads/gh-pages","pushedAt":"2023-12-28T04:58:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Deploy speedscope-1.19.0.tgz","shortMessageHtmlLink":"Deploy speedscope-1.19.0.tgz"}},{"before":"e9a17d5d14af11a990e5e6bd2e8789f2d0a58472","after":"a3c0b15935fe125130ef371ec79dbe1c5e744b63","ref":"refs/heads/main","pushedAt":"2023-12-28T04:57:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"1.19.0","shortMessageHtmlLink":"1.19.0"}},{"before":"3f3da228534beef7c49e2ec38e54c3d31317e38d","after":"e9a17d5d14af11a990e5e6bd2e8789f2d0a58472","ref":"refs/heads/main","pushedAt":"2023-12-28T04:56:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Improve hermes profile frame keys to better group frames (#459)\n\nBecause all args are serialized in the key for hermes profiles, frames were not properly getting grouped since the \"parent\" property was different. This PR ensures that the frame key is properly constructed from the function name, file name, line + column number.\r\n\r\n| Before | After |\r\n| ----- | ----- |\r\n| \"Screenshot | \"Screenshot |\r\n| \"Screenshot | \"Screenshot |","shortMessageHtmlLink":"Improve hermes profile frame keys to better group frames (#459)"}},{"before":"bea0ef6913fc9a9947f90923acc2a07da880411a","after":"3f3da228534beef7c49e2ec38e54c3d31317e38d","ref":"refs/heads/main","pushedAt":"2023-12-27T15:48:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Update README.md\n\n- Add link to Hermes import instructions\r\n- Re-order import sources higher in the list\r\n- Update first line","shortMessageHtmlLink":"Update README.md"}},{"before":"b56f1f7b8ef517c4f31bbfcdd46073fda918f61d","after":"3708b2e0869e81c22924108199df50c59b25d3aa","ref":"refs/heads/gh-pages","pushedAt":"2023-12-26T22:14:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Deploy speedscope-1.18.0.tgz","shortMessageHtmlLink":"Deploy speedscope-1.18.0.tgz"}},{"before":"4feb1e564d1f9a7ba2d58a527e8920f2074de524","after":"bea0ef6913fc9a9947f90923acc2a07da880411a","ref":"refs/heads/main","pushedAt":"2023-12-26T22:13:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"1.18.0","shortMessageHtmlLink":"1.18.0"}},{"before":"88f4fe610598d9dd51a97c21b632bfca58a6cd15","after":"4feb1e564d1f9a7ba2d58a527e8920f2074de524","ref":"refs/heads/main","pushedAt":"2023-12-26T22:00:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Add hermes-specific support for the trace event format (#458)\n\nProfiles that are transformed into the hermes trace event format are guaranteed to have specific arguments that supply metadata that is useful for debugging - namely the filename, line + col number that the function call originated from, with sourcemaps applied. This PR adds specific support for this information to the trace event importer. This means that we can have the Frame name be just the name of the function, since we know all the information we want to be displayed in the UI is captured in the frame info, which makes the traces cleaner to look at.\r\n\r\n| Before | After |\r\n|-----|-----|\r\n| \"Screenshot | \"Screenshot |\r\n| \"Screenshot | \"Screenshot |","shortMessageHtmlLink":"Add hermes-specific support for the trace event format (#458)"}},{"before":"7bbc0c3843370fb47b5fb9a3a322dfaba479fff5","after":null,"ref":"refs/heads/jlfwong/update-publish-instructions","pushedAt":"2023-12-26T03:52:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"}},{"before":"60f1812e510235da47ea71d58fb23f022dced7de","after":"88f4fe610598d9dd51a97c21b632bfca58a6cd15","ref":"refs/heads/main","pushedAt":"2023-12-26T03:52:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Update README-ADMINS.md with npm login instructions (#457)","shortMessageHtmlLink":"Update README-ADMINS.md with npm login instructions (#457)"}},{"before":null,"after":"7bbc0c3843370fb47b5fb9a3a322dfaba479fff5","ref":"refs/heads/jlfwong/update-publish-instructions","pushedAt":"2023-12-26T03:50:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Update README-ADMINS.md with npm login instructions","shortMessageHtmlLink":"Update README-ADMINS.md with npm login instructions"}},{"before":"e2675c1c281b12ac6586c352044107221fed6ce0","after":"b56f1f7b8ef517c4f31bbfcdd46073fda918f61d","ref":"refs/heads/gh-pages","pushedAt":"2023-12-26T03:47:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Deploy speedscope-1.17.0.tgz","shortMessageHtmlLink":"Deploy speedscope-1.17.0.tgz"}},{"before":"1717fecafb2b6ea45e6ab46e6148a701224458ed","after":"60f1812e510235da47ea71d58fb23f022dced7de","ref":"refs/heads/main","pushedAt":"2023-12-26T03:40:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"1.17.0","shortMessageHtmlLink":"1.17.0"}},{"before":"48ab2cae21eab1b1e25750708126530ca669fc95","after":null,"ref":"refs/heads/jlfwong/bump-eslint-plugins","pushedAt":"2023-12-26T03:37:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"}},{"before":"c296f530c76dd88103d7860de687879c10fad948","after":"1717fecafb2b6ea45e6ab46e6148a701224458ed","ref":"refs/heads/main","pushedAt":"2023-12-26T03:37:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Upgrade prettier, update prettier & react-hooks eslint plugins (#456)\n\nRe-ran prettier with latest version","shortMessageHtmlLink":"Upgrade prettier, update prettier & react-hooks eslint plugins (#456)"}},{"before":null,"after":"48ab2cae21eab1b1e25750708126530ca669fc95","ref":"refs/heads/jlfwong/bump-eslint-plugins","pushedAt":"2023-12-26T03:35:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Re-run prettier","shortMessageHtmlLink":"Re-run prettier"}},{"before":"2f2a82df0fb931ded1b610d4ac66cf7e0c452e31","after":null,"ref":"refs/heads/jlfwong/upgrade-typescript","pushedAt":"2023-12-26T03:23:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"}},{"before":"8e0fa58d65ca0c77a860ac73d746464285246513","after":"c296f530c76dd88103d7860de687879c10fad948","ref":"refs/heads/main","pushedAt":"2023-12-26T03:23:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Upgrade typescript & eslint to latest, fix resulting errors (#455)\n\nAlso updated the ci.yml node test versions to 18.x and 20.x, given current support: https://endoflife.date/nodejs","shortMessageHtmlLink":"Upgrade typescript & eslint to latest, fix resulting errors (#455)"}},{"before":"4f64c3286f8245150e668eaf495a7dc9198e3ab3","after":"2f2a82df0fb931ded1b610d4ac66cf7e0c452e31","ref":"refs/heads/jlfwong/upgrade-typescript","pushedAt":"2023-12-26T03:19:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Bump supported node versions in ci.yml","shortMessageHtmlLink":"Bump supported node versions in ci.yml"}},{"before":"812c6ab127e06dbc6bd86d2e7ec8d45dac2461e2","after":"4f64c3286f8245150e668eaf495a7dc9198e3ab3","ref":"refs/heads/jlfwong/upgrade-typescript","pushedAt":"2023-12-26T03:07:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Upgrade eslint and typescript-eslint-parser","shortMessageHtmlLink":"Upgrade eslint and typescript-eslint-parser"}},{"before":null,"after":"812c6ab127e06dbc6bd86d2e7ec8d45dac2461e2","ref":"refs/heads/jlfwong/upgrade-typescript","pushedAt":"2023-12-26T02:58:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Workaround bug in TypeScript reachability analysis","shortMessageHtmlLink":"Workaround bug in TypeScript reachability analysis"}},{"before":"99b8356b47c72fd1f8f43121b4b43ba8a0d66526","after":null,"ref":"refs/heads/jlfwong/prettier-test","pushedAt":"2023-12-26T02:23:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"}},{"before":"b21480494ea076bee0d4372b28a2d0e20c8946c1","after":"8e0fa58d65ca0c77a860ac73d746464285246513","ref":"refs/heads/main","pushedAt":"2023-12-26T02:22:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Re-enable eslint prettier rule after being accidentally disabled for 3 years (#454)\n\nIt looks like in #267 (which was 3 years ago!), I accidentally disabled prettier linting altogether 😱\r\n\r\nhttps://github.com/jlfwong/speedscope/pull/267/files#diff-e2954b558f2aa82baff0e30964490d12942e0e251c1aa56c3294de6ec67b7cf5\r\n\r\nThere's no comment in that PR about this being an intentional thing, so I have to assume this was a dumb mistake.","shortMessageHtmlLink":"Re-enable eslint prettier rule after being accidentally disabled for …"}},{"before":"3bd26e802617f948c3f69db48ce2bfbaee0e13e5","after":"99b8356b47c72fd1f8f43121b4b43ba8a0d66526","ref":"refs/heads/jlfwong/prettier-test","pushedAt":"2023-12-26T02:20:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Run prettier","shortMessageHtmlLink":"Run prettier"}},{"before":"fca306d536365d2fd1bbb9b4f17319f717d80391","after":"3bd26e802617f948c3f69db48ce2bfbaee0e13e5","ref":"refs/heads/jlfwong/prettier-test","pushedAt":"2023-12-26T02:12:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jlfwong","name":"Jamie Wong","path":"/jlfwong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/150329?s=80&v=4"},"commit":{"message":"Re-enable prettier lint rule","shortMessageHtmlLink":"Re-enable prettier lint rule"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEMULY2QA","startCursor":null,"endCursor":null}},"title":"Activity · jlfwong/speedscope"}