{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":10270250,"defaultBranch":"main","name":"react","ownerLogin":"facebook","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-05-24T16:15:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/69631?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726696008.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"b59c7b015f989cf463eedcc42bd3755cfe107c67","ref":"refs/heads/dependabot/npm_and_yarn/fixtures/flight-esm/body-parser-1.20.3","pushedAt":"2024-09-18T21:46:48.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 body-parser from 1.20.2 to 1.20.3 in /fixtures/flight-esm\n\nBumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3.\n- [Release notes](https://github.com/expressjs/body-parser/releases)\n- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)\n- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)\n\n---\nupdated-dependencies:\n- dependency-name: body-parser\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump body-parser from 1.20.2 to 1.20.3 in /fixtures/flight-esm"}},{"before":"09d82835993b16cd5dc8350c03627f9573354a25","after":"e72127a4ec6f91288e9008711215068823100599","ref":"refs/heads/main","pushedAt":"2024-09-18T21:44:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yungsters","name":"Timothy Yung","path":"/yungsters","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55161?s=80&v=4"},"commit":{"message":"Build `react-dom` in `builds/facebook-fbsource` (#30711)\n\n## Summary\r\n\r\nBuilds `react-dom` for React Native so that it also populates the\r\n`builds/facebook-fbsource` branch.\r\n\r\n**NOTE:** For Meta employees, D61354219 is the internal integration.\r\n\r\n## How did you test this change?\r\n\r\n```\r\n$ yarn build\r\n…\r\n$ ls build/facebook-react-native/react-dom/cjs\r\nReactDOM-dev.js ReactDOM-prod.js ReactDOM-profiling.js\r\n```","shortMessageHtmlLink":"Build react-dom in builds/facebook-fbsource (#30711)"}},{"before":"918b30cd6b81e54bc7aa85c5d51d3711a9f01b2c","after":"1ee1afd2e0ca0569565e06d7a50e15defca3ccb1","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T18:47:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[ez] Rewrite optional chaining and nullish coalescing syntax (#30982)\n\nRewrite `containerInfo?.ownerDocument?.defaultView ?? window` to instead\nuse a ternary.\n\nThis changes the compilation output (see [bundle changes from\n#30951](https://github.com/facebook/react/commit/d65fb06955e9f32e6a40d1c7177d77893dff95b9)).\n```js\n// compilation of containerInfo?.ownerDocument?.defaultView ?? window\nvar $jscomp$optchain$tmpm1756096108$1, $jscomp$nullish$tmp0;\ncontainerInfo =\n null !=\n ($jscomp$nullish$tmp0 =\n null == containerInfo\n ? void 0\n : null ==\n ($jscomp$optchain$tmpm1756096108$1 = containerInfo.ownerDocument)\n ? void 0\n : $jscomp$optchain$tmpm1756096108$1.defaultView)\n ? $jscomp$nullish$tmp0\n : window;\n\n// compilation of ternary expression\ncontainerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n```\n\nThis also reduces the number of no-op bundle syncs for Meta. Note that\nClosure compiler's `jscomp$optchain$tmp` identifiers change when\nwe rebuild (likely due to version number changes). See\n[workflow](https://github.com/facebook/react/actions/runs/10891164281/job/30221518374)\nfor a PR that was synced despite making no changes to the runtime.\n\nDiffTrain build for [09d82835993b16cd5dc8350c03627f9573354a25](https://github.com/facebook/react/commit/09d82835993b16cd5dc8350c03627f9573354a25)","shortMessageHtmlLink":"[ez] Rewrite optional chaining and nullish coalescing syntax (#30982)"}},{"before":"f2c57a31e9953b3889c56f68e129e67afca15d0e","after":"09d82835993b16cd5dc8350c03627f9573354a25","ref":"refs/heads/main","pushedAt":"2024-09-18T18:39:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mofeiZ","name":null,"path":"/mofeiZ","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34200447?s=80&v=4"},"commit":{"message":"[ez] Rewrite optional chaining and nullish coalescing syntax (#30982)\n\nRewrite `containerInfo?.ownerDocument?.defaultView ?? window` to instead\r\nuse a ternary.\r\n\r\nThis changes the compilation output (see [bundle changes from\r\n#30951](https://github.com/facebook/react/commit/d65fb06955e9f32e6a40d1c7177d77893dff95b9)).\r\n```js\r\n// compilation of containerInfo?.ownerDocument?.defaultView ?? window\r\nvar $jscomp$optchain$tmpm1756096108$1, $jscomp$nullish$tmp0;\r\ncontainerInfo =\r\n null !=\r\n ($jscomp$nullish$tmp0 =\r\n null == containerInfo\r\n ? void 0\r\n : null ==\r\n ($jscomp$optchain$tmpm1756096108$1 = containerInfo.ownerDocument)\r\n ? void 0\r\n : $jscomp$optchain$tmpm1756096108$1.defaultView)\r\n ? $jscomp$nullish$tmp0\r\n : window;\r\n\r\n// compilation of ternary expression\r\ncontainerInfo =\r\n null != containerInfo &&\r\n null != containerInfo.ownerDocument &&\r\n null != containerInfo.ownerDocument.defaultView\r\n ? containerInfo.ownerDocument.defaultView\r\n : window;\r\n```\r\n\r\nThis also reduces the number of no-op bundle syncs for Meta. Note that\r\nClosure compiler's `jscomp$optchain$tmp` identifiers change when\r\nwe rebuild (likely due to version number changes). See\r\n[workflow](https://github.com/facebook/react/actions/runs/10891164281/job/30221518374)\r\nfor a PR that was synced despite making no changes to the runtime.","shortMessageHtmlLink":"[ez] Rewrite optional chaining and nullish coalescing syntax (#30982)"}},{"before":"7ae2fa49c425e3943bcc26b1da78635ad0f042c0","after":"918b30cd6b81e54bc7aa85c5d51d3711a9f01b2c","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T17:38:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"chore: remove settings manager from react-devtools-core (#30986)\n\nStacked on https://github.com/facebook/react/pull/30636. See [this\ncommit](https://github.com/facebook/react/pull/30986/commits/20cec76c44f77e74b3a85225fecab5a431cd986f).\n\nThis has been only used for React Native and will be replaced by another\napproach (initialization via `installHook` call) in the next PR.\n\nDiffTrain build for [f2c57a31e9953b3889c56f68e129e67afca15d0e](https://github.com/facebook/react/commit/f2c57a31e9953b3889c56f68e129e67afca15d0e)","shortMessageHtmlLink":"chore: remove settings manager from react-devtools-core (#30986)"}},{"before":"7d2f2b9e0d7cd8dcc44d3755f36736c4a66a3b36","after":"7ae2fa49c425e3943bcc26b1da78635ad0f042c0","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T17:37:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"feat[react-devtools/extension]: use chrome.storage to persist settings across sessions (#30636)\n\nStacked on https://github.com/facebook/react/pull/30610 and whats under\nit. See [last\ncommit](https://github.com/facebook/react/pull/30636/commits/248ddba18608e1bb5ef14c823085a7ff9d7a54a3).\n\nNow, we are using\n[`chrome.storage`](https://developer.chrome.com/docs/extensions/reference/api/storage)\nto persist settings for the browser extension across different sessions.\nOnce settings are updated from the UI, the `Store` will emit\n`settingsUpdated` event, and we are going to persist them via\n`chrome.storage.local.set` in `main/index.js`.\n\nWhen hook is being injected, we are going to pass a `Promise`, which is\ngoing to be resolved after the settings are read from the storage via\n`chrome.storage.local.get` in `hookSettingsInjector.js`.\n\nDiffTrain build for [f37c7bc6539b4da38f7080b5486eb00bdb2c3237](https://github.com/facebook/react/commit/f37c7bc6539b4da38f7080b5486eb00bdb2c3237)","shortMessageHtmlLink":"feat[react-devtools/extension]: use chrome.storage to persist setting…"}},{"before":"f37c7bc6539b4da38f7080b5486eb00bdb2c3237","after":"f2c57a31e9953b3889c56f68e129e67afca15d0e","ref":"refs/heads/main","pushedAt":"2024-09-18T17:30:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"chore: remove settings manager from react-devtools-core (#30986)\n\nStacked on https://github.com/facebook/react/pull/30636. See [this\r\ncommit](https://github.com/facebook/react/pull/30986/commits/20cec76c44f77e74b3a85225fecab5a431cd986f).\r\n\r\nThis has been only used for React Native and will be replaced by another\r\napproach (initialization via `installHook` call) in the next PR.","shortMessageHtmlLink":"chore: remove settings manager from react-devtools-core (#30986)"}},{"before":"acd2b4fe5dfe7bc25ff1cad9c3e13ad0ad318a34","after":"7d2f2b9e0d7cd8dcc44d3755f36736c4a66a3b36","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T17:28:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"refactor[react-devtools]: propagate settings from global hook object to frontend (#30610)\n\nStacked on https://github.com/facebook/react/pull/30597 and whats under\nit. See [this\ncommit](https://github.com/facebook/react/pull/30610/commits/59b4efa72377bf62f5ec8c0e32e56902cf73fbd7).\n\nWith this change, the initial values for console patching settings are\npropagated from hook (which is the source of truth now, because of\nhttps://github.com/facebook/react/pull/30596) to the UI. Instead of\nreading from `localStorage` the frontend is now requesting it from the\nhook. This happens when settings modal is rendered, and wrapped in a\ntransition. Also, this is happening even if settings modal is not opened\nyet, so we have enough time to fetch this data without displaying loader\nor similar UI.\n\nDiffTrain build for [e33acfd67f0003272a9aec7a0725d19a429f2460](https://github.com/facebook/react/commit/e33acfd67f0003272a9aec7a0725d19a429f2460)","shortMessageHtmlLink":"refactor[react-devtools]: propagate settings from global hook object …"}},{"before":"8bc2b9c3f17972c6957430f084e49cb5dfcb93f3","after":"acd2b4fe5dfe7bc25ff1cad9c3e13ad0ad318a34","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T17:27:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"chore[react-devtools]: extract some utils into separate modules to unify implementations (#30597)\n\nStacked on https://github.com/facebook/react/pull/30596. See [this\ncommit](https://github.com/facebook/react/pull/30597/commits/4ba5e784bbfdcd69021e2d84c75ffe26fcb698f4).\n\nMoving `formatWithStyles` and `formatConsoleArguments` to its own\nmodules, so that we can finally have a single implementation for these\nand stop inlining them in RDT global hook object.\n\nDiffTrain build for [fce46066571e7bf3ab6ce5bfe5fd3a615e098421](https://github.com/facebook/react/commit/fce46066571e7bf3ab6ce5bfe5fd3a615e098421)","shortMessageHtmlLink":"chore[react-devtools]: extract some utils into separate modules to un…"}},{"before":"e33acfd67f0003272a9aec7a0725d19a429f2460","after":"f37c7bc6539b4da38f7080b5486eb00bdb2c3237","ref":"refs/heads/main","pushedAt":"2024-09-18T17:26:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"feat[react-devtools/extension]: use chrome.storage to persist settings across sessions (#30636)\n\nStacked on https://github.com/facebook/react/pull/30610 and whats under\r\nit. See [last\r\ncommit](https://github.com/facebook/react/pull/30636/commits/248ddba18608e1bb5ef14c823085a7ff9d7a54a3).\r\n\r\nNow, we are using\r\n[`chrome.storage`](https://developer.chrome.com/docs/extensions/reference/api/storage)\r\nto persist settings for the browser extension across different sessions.\r\nOnce settings are updated from the UI, the `Store` will emit\r\n`settingsUpdated` event, and we are going to persist them via\r\n`chrome.storage.local.set` in `main/index.js`.\r\n\r\nWhen hook is being injected, we are going to pass a `Promise`, which is\r\ngoing to be resolved after the settings are read from the storage via\r\n`chrome.storage.local.get` in `hookSettingsInjector.js`.","shortMessageHtmlLink":"feat[react-devtools/extension]: use chrome.storage to persist setting…"}},{"before":"fce46066571e7bf3ab6ce5bfe5fd3a615e098421","after":"e33acfd67f0003272a9aec7a0725d19a429f2460","ref":"refs/heads/main","pushedAt":"2024-09-18T17:19:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"refactor[react-devtools]: propagate settings from global hook object to frontend (#30610)\n\nStacked on https://github.com/facebook/react/pull/30597 and whats under\r\nit. See [this\r\ncommit](https://github.com/facebook/react/pull/30610/commits/59b4efa72377bf62f5ec8c0e32e56902cf73fbd7).\r\n\r\nWith this change, the initial values for console patching settings are\r\npropagated from hook (which is the source of truth now, because of\r\nhttps://github.com/facebook/react/pull/30596) to the UI. Instead of\r\nreading from `localStorage` the frontend is now requesting it from the\r\nhook. This happens when settings modal is rendered, and wrapped in a\r\ntransition. Also, this is happening even if settings modal is not opened\r\nyet, so we have enough time to fetch this data without displaying loader\r\nor similar UI.","shortMessageHtmlLink":"refactor[react-devtools]: propagate settings from global hook object …"}},{"before":"3cac0875dcd60b8db099d8fa671c5ad1f8f0ef23","after":"fce46066571e7bf3ab6ce5bfe5fd3a615e098421","ref":"refs/heads/main","pushedAt":"2024-09-18T17:16:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"chore[react-devtools]: extract some utils into separate modules to unify implementations (#30597)\n\nStacked on https://github.com/facebook/react/pull/30596. See [this\r\ncommit](https://github.com/facebook/react/pull/30597/commits/4ba5e784bbfdcd69021e2d84c75ffe26fcb698f4).\r\n\r\nMoving `formatWithStyles` and `formatConsoleArguments` to its own\r\nmodules, so that we can finally have a single implementation for these\r\nand stop inlining them in RDT global hook object.","shortMessageHtmlLink":"chore[react-devtools]: extract some utils into separate modules to un…"}},{"before":"b521ef8a2aaff61154e59f6d0d3791ee4dbe6395","after":"3cac0875dcd60b8db099d8fa671c5ad1f8f0ef23","ref":"refs/heads/main","pushedAt":"2024-09-18T17:12:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"refactor[react-devtools]: move console patching to global hook (#30596)\n\nStacked on https://github.com/facebook/react/pull/30566 and whats under\r\nit. See [this\r\ncommit](https://github.com/facebook/react/pull/30596/commits/374fd737e4b0b7028afb765838db7c0e22def865).\r\n\r\nIt is mostly copying code from one place to another and updating tests.\r\nWith these changes, for every console method that we patch, there is\r\ngoing to be a single applied patch:\r\n- For `error`, `warn`, and `trace` we are patching when hook is\r\ninstalled. This guarantees that component stacks are going to be\r\nappended even if browser DevTools are not opened. We pay some price for\r\nit, though: if user has browser DevTools closed and if at this point\r\nsome warning or error is emitted (logged), the next time user opens\r\nbrowser DevTools, they are going to see `hook.js` as the source frame.\r\nUnfortunately, ignore listing from source maps is not applied\r\nretroactively, and I don't know if its a bug or just a design\r\nlimitations. Once browser DevTools are opened, source maps will be\r\nloaded and ignore listing will be applied for all emitted logs in the\r\nfuture.\r\n- For `log`, `info`, `group`, `groupCollapsed` we are only patching when\r\nReact notifies React DevTools about running in StrictMode. We unpatch\r\nthe methods right after it.","shortMessageHtmlLink":"refactor[react-devtools]: move console patching to global hook (#30596)"}},{"before":"6f757075f06b81e6bd283659a558fdcba592cfcd","after":"8bc2b9c3f17972c6957430f084e49cb5dfcb93f3","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T17:09:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"refactor[react-devtools]: remove browserTheme from ConsolePatchSettings (#30566)\n\nStacked on https://github.com/facebook/react/pull/30564.\n\nWe are no longer using browser theme in our console patching, this was\nremoved in unification of console patching for strict mode, we started\nusing ansi escape symbols and forking based on browser theme is no\nlonger required - https://github.com/facebook/react/pull/29869\n\nThe real browser theme initialization for frontend is happening at the\nother place and is not affected:\n\nhttps://github.com/facebook/react/blob/40be968257a7a10a267210670103f20dd0429ef3/packages/react-devtools-shared/src/devtools/views/Settings/SettingsContext.js#L117-L120\n\nDiffTrain build for [b521ef8a2aaff61154e59f6d0d3791ee4dbe6395](https://github.com/facebook/react/commit/b521ef8a2aaff61154e59f6d0d3791ee4dbe6395)","shortMessageHtmlLink":"refactor[react-devtools]: remove browserTheme from ConsolePatchSettin…"}},{"before":"5e83d9ab3b3f88853591dff43cd70ee4e5c90c5d","after":"b521ef8a2aaff61154e59f6d0d3791ee4dbe6395","ref":"refs/heads/main","pushedAt":"2024-09-18T17:02:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"refactor[react-devtools]: remove browserTheme from ConsolePatchSettings (#30566)\n\nStacked on https://github.com/facebook/react/pull/30564.\r\n\r\nWe are no longer using browser theme in our console patching, this was\r\nremoved in unification of console patching for strict mode, we started\r\nusing ansi escape symbols and forking based on browser theme is no\r\nlonger required - https://github.com/facebook/react/pull/29869\r\n\r\nThe real browser theme initialization for frontend is happening at the\r\nother place and is not affected:\r\n\r\nhttps://github.com/facebook/react/blob/40be968257a7a10a267210670103f20dd0429ef3/packages/react-devtools-shared/src/devtools/views/Settings/SettingsContext.js#L117-L120","shortMessageHtmlLink":"refactor[react-devtools]: remove browserTheme from ConsolePatchSettin…"}},{"before":"c0925f3317683e2fc1ce6980b447e160ba4fd3fc","after":"6f757075f06b81e6bd283659a558fdcba592cfcd","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T16:44:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"feat[react-devtools]: add settings to global hook object (#30564)\n\nRight now we are patching console 2 times: when hook is installed\n(before page is loaded) and when backend is connected. Because of this,\neven if user had `appendComponentStack` setting enabled, all emitted\nerror and warning logs are not going to have component stacks appended.\nThey also won't have component stacks appended retroactively when user\nopens browser DevTools (this is when frontend is initialized and\nconnects to backend).\n\nThis behavior adds potential race conditions with LogBox in React\nNative, and also unpredictable to the user, because in order to get\ncomponent stacks logged you have to open browser DevTools, but by the\ntime you do it, error or warning log was already emitted.\n\nTo solve this, we are going to only patch console in the hook object,\nbecause it is guaranteed to load even before React. Settings are going\nto be synchronized with the hook via Bridge, and React DevTools Backend\nHost (React Native or browser extension shell) will be responsible for\npersisting these settings across the session, this is going to be\nimplemented in a separate PR.\n\nDiffTrain build for [5e83d9ab3b3f88853591dff43cd70ee4e5c90c5d](https://github.com/facebook/react/commit/5e83d9ab3b3f88853591dff43cd70ee4e5c90c5d)","shortMessageHtmlLink":"feat[react-devtools]: add settings to global hook object (#30564)"}},{"before":"5dcb009760160c085496e943f76090d98528f971","after":"5e83d9ab3b3f88853591dff43cd70ee4e5c90c5d","ref":"refs/heads/main","pushedAt":"2024-09-18T16:37:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hoxyq","name":"Ruslan Lesiutin","path":"/hoxyq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/28902667?s=80&v=4"},"commit":{"message":"feat[react-devtools]: add settings to global hook object (#30564)\n\nRight now we are patching console 2 times: when hook is installed\r\n(before page is loaded) and when backend is connected. Because of this,\r\neven if user had `appendComponentStack` setting enabled, all emitted\r\nerror and warning logs are not going to have component stacks appended.\r\nThey also won't have component stacks appended retroactively when user\r\nopens browser DevTools (this is when frontend is initialized and\r\nconnects to backend).\r\n\r\nThis behavior adds potential race conditions with LogBox in React\r\nNative, and also unpredictable to the user, because in order to get\r\ncomponent stacks logged you have to open browser DevTools, but by the\r\ntime you do it, error or warning log was already emitted.\r\n\r\nTo solve this, we are going to only patch console in the hook object,\r\nbecause it is guaranteed to load even before React. Settings are going\r\nto be synchronized with the hook via Bridge, and React DevTools Backend\r\nHost (React Native or browser extension shell) will be responsible for\r\npersisting these settings across the session, this is going to be\r\nimplemented in a separate PR.","shortMessageHtmlLink":"feat[react-devtools]: add settings to global hook object (#30564)"}},{"before":"a5e6d678ba7f43ab6fc3fc77d719bc747fa67fad","after":"c0925f3317683e2fc1ce6980b447e160ba4fd3fc","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-18T15:58:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[compiler] Add JSX inlining optimization (#30867)\n\nThis adds an `InlineJsxTransform` optimization pass, toggled by the\n`enableInlineJsxTransform` flag. When enabled, JSX will be transformed\ninto React Element object literals, preventing runtime overhead during\nelement creation.\n\nTODO:\n- [ ] Add conditionals to make transform PROD-only\n- [ ] Make the React element symbol configurable so this works with\nruntimes that support `react.element` or `react.transitional.element`\n- [ ] Look into additional optimization to pass props spread through\ndirectly if none of the properties are mutated\n\nDiffTrain build for [5dcb009760160c085496e943f76090d98528f971](https://github.com/facebook/react/commit/5dcb009760160c085496e943f76090d98528f971)","shortMessageHtmlLink":"[compiler] Add JSX inlining optimization (#30867)"}},{"before":"8dfbd16fce9077ab4e5fe85a7b86fa7c97a5ae04","after":"5dcb009760160c085496e943f76090d98528f971","ref":"refs/heads/main","pushedAt":"2024-09-18T15:51:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jackpope","name":"Jack Pope","path":"/jackpope","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8965173?s=80&v=4"},"commit":{"message":"[compiler] Add JSX inlining optimization (#30867)\n\nThis adds an `InlineJsxTransform` optimization pass, toggled by the\r\n`enableInlineJsxTransform` flag. When enabled, JSX will be transformed\r\ninto React Element object literals, preventing runtime overhead during\r\nelement creation.\r\n\r\nTODO:\r\n- [ ] Add conditionals to make transform PROD-only\r\n- [ ] Make the React element symbol configurable so this works with\r\nruntimes that support `react.element` or `react.transitional.element`\r\n- [ ] Look into additional optimization to pass props spread through\r\ndirectly if none of the properties are mutated","shortMessageHtmlLink":"[compiler] Add JSX inlining optimization (#30867)"}},{"before":"7b7ffbd4b5b0723f45f57a2a5e9e6f4e2630e932","after":"a5e6d678ba7f43ab6fc3fc77d719bc747fa67fad","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-17T20:43:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[Fiber] Color Performance Track Entries by Self Time (#30984)\n\nStacked on #30983.\n\nThis colors each component entry by its self time from light to dark\ndepending on how long it took. If it took longer than a cut off we color\nit red (the error color).\n\n\"Screenshot\n\nDiffTrain build for [8dfbd16fce9077ab4e5fe85a7b86fa7c97a5ae04](https://github.com/facebook/react/commit/8dfbd16fce9077ab4e5fe85a7b86fa7c97a5ae04)","shortMessageHtmlLink":"[Fiber] Color Performance Track Entries by Self Time (#30984)"}},{"before":"e1c20902c39d1dfe2649185622f2f21b526e2be2","after":"8dfbd16fce9077ab4e5fe85a7b86fa7c97a5ae04","ref":"refs/heads/main","pushedAt":"2024-09-17T20:36:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sebmarkbage","name":"Sebastian Markbåge","path":"/sebmarkbage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63648?s=80&v=4"},"commit":{"message":"[Fiber] Color Performance Track Entries by Self Time (#30984)\n\nStacked on #30983.\r\n\r\nThis colors each component entry by its self time from light to dark\r\ndepending on how long it took. If it took longer than a cut off we color\r\nit red (the error color).\r\n\r\n\"Screenshot","shortMessageHtmlLink":"[Fiber] Color Performance Track Entries by Self Time (#30984)"}},{"before":"2acc36c9536f7a8847db45b6f27cbbfb34a555a3","after":"7b7ffbd4b5b0723f45f57a2a5e9e6f4e2630e932","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-17T20:22:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[Fiber] Log Component Effects to Performance Track (#30983)\n\nStacked on #30981. Same as #30967 but for effects.\n\nThis logs a tree of components using `performance.measure()`.\n\nIn addition to the previous render phase this logs one tree for each\ncommit phase:\n\n- Mutation Phase\n- Layout Effect\n- Passive Unmounts\n- Passive Mounts\n\nI currently skip the Before Mutation phase since the snapshots are so\nunusual it's not worth creating trees for those.\n\nThe mechanism is that I reuse the timings we track for\n`enableProfilerCommitHooks`. I track first and last effect timestamp\nwithin each component subtree. Then on the way up do we log the entry.\nThis means that we don't include overhead to find our way down to a\ncomponent and that we don't need to add any additional overhead by\nreading timestamps.\n\nTo ensure that the entries get ordered correctly we need to ensure that\nthe start time of each parent is slightly before the inner one.\n\nDiffTrain build for [e1c20902c39d1dfe2649185622f2f21b526e2be2](https://github.com/facebook/react/commit/e1c20902c39d1dfe2649185622f2f21b526e2be2)","shortMessageHtmlLink":"[Fiber] Log Component Effects to Performance Track (#30983)"}},{"before":"15da9174518f18f82869767ebe2a21be2fc8bd90","after":"e1c20902c39d1dfe2649185622f2f21b526e2be2","ref":"refs/heads/main","pushedAt":"2024-09-17T20:14:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sebmarkbage","name":"Sebastian Markbåge","path":"/sebmarkbage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63648?s=80&v=4"},"commit":{"message":"[Fiber] Log Component Effects to Performance Track (#30983)\n\nStacked on #30981. Same as #30967 but for effects.\r\n\r\nThis logs a tree of components using `performance.measure()`.\r\n\r\nIn addition to the previous render phase this logs one tree for each\r\ncommit phase:\r\n\r\n- Mutation Phase\r\n- Layout Effect\r\n- Passive Unmounts\r\n- Passive Mounts\r\n\r\nI currently skip the Before Mutation phase since the snapshots are so\r\nunusual it's not worth creating trees for those.\r\n\r\nThe mechanism is that I reuse the timings we track for\r\n`enableProfilerCommitHooks`. I track first and last effect timestamp\r\nwithin each component subtree. Then on the way up do we log the entry.\r\nThis means that we don't include overhead to find our way down to a\r\ncomponent and that we don't need to add any additional overhead by\r\nreading timestamps.\r\n\r\nTo ensure that the entries get ordered correctly we need to ensure that\r\nthe start time of each parent is slightly before the inner one.","shortMessageHtmlLink":"[Fiber] Log Component Effects to Performance Track (#30983)"}},{"before":"e70db3db9ba915a4a183d228a84e1f63df4a18bf","after":"2acc36c9536f7a8847db45b6f27cbbfb34a555a3","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-17T19:32:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Don't read currentTransition back from internals (#30991)\n\nThis code is weird. It reads back the transition that it just set from\nthe shared internals. It's almost like it expects it to be a getter or\nsomething.\n\nThis avoids that and makes it consistent with what ReactFiberHooks\nalready does.\n\nDiffTrain build for [15da9174518f18f82869767ebe2a21be2fc8bd90](https://github.com/facebook/react/commit/15da9174518f18f82869767ebe2a21be2fc8bd90)","shortMessageHtmlLink":"Don't read currentTransition back from internals (#30991)"}},{"before":"f8e3da903bd45449b115163ac36c4cbe2cc3e28b","after":"304fbaee2bbfa773819b54ac8f38d5a5f68034e5","ref":"refs/heads/builds/facebook-fbsource","pushedAt":"2024-09-17T19:32:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Don't read currentTransition back from internals (#30991)\n\nThis code is weird. It reads back the transition that it just set from\nthe shared internals. It's almost like it expects it to be a getter or\nsomething.\n\nThis avoids that and makes it consistent with what ReactFiberHooks\nalready does.\n\nDiffTrain build for commit https://github.com/facebook/react/commit/15da9174518f18f82869767ebe2a21be2fc8bd90.","shortMessageHtmlLink":"Don't read currentTransition back from internals (#30991)"}},{"before":"4549be0f846e7df5a4eaabf06369d93bd120271e","after":"15da9174518f18f82869767ebe2a21be2fc8bd90","ref":"refs/heads/main","pushedAt":"2024-09-17T19:25:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sebmarkbage","name":"Sebastian Markbåge","path":"/sebmarkbage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63648?s=80&v=4"},"commit":{"message":"Don't read currentTransition back from internals (#30991)\n\nThis code is weird. It reads back the transition that it just set from\r\nthe shared internals. It's almost like it expects it to be a getter or\r\nsomething.\r\n\r\nThis avoids that and makes it consistent with what ReactFiberHooks\r\nalready does.","shortMessageHtmlLink":"Don't read currentTransition back from internals (#30991)"}},{"before":"905f7f3c7bad655f8a761395773e1b7a14c890c5","after":"e70db3db9ba915a4a183d228a84e1f63df4a18bf","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-17T19:19:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[Fiber] Optimize enableProfilerCommitHooks by Collecting Elapsed Effect Duration in Module Scope (#30981)\n\nStacked on #30979.\n\nThe problem with the previous approach is that it recursively walked the\ntree up to propagate the resulting time from recording a layout effect.\n\nInstead, we keep a running count of the effect duration on the module\nscope. Then we reset it when entering a nested Profiler and then we add\nits elapsed count when we exit the Profiler.\n\nThis also fixes a bug where we weren't previously including unmount\ntimes for some detached trees since they couldn't bubble up to find the\nprofiler.\n\nDiffTrain build for [4549be0f846e7df5a4eaabf06369d93bd120271e](https://github.com/facebook/react/commit/4549be0f846e7df5a4eaabf06369d93bd120271e)","shortMessageHtmlLink":"[Fiber] Optimize enableProfilerCommitHooks by Collecting Elapsed Effe…"}},{"before":"52878f5c6bb84a60927d521f24745ef42c550676","after":"f8e3da903bd45449b115163ac36c4cbe2cc3e28b","ref":"refs/heads/builds/facebook-fbsource","pushedAt":"2024-09-17T19:19:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[Fiber] Optimize enableProfilerCommitHooks by Collecting Elapsed Effect Duration in Module Scope (#30981)\n\nStacked on #30979.\n\nThe problem with the previous approach is that it recursively walked the\ntree up to propagate the resulting time from recording a layout effect.\n\nInstead, we keep a running count of the effect duration on the module\nscope. Then we reset it when entering a nested Profiler and then we add\nits elapsed count when we exit the Profiler.\n\nThis also fixes a bug where we weren't previously including unmount\ntimes for some detached trees since they couldn't bubble up to find the\nprofiler.\n\nDiffTrain build for commit https://github.com/facebook/react/commit/4549be0f846e7df5a4eaabf06369d93bd120271e.","shortMessageHtmlLink":"[Fiber] Optimize enableProfilerCommitHooks by Collecting Elapsed Effe…"}},{"before":"7b56a542987890f618eeda4e4906fbf1f1df2213","after":"4549be0f846e7df5a4eaabf06369d93bd120271e","ref":"refs/heads/main","pushedAt":"2024-09-17T19:12:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sebmarkbage","name":"Sebastian Markbåge","path":"/sebmarkbage","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63648?s=80&v=4"},"commit":{"message":"[Fiber] Optimize enableProfilerCommitHooks by Collecting Elapsed Effect Duration in Module Scope (#30981)\n\nStacked on #30979.\r\n\r\nThe problem with the previous approach is that it recursively walked the\r\ntree up to propagate the resulting time from recording a layout effect.\r\n\r\nInstead, we keep a running count of the effect duration on the module\r\nscope. Then we reset it when entering a nested Profiler and then we add\r\nits elapsed count when we exit the Profiler.\r\n\r\nThis also fixes a bug where we weren't previously including unmount\r\ntimes for some detached trees since they couldn't bubble up to find the\r\nprofiler.","shortMessageHtmlLink":"[Fiber] Optimize enableProfilerCommitHooks by Collecting Elapsed Effe…"}},{"before":"9901f5a09804bbc2b49dc920571ace5ad44dcc58","after":"905f7f3c7bad655f8a761395773e1b7a14c890c5","ref":"refs/heads/builds/facebook-www","pushedAt":"2024-09-17T18:13:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[compiler][playground] create playground API in pipeline, and allow spaces in pass names\n\nSummary:\n1. Minor refactor to provide a stable API for calling the compiler from the playground\n2. Allows spaces in pass names without breaking the appearance of the playground by replacing spaces with   in pass tabs\n\nghstack-source-id: 12a43ad86c16c0e21f3e6b4086d531cdefd893eb\nPull Request resolved: https://github.com/facebook/react/pull/30988\n\nDiffTrain build for [7b56a542987890f618eeda4e4906fbf1f1df2213](https://github.com/facebook/react/commit/7b56a542987890f618eeda4e4906fbf1f1df2213)","shortMessageHtmlLink":"[compiler][playground] create playground API in pipeline, and allow s…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQyMTo0Njo0OC4wMDAwMDBazwAAAAS6MO5V","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQyMTo0Njo0OC4wMDAwMDBazwAAAAS6MO5V","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xN1QxODoxMzoxNy4wMDAwMDBazwAAAAS42jCE"}},"title":"Activity · facebook/react"}