oldN	oldSha	oldSubject	finalPr	action	newSha(s)	newSubject(s)	notes
001	58528a7c37d3a4eea2874dbe1258c2626b88cd5e	chore(crypto): patch react-native-libsodium	PR01	pick	4fd3438312304518f3a5896a96883f340c12ecfa	chore(crypto): patch react-native-libsodium	cherry-pick (no edits).
002	552b8da0f62129749a8dd96bc7cfba125e51c1f6	test(deps): add @types/react-test-renderer	PR01	pick	002b5bdd4e26175de5c0717af38486b8118ba1c5	test(deps): add @types/react-test-renderer	cherry-pick (no edits).
003	017b15c07ad75413718d9e734b8f40f2ce738ce7	chore(config): harden app variant defaults	PR01	pick	4a05b3b6faf71aa7b652c9adb4068f4bb76d86f4	chore(config): harden app variant defaults	cherry-pick (no edits).
012	207ef1b2f57207ad67a08256a11b40863e9fba76	fix(dev): gate CLI detection logging	PR01	pick	527d958dd28832955a5930c8011ff04c77229d64	fix(dev): gate CLI detection logging	cherry-pick (no edits).
023	d97924f3ef398638746919a3fee3675b0a12cee6	chore(test): define __DEV__ for vitest	PR01	pick	397d4ce715af9326366ae6e14403c0762afd51a3	chore(test): define __DEV__ for vitest	cherry-pick (no edits).
044	cb11d4bdb25a6423f156dd0f9b859b5fbf603857	docs: add AGENTS.md symlink + update CLAUDE.md	PR01	pick	dde1cd4aa8422cd7be0f0e62f34ee7f00e3b3633	docs: add AGENTS.md symlink + update CLAUDE.md	cherry-pick (no edits).
046	ea2e4d19d63370180f5558093ab3df1b9fb2f75b	chore(deps): align react-test-renderer with react	PR01	pick	d06987ecfedc4c10f2e1329f24a1fb94d1b8b45b	chore(deps): align react-test-renderer with react	cherry-pick (no edits).
051	43f23f2f082e149eb2d5d29b43b5c7461eaa5e40	chore(format): replace stray tabs with spaces	PR01	drop-net-noop			Skipped: conflicts due to deleted files in upstream; formatting-only noise not worth resurrecting.
052	e1d55fdbd9ee31fb9bb80ce1a65643bef5890d44	fix(i18n): improve untranslated literal scan parsing	PR01	drop-net-noop			Skipped: target script path deleted upstream; likely superseded by upstream dev tooling.
108	f7db44dea4586a2a399e6765e31f8ad9d3f61475	docs: add AGENTS.md symlink	PR01	pick	7809e86f0ebd34541bb59e20e2ef06f92e46a422	docs: add AGENTS.md symlink	cherry-pick (no edits).
157	320a89e19ca060f23f67c0283cb075b1fd68635c	test(happy): run cli and server checks from root scripts	PR01	pick	7ef02fb2be31563f8bf5b2cfe4c2290d1b5e78f5	test(happy): run cli and server checks from root scripts	Resolved trivial conflict in root package.json (kept added scripts).
184	ac5bf2f3abfa54b992c42f7249084dab4424a4c7	test(happy-cli): reset modules for runtime override	PR01	drop-net-noop			Skipped: target test file deleted upstream; net-noise.
201	ce42bf56d7b682929ce1022293c8cbaa78918711	fix(web): correct libsodium wrapper typing	PR01	pick	2c2a0b0e3b83fb930bd13a8d0e39f97f5f31e8f0	fix(web): correct libsodium wrapper typing	Resolved conflict by taking the CJS-require + typed export variant.
202	f0417ca11ac5112ee9f9a38b6d0b3bdbf644749b	fix(web): keep libsodium wrapper namespace typing	PR01	pick	fcb5a992b6841c9e2b60c35c875d4b7c507e3b33	fix(web): keep libsodium wrapper namespace typing	cherry-pick (no edits).
207	61bf70183ebff64ec14716cee0ccf8c1b2a59ea4	test(cli): set DEBUG before importing logger	PR01	drop-net-noop			Skipped: target test file deleted upstream; net-noise.
250	0c3b41030bbc4a888e621a6b5787eaac4b581a59	Add Vitest stubs for Expo and React Native modules	PR01	squash-into	67323a48f4b922c0de096f70cdda8e9de49bcefe	test(expo-app): add Vitest stubs for Expo/RN modules	Squashed with old 262 into one final test-infra commit (conflicts resolved; final message rewritten).
262	2edc5305ca3fa26cd148a5ad9f775fd9d1f4eb41	expo-app(test): harden vitest stubs + unistyles typing	PR01	pick+amend	67323a48f4b922c0de096f70cdda8e9de49bcefe	test(expo-app): add Vitest stubs for Expo/RN modules	Combined with old 250 to represent final state; includes alias hardening, Unistyles typing, and hook-order regression test.
013	58a892d413d17670aa459491ca3e4c60024d894f	fix(command-palette): include navigate dependency	PR02	pick	ab906ce8c2f54d33a065b0d2de50c97947e82888	fix(command-palette): include navigate dependency	cherry-pick (no edits).
020	8d9f56e85e5a0abf2a7bdd9eec48c172dad5c110	refactor(ui): unify list selectors and modal primitives	PR02	split	798b923a7d746a87b64a4b07b87cd38f35b0087e,9d83a2f7709d3eacba1bf518f0624ecfc8bf8c1d,523f3364739c1cb58dadeb83dddc3a5177723f52	refactor(ui): add SearchHeader and harden SearchableListSelector; feat(ui): add row actions with overflow menu; refactor(modal): harden modal primitives and alert behavior	Split mega-commit; deferred wizard/profileSync deletions + list-helper hunks to later PR slices (PR26/PR08/PR38).
022	2d4675a5d051d623b18ca85f284e74c21197237d	fix(agent-input): use compact permission badges	PR02	pick+resolve	a45c277645bbc31264447df2e4e94759e75c3a93	fix(agent-input): use compact permission badges	Resolved conflict by computing compact label + rendering it on the settings chip; kept abort button behavior unchanged.
029	12e75a3b36fa49aa4d91cedd8464e8afcb65e2a8	fix(autocomplete): remove debug suggestion logs	PR02	pick	cc611ae6380441ac4ff0b0e3e25205ec0b1a0851	fix(autocomplete): remove debug suggestion logs	cherry-pick (no edits).
031	4dc9c7f8759c1f5f1713167ca0888b87463084b3	feat(agent-input): add configurable action bar layout	PR06	defer				Reordered/deferred: depends on settings schema keys from PR06 (`agentInputActionBarLayout`, `agentInputChipDensity`) and i18n.
032	e8e42a6087add8e0c3713980c9497c59e34a3fa9	fix(modal): prevent stacked modal touch-blocking on iOS	PR02	pick+resolve	13c93a68d12f696ce9d9a33a051ebae93e6b5f99	fix(modal): prevent stacked modal touch-blocking on iOS	Resolved conflict in `app/(app)/_layout.tsx` (kept containedModal presentation + explicit close button on iOS).
035	7ffd0c3428cbbceb7df39396142100da8fd4841d	fix(ui): localize error alerts	PR02	pick	fe7f66c9322c800dec0bf47588bc737ffb540583	fix(ui): localize error alerts	cherry-pick (no edits).
037	5f5b57df5181fdb2879d44c72e1d41b871c0e5ff	refactor(ui): improve item rendering and action menu timing	PR02	pick+amend	bf1a903583c9ad874bcc2eb2ad92e99166b7c9bd	refactor(ui): improve item subtitles and action menu timing	Kept Item subtitle ReactNode rendering + action menu timing + compact threshold + SessionsList cleanup; deferred ItemGroup selectable-count optimization to PR38 (current upstream ItemGroup lacks the selection context helpers).
039	6ed379f82c3497512316f23d15b2c2a0556a160e	refactor(ui): add modal + popover overlay primitives	PR02	split	3fb6ed4ed3e4722c4efe3cdaf4dcbf79b16381f8,c878a8d179e8726a9b8443c73ce0714a4a3e2658,6f27bb96cbc274222c9597965da2d9c3019353d8,94e484a350b1df43cdabca339a3a9d09e91a07d9,4da8e01c68437e2347bf0cf694303392b31f5671	feat(modal): add overlay portal and Radix-backed web modals; feat(popover): add Popover primitive with portal support; feat(ui): add FloatingOverlay edge fades and indicators; feat(ui): add ConnectionStatusControl popover menu; feat(agent-input): allow customizing autocomplete max height	Split by subsystem; deferred dropdown/selectable-row/command-palette refactors and other list primitives from old 039 to later PR slices (PR38).
050	2da2f9349ec5f50932cd3c2834c7b6c2fd0db16f	fix(popover): allow web fixed positioning types	PR02	pick	6dc0c2b7b10974394b2f25462d646f01d533f7cc	fix(popover): allow web fixed positioning types	cherry-pick (no edits).
055	2472b376775cf1ba60b0af98e7abcda7299defba	test(modal): make backdrop z-index assertion safer	PR02	pick	c6925f76fabd2469f39e43851f1e75fba47d540c	test(modal): make backdrop z-index assertion safer	cherry-pick (no edits).
059	f7f81497444d9547c9e077e3ad45c41a3293c2a2	fix(modal): prevent non-dismissible WebAlertModal	PR02	split	eefc1fcd10773b82649341456c22560b7c4aa7ec	fix(popover): measure DOM anchors on web and enable native portal	Kept popover + connection-status portal/test improvements in PR02; deferred unrelated new-session test mocking to PR26 (tracked in rewrite-deferred-fragments.tsv).
062	e533db1813a54a9f6901b133b10e6d848e091ac3	fix(popover): add screens cjs helper and fix fixed positioning types	PR02	pick+resolve	f8ed5c88d126c35536c2e90adaa8ddcee97795f2	fix(popover): add screens cjs helper and fix fixed positioning types	Resolved conflicts in Popover.tsx by using a typed fixed-position helper; added react-native-screens CJS helper.
054	66c6784513355e763d09dcfc530c09348c1c3a70	fix(ui): apply small review fixes	PR02	split-defer-all			No PR02-owned hunks remain after PR planning; deferred by hunk to PR28/PR26/PR18/PR38/PR06/PR27. See rewrite-deferred-fragments.tsv for exact paths/notes.
064	e5848c4805226e1c460df58717b182d25f06d504	fix(ui): harden overlays and permission cycling	PR02	split	37a65d0e981b8f4add787f43a1bfcba04451fb4e	fix(ui): harden overlay portals and iOS popover behavior	Applied PR02-owned overlay hardening (OverlayPortal store to prevent provider child rerenders, iOS FullWindowOverlay pointerEvents correctness, closeThen fallback + tests). Deferred new-session wizard wiring and final permission cycling reconciliation to PR26/PR10 (tracked in rewrite-deferred-fragments.tsv).
163	84df0d2605133a165a381dd6ae65507cfda23795	fix(expo-app): stabilize postinstall and libsodium patches	PR02	pick+resolve	554364de85d87920efb3c9fe10769ff6e273fe68	fix(expo-app): stabilize postinstall and libsodium patches	Cherry-picked with conflict resolved by keeping the existing web libsodium CJS import (avoids top-level-await issues); switched postinstall to a hoist-aware script; added libsodium-wrappers patch and removed obsolete RN libsodium patch; updated lockfile as needed.
248	bf3027799623c286fe138c7b69e140ea90fdfa48	Set EXPO_UNSTABLE_WEB_MODAL env var in Expo scripts	PR02	split	b8486137a83c72745e68564b20f2ac7a4d89490a	fix(expo-web): enable web modals and pin expo-router	Applied Expo-web modal plumbing + expo-router pin/patch/resolution. Deferred session-info (Codex session id gating) change to PR19 (tracked in rewrite-deferred-fragments.tsv).
249	c803115dcbdcd55c036e47c0f0cfd6e1bceb9f74	Improve postinstall script for symlinked paths and patching	PR02	pick	96a8c336d54e1fe44ff0165b66c2d33f8cfcdcd8	fix(expo): improve postinstall patching for hoisted and local deps	cherry-pick (no edits).
276	10dca4ca7057ad04c6d121110f7fd2f006a411bc	chore(expo): pin libsodium-wrappers and align patch-package dirs	PR02	pick	ad0c5ae9867ce4fc3593b0d30e87e2ea76e47795	chore(expo): pin libsodium-wrappers and align patch-package dirs	cherry-pick (no edits); supersedes earlier patch-dir split by co-locating expo-router patch under expo-app/patches and pinning libsodium-wrappers.
275	63cda8b20882dde5746e9f007b0866a0e39c3134	expo-app(ui): add list/pending primitives and polish	PR38	split	ed3de522739ed219b5d259aa49942ed4f615c022	feat(ui): add list primitives for selection menus	Extracted PR38-owned list primitives (ItemGroup divider/row-position helpers, selection context, SelectableRow, dropdown menu primitives + tests). Deferred the rest of old 275 (AgentInput refactors, pending queue UI, profiles changes, app shell polish, popover tweaks) via rewrite-deferred-fragments.tsv.
039	6ed379f82c3497512316f23d15b2c2a0556a160e	refactor(ui): add modal + popover overlay primitives	PR38	deferred-fragment	c429a8148e933dd754ba904510f8128a7bb9d068	refactor(ui): make command palette use SelectableRow	Applied the PR38-owned CommandPalette refactor fragments (SelectableRow-based items + localized empty state) after introducing SelectableRow in PR38.
039	6ed379f82c3497512316f23d15b2c2a0556a160e	refactor(ui): add modal + popover overlay primitives	PR38	deferred-fragment	7357579e594c84ca99cd56c791bb319831d8d5bb	refactor(ui): centralize item action types	Added shared `itemActions/types.ts` and re-exported from ItemActionsMenuModal to avoid duplicate ItemAction type definitions.
004	4890a471df312191ae325d5691b61231097df078	fix(auth): harden tokenStorage web persistence	PR04	pick	64cbe8634d0db65b24b20272a4ad9e3735b47212	fix(auth): harden tokenStorage web persistence	cherry-pick (no edits).
006	a5fbc3e8ba00ba0f41b9af18ca0c6296414f5533	feat(persistence): scope storage and validate draft modes	PR04	split	4bae1291fe99a8919da72e0d55e252830d0be4a4,150a12282ba957b74330a6c727c31627ad92afa4	feat(storage): add storage scoping helpers; feat(storage): scope native persistence by storage scope	Split old 006: extracted storageScope helpers + MMKV id scoping. Deferred draft/model-mode persistence hunks to PR05/PR28 (see rewrite-deferred-fragments.tsv).
156	8c16ee8f9cef04c3ae515ab2ebcb12b5ef317759	fix(auth): surface auth failures and gate unauth routes	PR04	pick	cc7d04e5e5777bee18db25aa1bc2fea70d248450	fix(auth): surface auth failures and gate unauth routes	cherry-pick (no edits).
177	893ce7af5df079be26925ff7a7c5baf6e9d35088	fix(expo-app): avoid hooks order violation on redirect	PR04	pick	e0f0fa69d440c7c3f2cc9b74b4ba9d1c8f8a6d36	fix(expo-app): avoid hooks order violation on redirect	cherry-pick (no edits).
256	5537815563059192774839feca13768250362b79	cli(auth): add --no-open to skip browser open	PR04	pick	9d308d09e6b78f9b6883c348f31456be7332c772	cli(auth): add --no-open to skip browser open	cherry-pick (no edits).
006	a5fbc3e8ba00ba0f41b9af18ca0c6296414f5533	feat(persistence): scope storage and validate draft modes	PR05	deferred-fragment	20a2d994fd2c3ca74f1ae82409db9913665640d3	fix(persistence): persist selectedProfileId and harden settings version	Applied PR05-owned draft persistence hardening + tests; left permission/model-mode clamps deferred to PR10/PR28 to avoid duplicating validation.
115	a8093e3e4ddb6ff974e69d8aa29fe43fce34dbad	docs(persistence): update profile schema version comment	PR05	pick+resolve	812e7842481298d86a53e80764d042caea347b2f	docs(persistence): update profile schema version comment	Resolved trivial conflict in cli/src/persistence.ts comment by keeping generic wording; content-only change.
011	c2d3507357dc7ef150105ff56468ec2f580943f6	fix(settings): make parsing tolerant for profiles	PR06	split	f212f57fab2715c28749a356a026cd175df56caa	fix(settings): make parsing tolerant for profiles	Applied tolerant parsing + legacy profile normalization; deferred sync convergence hunk in `expo-app/sources/sync/sync.ts` to PR27 (depends on replaceSettings).
024	9c19baa833b9e1875e6f5811440db6ff903e4d86	feat(settings): add api keys and experiment toggles	PR06	pick	463c97c3e42c8c046761a0e0c8390893c2460669	feat(settings): add api keys and experiment toggles	Applied settings schema + persistence for saved API keys and per-experiment toggles (includes resurrected/centralized `profileRouteParams.ts` usage).
025	21cc6df79f50cf13bfec4545c19b77034d3f3a4c	feat(api-keys): add saved API keys UI	PR06	pick+resolve	6012c889aeec3064ddc9aa7f2c4f4ace569f1a6b	feat(api-keys): add saved API keys UI	Applied API keys list/detail UI + selection wiring; resolved SettingsView conflicts by adding API keys nav + usage gating.
030	679877c26ea934a3d4c0ff9ba68072662af1dc48	feat(settings): expose per-experiment toggles	PR06	pick+resolve	724146cb5c765098f1fb253014cbf156a6fc5a1f	feat(settings): expose per-experiment toggles	Applied Settings UI for per-experiment toggles; resolved minor conflicts and removed now-unused `useProfiles` import to keep TS clean.
038	7976b877259cac770f41537f44fa70e54df721a2	feat(experiments): gate Zen, file viewer, and voice auth flow	PR06	split	62c43e4bffa6bdf05036baca27d0d5a9d82503af	feat(experiments): gate Zen, file viewer, and voice auth flow	Applied gating behavior for Zen/file viewer/voice auth; deferred Zen i18n literal replacements to PR06 follow-up (tracked in rewrite-deferred-fragments.tsv).
048	395da4ff31674675c93d443626d50d3baa3f99ed	refactor(zen): avoid todo variable shadowing	PR06	pick	f3aec2f5c2ba1e5ca188fd1303d64006f5636d56	refactor(zen): avoid todo variable shadowing	Cherry-picked as tiny Zen readability refactor; can squash into other Zen commits in PR06 if desired.
196	21e096e9454e4ab8ed684aa90eb544e8dbacb14f	fix(i18n): localize session settings item	PR06	pick+resolve	dc274999ecf65b044b9124eddb628fcd7f6d4708	fix(i18n): localize session settings item	Applied with 3-way conflict resolution (SettingsView routing differs in rewrite base); also restored missing `settings.{secrets,terminal,session}` keys across locales to match current SettingsView usage.
203	b6d3874bf175911f2dea935203994ce6027d6ad1	fix(settings): include Codex resume in master experiment toggle	PR06	pick	392bb13cad6b246e00b6781f1f3b033caa77ba91	fix(settings): include Codex resume in master experiment toggle	Applied as-is (small correctness fix on master experiments switch).
223	73ce32d242a050a44cdf4cb70439abcd594fcde1	fix(i18n): translate Spanish experiment subtitles	PR06	split	71a768da58c0f9af0c4d85a8bdacdeab613b91f9	fix(i18n): add experiments toggle strings	Adapted: upstream refactor moved experiment strings under `settingsFeatures.*`; added missing experiment toggle keys for all locales and applied the Spanish subtitle translations from old 223 (plus expGemini strings required by current features screen).
