# GENERATED FILE - do not edit by hand.
# Regenerate: node docs/commit-audits/happy/_tools/generate-plans.mjs
n	date	shaShort	scopeTag	topicBucket	subject	verdictKind	verdict	filesChanged	linesAdded	linesDeleted	notesReviewed	reviewedAt	notesUpdated
001	2026-01-17	58528a7c37d3	crypto	crypto	chore(crypto): patch react-native-libsodium	keep	keep, but likely squash with other libsodium/postinstall patching commits in the same topic (to keep “patch-package maintenance” cohesive).	1	20	0	yes	2026-01-24T18:00:05+0100	no
002	2026-01-17	552b8da0f621	deps	deps	test(deps): add @types/react-test-renderer	keep	keep; can be squashed with adjacent “test deps” commits if we’re minimizing granularity.	2	8	0	yes	2026-01-24T18:00:05+0100	no
003	2026-01-17	017b15c07ad7	config	config	chore(config): harden app variant defaults	keep	keep; this is reliability hardening for local dev variants and prevents “undefined name/bundle id” configs.	1	21	6	yes	2026-01-24T18:00:05+0100	no
004	2026-01-17	4890a471df31	auth	auth	fix(auth): harden tokenStorage web persistence	keep	keep; belongs in an “auth storage / storage scoping” topic (likely near other storage-scope commits).	2	137	9	yes	2026-01-24T18:00:05+0100	no
005	2026-01-17	4adc41d92af0	sync	sync	feat(sync): add permission mode types and mapping	keep	keep; foundational for later permission-mode persistence and UI toggles. Consider splitting out `MODEL_MODES/isModelMode` into its own commit if it ends up being used broadly outside permission-mode work.	4	218	0	yes	2026-01-24T18:00:05+0100	no
006	2026-01-17	a5fbc3e8ba00	persistence	persistence	feat(persistence): scope storage and validate draft modes	keep	keep; foundational for multi-stack reliability and later model-mode persistence.	4	255	6	yes	2026-01-24T18:03:45+0100	yes
007	2026-01-17	18e77c46f38a	session	session	fix(session): clamp configurable model modes	keep	keep; correctness hardening, small + focused.	1	20	5	yes	2026-01-24T18:03:45+0100	no
008	2026-01-17	f7bb8a28fff7	tools	tools	fix(tools): harden ACP tool parsing and titles	keep	keep; this is correctness + safety hardening for tool rendering and raw message normalization.	4	202	28	yes	2026-01-24T18:03:45+0100	no
009	2026-01-17	292424245277	sync	sync	refactor(sync): centralize outgoing message metadata	keep	keep; this centralization reduces “optional field gotcha” drift and is a good precursor for later metadata evolution.	3	84	55	yes	2026-01-24T18:03:45+0100	no
010	2026-01-17	39cc25154cdd	storage	storage	feat(storage): persist session model modes	keep	keep; this is key for “Gemini model mode per session” and for later reliable settings sync.	2	38	19	yes	2026-01-24T18:03:45+0100	no
011	2026-01-17	c2d3507357dc	settings	settings	fix(settings): make parsing tolerant for profiles	keep	keep; this is a high-value reliability fix.	3	224	141	yes	2026-01-24T18:06:57+0100	yes
012	2026-01-17	207ef1b2f572	dev	dev	fix(dev): gate CLI detection logging	keep	keep; improves production hygiene and reduces potential leakage/noise.	3	41	24	yes	2026-01-24T18:10:19+0100	no
013	2026-01-17	58a892d413d1	command-palette	command-palette	fix(command-palette): include navigate dependency	keep	keep; small but correct and prevents subtle bugs when `navigateToSession` changes.	1	3	3	yes	2026-01-24T18:10:19+0100	no
014	2026-01-17	41479b35415f	env	env	feat(env): add env var template parsing	keep	keep; this becomes a shared primitive used by later env preview commits.	3	83	8	yes	2026-01-24T18:10:19+0100	no
015	2026-01-17	695bcd09eb9e	env	env	fix(env): improve remote env resolution and previews	keep	keep; this is a reliability + security improvement for env previews and should land before the UI-heavy env preview work (016).	4	343	26	yes	2026-01-24T18:10:19+0100	no
016	2026-01-17	6cdb90a49aad	env	env	feat(env): update env var list, cards, and preview modal	keep	keep; likely worth splitting during rewrite only if we want more granular reviewability (e.g. “preview modal” separate from “card/list refactor”).	6	1533	381	yes	2026-01-24T18:10:19+0100	no
017	2026-01-17	65bae55a0b61	i18n	i18n	refactor(i18n): separate translation types and content	keep	keep, but consider splitting by intent during history rewrite:	14	1756	1006	yes	2026-01-24T18:10:19+0100	yes
018	2026-01-17	2993b5c860ff	new-session	new-session	fix(new-session): restore standard modal flow	keep	keep, but strongly recommend splitting during rewrite (this commit is too large + multi-intent):	17	3142	1629	yes	2026-01-24T18:15:13+0100	yes
019	2026-01-17	9e08047d2478	profiles	profiles	fix(profiles): harden routing, grouping, and editing	keep	keep, but consider splitting into two commits in rewritten history:	13	1319	857	yes	2026-01-24T18:17:05+0100	yes
020	2026-01-17	8d9f56e85e5a	ui	ui	refactor(ui): unify list selectors and modal primitives	keep	keep, but split in rewritten history (too many unrelated refactors in one commit):	28	1646	3588	yes	2026-01-24T18:31:18+0100	yes
021	2026-01-17	2ab560bb0535	cli-detection	cli-detection	feat(cli-detection): add daemon detect-cli RPC support	keep	keep; foundational for later UI that displays detected CLI status per machine.	2	99	3	yes	2026-01-24T18:32:25+0100	no
022	2026-01-17	2d4675a5d051	agent-input	agent-input	fix(agent-input): use compact permission badges	keep	keep; should be grouped with the i18n commit(s) that add the corresponding `agentInput.*.badge*` translation keys.	1	22	17	yes	2026-01-24T18:32:51+0100	no
023	2026-01-18	d97924f3ef39	test	test	chore(test): define __DEV__ for vitest	keep	keep; small and improves test determinism. Safe to squash into nearby test infra changes if desired.	1	4	1	yes	2026-01-24T18:33:10+0100	no
024	2026-01-18	9c19baa833b9	settings	settings	feat(settings): add api keys and experiment toggles	keep	keep; this is the foundational data-model work for the subsequent API keys UI and per-experiment UI.	4	331	0	yes	2026-01-24T18:34:24+0100	no
025	2026-01-18	21cc6df79f50	api-keys	api-keys	feat(api-keys): add saved API keys UI	keep	keep; can be split during rewrite into “UI primitives (ApiKeysList/Modal)” vs “screen wiring” if desired.	5	580	10	yes	2026-01-24T18:35:32+0100	yes
026	2026-01-18	ce9cd74d408a	machine	machine	feat(machine): surface detected CLI status	keep	keep; this is a feature-sized change but brings strong reliability patterns (cache + timeout + explicit refresh).	9	894	104	yes	2026-01-24T18:37:32+0100	no
027	2026-01-18	7899bbd8433e	profiles	profiles	feat(profiles): add API key requirements flow	keep	keep; recommend splitting in rewritten history into:	11	1515	222	yes	2026-01-24T18:40:29+0100	yes
028	2026-01-18	0023ba1ea5aa	i18n	i18n	refactor(i18n): update translations and tooling	keep	keep; consider splitting into:	11	2913	143	yes	2026-01-24T18:44:46+0100	yes
029	2026-01-18	12e75a3b36fa	autocomplete	autocomplete	fix(autocomplete): remove debug suggestion logs	keep	keep; small cleanup.	1	0	6	yes	2026-01-24T18:45:28+0100	no
030	2026-01-18	679877c26ea9	settings	settings	feat(settings): expose per-experiment toggles	keep	keep; should be adjacent to 024 in rewritten history (schema + UI).	1	94	3	yes	2026-01-24T18:46:01+0100	no
031	2026-01-18	4dc9c7f8759c	agent-input	agent-input	feat(agent-input): add configurable action bar layout	keep	keep; should follow 024 (settings keys) and be placed near other AgentInput UX commits.	2	477	117	yes	2026-01-24T18:47:29+0100	yes
032	2026-01-18	e8e42a6087ad	modal	modal	fix(modal): prevent stacked modal touch-blocking on iOS	keep	keep; this is a high-value UX/reliability fix and should land before any later UI that relies on stacked modals.	5	111	8	yes	2026-01-24T18:48:18+0100	yes
033	2026-01-18	daa0b4527d7f	new-session	new-session	feat(new-session): add api key selection and wizard extraction	keep	keep; in rewritten history, keep it adjacent to (and after) the commits that introduce:	4	1719	1116	yes	2026-01-24T18:52:09+0100	yes
034	2026-01-18	94814465bf81	sync	sync	perf(sync): debounce pending settings writes	keep	keep; performance + reliability win, likely safe to keep as one “sync perf” commit.	1	69	4	yes	2026-01-24T18:53:41+0100	no
035	2026-01-18	7ffd0c3428cb	ui	ui	fix(ui): localize error alerts	keep	keep; should be adjacent to i18n commits ensuring `errors.unknownError` exists across locales.	1	4	3	yes	2026-01-24T18:54:29+0100	no
036	2026-01-18	97ca69e0a735	i18n	i18n	refactor(i18n): replace remaining UI literals	keep	keep; this is good “i18n hygiene” and reduces future untranslated regressions. Consider grouping it near the translation-dictionary updates that add the required keys.	19	64	59	yes	2026-01-24T18:55:47+0100	yes
037	2026-01-18	5f5b57df5181	ui	ui	refactor(ui): improve item rendering and action menu timing	keep	keep; good incremental UX/perf improvement. Place near other modal/list primitive refactors (e.g. 020, 032).	5	33	9	yes	2026-01-24T18:57:14+0100	no
038	2026-01-18	7976b877259c	experiments	experiments	feat(experiments): gate Zen, file viewer, and voice auth flow	keep	keep, but split during rewrite (gating vs i18n). The gating portion is a good safety/reliability change (reduces accidental exposure of unfinished features and avoids auth-path changes when experiments are broadly enabled).	7	29	21	yes	2026-01-24T19:02:45+0100	no
039	2026-01-21	6ed379f82c34	ui	ui	refactor(ui): add modal + popover overlay primitives	**keep	**keep, but split + reorder during rewrite**.	43	4669	930	yes	2026-01-24T19:06:52+0100	no
040	2026-01-21	f0787de5308e	sync	sync	feat(sync): add secrets + terminal settings primitives	**keep	**keep, but split during rewrite** (this is a good foundational change, but it mixes multiple large concerns).	60	2348	636	yes	2026-01-24T19:11:23+0100	yes
041	2026-01-21	66ee1eaf88a6	secrets	secrets	feat(secrets): add secrets management + requirement resolver	**keep	**keep, but split during rewrite** to make the security surface area reviewable.	29	2315	1099	yes	2026-01-24T19:17:58+0100	yes
042	2026-01-21	bdaf6913141f	terminal	terminal	feat(terminal): add Terminal settings + tmux metadata	keep	keep; this is a feature-sized commit but cohesive around “Terminal settings + tmux support”.	8	509	28	yes	2026-01-24T19:20:11+0100	yes
043	2026-01-21	bc779e4f7909	new-session	new-session	refactor(new-session): integrate secrets + terminal spawn options	**keep	**keep, but split during rewrite** (core new-session changes are important; the adjacent refactors should be isolated).	17	1051	661	yes	2026-01-24T19:27:57+0100	yes
044	2026-01-21	cb11d4bdb25a	docs	claude	docs: add AGENTS.md symlink + update CLAUDE.md	keep	keep; doc-only.	2	82	1	yes	2026-01-24T19:28:37+0100	no
045	2026-01-21	1bc3b9715776	sync	sync	fix(sync): handle non-JSON 400 responses	keep	keep; a clean correctness fix with targeted test.	2	51	3	yes	2026-01-24T19:29:06+0100	no
046	2026-01-21	ea2e4d19d633	deps	deps	chore(deps): align react-test-renderer with react	keep	keep; belongs near other “test renderer / react version alignment” maintenance (e.g. 002).	2	8	8	yes	2026-01-24T19:29:31+0100	no
047	2026-01-21	dd041d21ecfc	sync	sync	fix(sync): guard JSON parsing on disconnect errors	keep	keep; pairs well with 045 as a “robust error parsing” mini-series.	4	85	6	yes	2026-01-24T19:30:12+0100	no
048	2026-01-21	395da4ff3167	zen	zen	refactor(zen): avoid todo variable shadowing	keep	keep; can be squashed into other Zen refactors if desired.	1	2	2	yes	2026-01-24T19:30:36+0100	no
049	2026-01-21	2e956f32f220	new	new	fix(new): keep pick screens above iOS modal	keep	keep. This is a valuable reliability fix and already includes meaningful regression tests.	13	739	37	yes	2026-01-24T19:31:37+0100	no
050	2026-01-21	2da2f9349ec5	popover	popover	fix(popover): allow web fixed positioning types	keep	keep; can be squashed into other `Popover` portal/web fixes if we regroup by topic.	1	4	4	yes	2026-01-24T19:32:04+0100	no
051	2026-01-21	43f23f2f082e	format	format	chore(format): replace stray tabs with spaces	keep	keep, but consider squashing into a nearby commit that already touches these files to reduce “format-only” noise.	2	26	26	yes	2026-01-24T19:32:27+0100	no
052	2026-01-21	e1d55fdbd9ee	i18n	i18n	fix(i18n): improve untranslated literal scan parsing	keep	keep.	1	12	2	yes	2026-01-24T19:32:51+0100	no
053	2026-01-21	c210c1115598	sync	sync	test(sync): restore stubbed fetch between tests	keep	keep; can be squashed into the adjacent GitHub API test series if desired.	1	5	1	yes	2026-01-24T19:33:20+0100	no
054	2026-01-21	66c678451335	ui	ui	fix(ui): apply small review fixes	split	split or squash during history rewrite (recommended). If we keep it as-is, it should stay adjacent to the PR review context that motivated it.	8	23	25	yes	2026-01-24T19:33:50+0100	no
055	2026-01-21	2472b376775c	modal	modal	test(modal): make backdrop z-index assertion safer	keep	keep; can be squashed into the modal test series.	1	3	1	yes	2026-01-24T20:01:38+0100	no
056	2026-01-21	02450d179aaf	profiles	profiles	fix(profiles): align experimentsEnabled for built-in profiles	keep	keep; likely belongs near other profile picker / built-in profile series changes.	1	1	2	yes	2026-01-24T20:02:13+0100	no
057	2026-01-21	ff7bec72358f	secrets	secrets	fix(secrets): tighten callback deps and fix indentation	keep	keep (small but worthwhile).	1	29	21	yes	2026-01-24T20:02:41+0100	no
058	2026-01-21	1bb65f5dd494	new-session	new-session	fix(new-session): avoid stuck secret requirement modal guard	keep	keep.	1	5	3	yes	2026-01-24T20:03:11+0100	no
059	2026-01-21	f7f81497444d	modal	modal	fix(modal): prevent non-dismissible WebAlertModal	split	split during history rewrite (strongly recommended).	6	368	36	yes	2026-01-24T20:04:08+0100	no
060	2026-01-22	bb09f91de715	settings	settings	fix(settings): keep valid secrets when one entry is invalid	keep	keep.	2	44	0	yes	2026-01-24T20:04:42+0100	no
061	2026-01-22	765423af52b4	agent-input	agent-input	fix(agent-input): cycle permission mode from normalized state	keep	keep (small, correct, and tested).	3	43	10	yes	2026-01-24T20:05:10+0100	no
062	2026-01-22	e533db1813a5	popover	popover	fix(popover): add screens cjs helper and fix fixed positioning types	keep	keep, but reorder/squash for bisectability.	2	14	4	yes	2026-01-24T20:05:39+0100	no
063	2026-01-22	2ed3100311c7	secrets	secrets	fix(secrets): hide values when using secret vault	keep	keep (security/privacy hardening).	10	31	9	yes	2026-01-24T20:06:18+0100	no
064	2026-01-22	e5848c480522	ui	ui	fix(ui): harden overlays and permission cycling	keep	keep, but during rewrite reconcile with 061 (these two commits should collapse into one coherent permission-cycling implementation plus the overlay hardening pieces).	6	302	8	yes	2026-01-24T20:07:04+0100	no
065	2026-01-13	69fdcff96a4c	sync	sync	fix(sync): restore session permission mode from last message	keep	keep (safety + UX reliability), but ensure follow-up commits handle edge cases (there are additional permission-mode persistence commits in the queue).	2	56	5	yes	2026-01-24T20:07:37+0100	no
066	2026-01-13	9b499c5dccce	sync	sync	fix(sync): persist permission mode timestamp for restart-safe arbitration	keep	keep (required follow-up to 065).	2	39	2	yes	2026-01-24T20:08:03+0100	no
067	2026-01-13	def8852509d0	sync	sync	fix(sync): persist permission mode reliably across devices	keep	keep (important reliability/safety follow-up).	11	141	48	yes	2026-01-24T20:09:07+0100	no
068	2026-01-12	b1c8a6fecd01	session	session	fix(session): archive when kill RPC unavailable	keep	keep; this is a pragmatic reliability fix.	4	41	7	yes	2026-01-24T20:09:38+0100	no
069	2026-01-06	c06b6202b5d4	expo-app	expo-app	Add copy-to-clipboard button to message blocks	keep	keep.	1	84	2	yes	2026-01-24T20:15:28+0100	no
070	2026-01-21	9fc7d3d412b9	sessions	sessions	feat(sessions): group inactive sessions by project	keep	keep.	16	404	117	yes	2026-01-24T20:17:34+0100	no
071	2026-01-21	62a8b1b07c3e	sessions	sessions	feat(sessions): add unread badge	keep	keep; this is a user-visible feature with reasonable persistence and unit tests.	9	199	39	yes	2026-01-24T20:18:40+0100	no
072	2026-01-21	82d74454c3c4	typecheck	typecheck	fix(typecheck): restore permission imports and Popover web styles	keep	keep (small typecheck/compile fix).	3	2	2	yes	2026-01-24T20:19:14+0100	no
073	2026-01-11	4f2b533f99c2	tools	tools	feat(tools): add approve/reject buttons to ExitPlanMode	keep	keep.	10	249	13	yes	2026-01-24T20:20:20+0100	no
074	2026-01-07	c86cbd26b040	queue	queue	feat(queue): add pending message queue UI and send modes	keep	keep, but consider splitting UI-only cleanup (theme/i18n) into follow-up commits during history rewrite.	12	703	59	yes	2026-01-24T20:22:09+0100	no
075	2026-01-07	42da6dae8fe4	session	session	feat(session): add session rename support	keep	keep.	11	192	6	yes	2026-01-24T20:23:19+0100	no
076	2026-01-12	057102f67904	resume	resume	feat(resume): add resume session option for new sessions	keep	keep; belongs with the broader “resume sessions” topic.	17	479	13	yes	2026-01-24T20:27:11+0100	yes
077	2026-01-14	05532bd65c6b	resume	resume	feat(resume): show resume chip under path in new session	keep	keep; should stay adjacent to 076.	3	57	44	yes	2026-01-24T20:27:54+0100	no
078	2026-01-11	cd5771e50881	resume	resume	feat: resume inactive Claude sessions from UI	keep	keep, but expect to squash with 079+080+076/077 into a single coherent resume topic series.	3	261	3	yes	2026-01-24T20:29:19+0100	yes
079	2026-01-12	456e2ad8e2b8	resume	resume	refactor(resume): don't require agentSessionId from UI	keep	keep; should be adjacent to 078 and any daemon/server-side follow-ups that implement vendor-id derivation.	12	84	11	yes	2026-01-24T20:30:50+0100	yes
080	2026-01-11	9b0069e3d30c	fork	fork	feat(fork): enable Codex resume support	keep	keep, but isolate into a fork-only branch/PR (or guard with a build flag/env) during history rewrite.	12	52	29	yes	2026-01-24T20:32:11+0100	yes
081	2026-01-22	4ddaef02210e	sync	sync	fix(sync): omit model meta for queued messages	keep	keep; should be adjacent to the message queue/send-mode series (074).	1	7	6	yes	2026-01-24T20:33:19+0100	yes
082	2026-01-12	3fbdc10018fe	tmux	terminal	fix: tmux parsing/targeting + review feedback	split	split during history rewrite (recommended).	15	153	127	yes	2026-01-24T20:34:54+0100	yes
083	2026-01-13	7292a29822bb	daemon	daemon	fix(daemon): do not apply CLI active profile to GUI-spawned sessions	keep	keep.	1	5	54	yes	2026-01-24T20:36:02+0100	no
084	2026-01-13	ce94cfa512ac	session	session	feat(session): persist profileId in session metadata via daemon spawn	keep	keep; should stay near other “profiles + spawn” daemon changes (083/085/086).	6	33	5	yes	2026-01-24T20:38:18+0100	no
085	2026-01-13	e58e97fd7ff4	pr107	pr107	fix(pr107): harden daemon spawn + align profile schema	keep	keep (especially the restored `await`).	3	38	11	yes	2026-01-24T20:38:46+0100	yes
086	2026-01-13	86330e263595	security	security	fix(security): redact spawn secrets from daemon logs	keep	keep the redaction, but during rewrite separate and re-evaluate the `fs.writeFile` await removal (it looks accidental/unrelated to redaction).	2	30	3	yes	2026-01-24T20:39:34+0100	no
087	2026-01-15	a25acab22b64	socket	socket	fix(socket): restore offline buffering for sends	keep	keep, but fix the `canSend` inconsistency (either restore the helper or remove the remaining call).	3	39	31	yes	2026-01-24T20:41:19+0100	yes
088	2026-01-15	a7d23148c311	logging	logging	fix(logging): gate debug output and redact templates	keep	keep.	6	170	17	yes	2026-01-24T20:42:12+0100	no
089	2026-01-13	ef418bc4dda3	pr107	pr107	fix(pr107): redact profile secrets in doctor + align tmux tmpDir	keep	keep (small, targeted).	2	12	8	yes	2026-01-24T20:42:51+0100	no
090	2026-01-13	1f90659694be	profiles	profiles	refactor(profiles): remove unwired startup script and local env cache	keep	keep, but squash/reconcile with the earlier schema-alignment steps so history doesn’t oscillate.	1	9	74	yes	2026-01-24T20:43:32+0100	no
091	2026-01-15	7aed8aaee02f	profiles	profiles	refactor(profiles): drop provider config objects	keep	keep.	2	124	75	yes	2026-01-24T20:44:29+0100	no
092	2026-01-15	6b0bfe546d9e	runtime	runtime	feat(runtime): support bun for daemon-spawned subprocesses	keep	keep.	3	130	20	yes	2026-01-24T21:51:01+0100	yes
093	2026-01-15	4071466545ab	rpc	rpc	refactor(rpc): accept arbitrary env var maps for spawn	keep	keep.	1	12	14	yes	2026-01-24T21:51:52+0100	no
094	2026-01-17	809be82b53e7	env	env	fix(env): implement default assignment semantics	keep	keep; should live adjacent to the earlier `expandEnvVars` changes (085/088).	2	36	5	yes	2026-01-24T21:52:35+0100	no
095	2026-01-17	4c2a671dc3f4	rpc	rpc	feat(rpc): add preview-env handler	keep	keep.	2	380	0	yes	2026-01-24T21:53:26+0100	yes
096	2026-01-15	2973f7fe6861	codex	codex	fix(codex): harden MCP command detection	keep	keep.	2	148	51	yes	2026-01-24T21:54:17+0100	no
097	2026-01-15	c863db3d5bbc	offline	offline	refactor(offline): make offline session stub safer	keep	keep.	2	78	20	yes	2026-01-24T21:55:09+0100	no
098	2026-01-15	0a1a91a631e7	tmux	tmux	feat(tmux): support per-instance socket path	keep	keep.	2	198	84	yes	2026-01-24T21:56:06+0100	yes
099	2026-01-15	c52227082c2b	tmux	tmux	fix(tmux): correct env, tmpdir, and session selection	keep	keep, but **split during rewrite** (too many concerns bundled).	21	915	206	yes	2026-01-24T21:59:16+0100	yes
100	2026-01-16	7a01a8e42629	claude	claude	test(claude): align sessionScanner path mapping	keep	keep.	1	34	7	yes	2026-01-24T22:00:22+0100	no
101	2026-01-17	1075a768e551	rpc	rpc	feat(rpc): add detect-cli handler	keep	keep.	2	159	2	yes	2026-01-24T22:01:26+0100	yes
102	2026-01-21	c988f68ca4d0	ui	ui	feat(ui): surface Codex/Gemini errors in session UI	keep	keep.	9	306	71	yes	2026-01-24T22:11:23+0100	yes
103	2026-01-21	b2269ee11252	claude	claude	fix(claude): use hook transcript path across switching	keep	keep, but it’s big; consider splitting during rewrite into:	18	1025	93	yes	2026-01-24T22:15:19+0100	yes
104	2026-01-21	f53cf71d416c	persistence	persistence	refactor(persistence): remove deprecated tmuxConfig	keep	keep.	1	1	18	yes	2026-01-24T22:16:05+0100	no
105	2026-01-21	8dae65f6c585	rpc	rpc	feat(rpc): include tmux in detect-cli	keep	keep.	2	302	6	yes	2026-01-24T22:16:51+0100	yes
106	2026-01-21	ad66c6aaa3ae	terminal	terminal	feat(terminal): add tmux metadata + attach tooling	keep	keep, but it’s big; during rewrite consider splitting into:	23	1036	11	yes	2026-01-24T22:18:04+0100	yes
107	2026-01-21	c13d51ee4638	daemon	daemon	feat(daemon): support tmux spawn + harden runtime	keep	keep; should stay adjacent to 106 and the tmux spawn series (099/098).	8	324	74	yes	2026-01-24T22:18:59+0100	yes
108	2026-01-21	f7db44dea458	docs	cli	docs: add AGENTS.md symlink	keep	keep.	1	1	0	yes	2026-01-24T22:20:24+0100	no
109	2026-01-21	af5000ea6318	ui	ui	fix(ui): polish Codex and Gemini error messages	keep	keep.	4	17	5	yes	2026-01-24T22:20:50+0100	no
110	2026-01-21	f68552d03ab9	tmux	tmux	fix(tmux): print attach instructions in correct order	keep	keep.	2	82	3	yes	2026-01-24T22:21:22+0100	no
111	2026-01-21	4e4bb65ff3f0	tmux	tmux	test(tmux): avoid brittle assertions	keep	keep.	1	15	14	yes	2026-01-24T22:21:47+0100	no
112	2026-01-21	45f4eb5d145c	detect-cli	detect-cli	test(detect-cli): avoid process.env reassignment	keep	keep.	1	22	3	yes	2026-01-24T22:22:13+0100	no
113	2026-01-21	51782fdbfbcd	codex	codex	test(codex): reset transport instances between tests	keep	keep.	1	1	1	yes	2026-01-24T22:22:40+0100	no
114	2026-01-21	0ad76f4877ae	cli	cli	chore(cli): fix gemini daemon block indentation	keep	keep; can be squashed into a nearby `cli/src/index.ts` change if desired.	1	2	2	yes	2026-01-24T22:23:08+0100	no
115	2026-01-21	a8093e3e4ddb	persistence	persistence	docs(persistence): update profile schema version comment	keep	keep; low-risk docs-only change.	1	1	1	yes	2026-01-24T22:23:33+0100	no
116	2026-01-21	b16c3658b944	gemini	gemini	fix(gemini): normalize error details for UI	keep	keep; belongs with the Gemini error-formatting series (102/109).	1	4	1	yes	2026-01-24T22:24:11+0100	no
117	2026-01-21	d9591372655f	common	common	fix(common): handle execFileAsync exit codes	keep	keep; should stay adjacent to the detect-cli series (101/105/112).	1	2	1	yes	2026-01-24T22:24:48+0100	no
118	2026-01-22	ab95e8cf920c	sync	sync	fix(sync): avoid hanging invalidateAndAwait on errors	keep	keep.	3	84	11	yes	2026-01-24T22:25:33+0100	yes
119	2026-01-22	6f98c95fb5d8	claude	claude	fix(claude): support -c/-r and avoid session loss on switch	keep	keep; belongs immediately after 103 in a “Claude switching + transcript” topic cluster.	13	496	60	yes	2026-01-24T22:27:03+0100	yes
120	2026-01-16	9489d70848f3	claude	claude	test(claude): align sessionScanner path mapping	squash	squash into nearby test commits (very small).	1	0	1	yes	2026-01-24T22:30:30+0100	no
121	2026-01-12	9c4cb44b7d86	daemon	daemon	fix(daemon): reattach sessions after daemon restart	keep	keep (important).	7	295	17	yes	2026-01-24T22:31:11+0100	yes
122	2026-01-14	dbde6d871670	daemon	daemon	test(daemon): add PID classification + session marker tests	keep	keep.	3	199	34	yes	2026-01-24T22:31:56+0100	no
123	2026-01-14	7cffdd5ce614	daemon	daemon	fix(daemon): verify PID via command hash for reattach/stop	keep	keep; should be adjacent to 121/122.	4	74	10	yes	2026-01-24T22:32:42+0100	no
124	2026-01-13	8b88dcd73d40	claude	claude	fix(claude): carry permission mode across remote/local switches	keep	keep (safety fix).	5	51	0	yes	2026-01-24T22:33:10+0100	no
125	2026-01-13	8f0e10c9428b	claude	claude	fix(claude): publish permission mode in session metadata	keep	keep, but it should be grouped/squashed with:	7	58	10	yes	2026-01-24T22:33:49+0100	no
126	2026-01-13	ffad20faa406	cli	cli	fix(cli): publish permission mode for codex/gemini sessions	keep	keep, but group with 125 (Claude metadata publish) and app-side metadata consumption (067) so the end-to-end feature lands coherently.	5	129	30	yes	2026-01-24T22:34:28+0100	no
127	2026-01-13	eb72c6e69434	codex	codex	fix(codex): disable model override and remove experimental resume	keep	keep, but squash into the earlier Codex “model override / experimental resume” series.	1	13	96	yes	2026-01-24T22:37:39+0100	no
128	2026-01-21	d317f6bfa282	typecheck	typecheck	fix(typecheck): resolve duplicate terminalRuntime and RPC handler types	keep	keep, but squash into the parent commits that introduced the duplicates / handler type changes.	3	1	4	yes	2026-01-24T22:38:30+0100	no
129	2026-01-21	a8682d427794	cli	detect-cli	fix(detect-cli): relax tmux version probe timeout	keep	keep (small, focused reliability fix).	1	1	1	yes	2026-01-24T22:39:02+0100	no
130	2026-01-07	e2824dbc858b	queue	queue	feat(queue): add server-side pending message pull support	keep	keep, but consider splitting `codexSessionId` metadata into the resume topic.	5	58	8	yes	2026-01-24T22:39:35+0100	no
131	2026-01-12	37a2c55a6c2f	session	session	fix(session): prime agent state for readiness	keep	keep (small and behaviorally meaningful), but group with other readiness / resume-attach changes that rely on readiness.	2	20	0	yes	2026-01-24T22:40:05+0100	no
132	2026-01-21	88494b122194	tools	tools	fix(tools): support Windows arm64 tool unpacking	likely	likely squash with its revert (140) unless pieces are reintroduced later in a cleaner form.	6	70	6	yes	2026-01-24T22:40:48+0100	no
133	2026-01-09	d71587eda2db	resume	resume	feat: resume Claude sessions from UI	keep	keep, but group with the rest of the resume/inactive-session series (134–136, 141, 137 fork-only Codex resume, etc.).	4	83	41	yes	2026-01-24T22:41:30+0100	no
134	2026-01-11	a80868aff50d	resume	resume	feat: resume inactive Claude sessions from UI	keep	keep, but split during history rewrite (recommended).	7	253	69	yes	2026-01-24T22:42:27+0100	no
135	2026-01-12	bcaa530b12d7	resume	resume	feat(resume): add happy resume and persist vendor resume id	keep	keep.	3	98	27	yes	2026-01-24T22:47:01+0100	no
136	2026-01-12	e085e75c5d36	resume	resume	feat(resume): allow resume-session without agentSessionId	keep	keep, but must be squashed with (or followed immediately by) a compile-fix commit for the duplicate import.	3	83	64	yes	2026-01-24T22:47:53+0100	no
137	2026-01-12	68a6ba4bc244	fork	fork	feat(fork): enable Codex inactive-session resume via codex-reply	keep	keep (fork-only), but split during rewrite so each responsibility is reviewable:	6	224	73	yes	2026-01-24T22:48:49+0100	no
138	2026-01-22	d3aefaa9b598	daemon	daemon	refactor(daemon): extract reattach and pid safety helpers	keep	keep.	3	86	64	yes	2026-01-24T22:49:26+0100	no
139	2026-01-22	72397b7e8c94	test	daemon	test(daemon): add opt-in reattach integration tests	keep	keep (opt-in integration suite).	2	238	0	yes	2026-01-24T22:50:06+0100	no
140	2026-01-22	9c40c54018c2	cli	cli	Revert "fix(tools): support Windows arm64 tool unpacking"	keep	keep as a revert **only if** we truly want to drop Windows arm64 support and accept the test coverage/env fallback removal. Otherwise, during rewrite we should:	6	6	70	yes	2026-01-24T22:52:35+0100	no
141	2026-01-22	ab35b47ff699	resume	resume	fix(resume): make inactive resume reliable; gate Codex resume	keep	keep, but split during rewrite (large cross-cutting change).	17	483	89	yes	2026-01-24T22:54:06+0100	no
142	2026-01-22	aa9b11684389	codex	codex	fix(codex): increase installer output buffer	keep	keep (small reliability fix).	1	1	1	yes	2026-01-24T22:54:32+0100	no
143	2026-01-22	c4beebbfa375	app	ui	feat(ui): add Codex resume experiment toggle	keep	keep.	10	26	0	yes	2026-01-24T22:54:52+0100	no
144	2026-01-22	0140ae276869	codex	codex	refactor(codex): install mcp resume server via install-dep	keep	keep, but group/squash with the surrounding resume tooling commits (141, 146, 148+) so the installer + status UX is coherent end-to-end.	5	211	89	yes	2026-01-24T22:55:39+0100	no
145	2026-01-22	2ec41b621b54	codex	codex	fix(codex): detect resume binary on Windows	keep	keep.	1	4	3	yes	2026-01-24T22:56:00+0100	no
146	2026-01-22	e1deb6db8ddb	codex	codex	refactor(codex): add dep-status and drop codex-resume RPCs	keep	keep; should be grouped with the surrounding installer changes (144/141) so the machine UI and daemon handlers agree on one stable API.	3	125	83	yes	2026-01-24T22:56:28+0100	no
147	2026-01-22	231d7ad9bdd9	app	ui	fix(ui): clarify Codex resume server label	keep	keep.	1	1	1	yes	2026-01-24T22:57:00+0100	no
148	2026-01-22	8bebf04aca92	cli	cli	refactor(cli): modularize capabilities and env preview	keep	keep, but this is a **major protocol refactor** and is a prime candidate to split during history rewrite:	18	1296	908	yes	2026-01-24T22:58:28+0100	yes
149	2026-01-22	bcf10af94626	test	ui	test(ui): update useCLIDetection hook tests for capabilities	keep	keep.	1	23	27	yes	2026-01-24T22:59:07+0100	no
150	2026-01-22	a5cac698f15b	cli	cli	feat(cli): harden session queue, switching, and lifecycle	keep	keep, but this commit is **very mixed** and should almost certainly be split during history rewrite into coherent layers:	24	1429	84	yes	2026-01-24T23:10:58+0100	no
151	2026-01-22	3fc704424e8d	app	app	feat(app): add pending queue, discard markers, and capabilities	keep	keep, but this commit is very large and spans multiple topics. For history rewrite, strongly consider splitting into coherent groups:	44	2248	957	yes	2026-01-24T23:14:06+0100	yes
152	2026-01-22	49893dd7d16a	terminal	terminal	fix(terminal): harden remote→local switching input	keep	keep (high-value reliability fix + tests).	4	218	42	yes	2026-01-24T23:15:23+0100	yes
153	2026-01-22	0126667539b6	claude	claude	fix(claude): forward signals to binary child process	keep	keep.	2	78	2	yes	2026-01-24T23:15:59+0100	no
154	2026-01-22	39c7b8a56b32	app	app	refactor(app): rename tmux/message-send settings under session	keep	keep.	11	235	231	yes	2026-01-24T23:17:24+0100	no
155	2026-01-22	fcec6c311b6b	sync	sync	feat(sync): add cross-device unread markers	keep	keep (core UX correctness improvement + tests).	6	187	41	yes	2026-01-24T23:21:35+0100	no
156	2026-01-22	8c16ee8f9cef	auth	auth	fix(auth): surface auth failures and gate unauth routes	keep	keep; this is a cohesive auth hardening commit with focused tests.	6	89	2	yes	2026-01-24T23:22:24+0100	no
157	2026-01-22	320a89e19ca0	test	happy	test(happy): run cli and server checks from root scripts	keep	keep.	1	9	9	yes	2026-01-24T23:22:55+0100	no
158	2026-01-22	3b3609fed434	rpc	rpc	fix(rpc): add structured code for missing RPC methods	keep	keep; this is a clean robustness upgrade that reduces brittle string matching and improves client/server compatibility.	7	186	9	yes	2026-01-24T23:25:15+01:00	no
159	2026-01-22	0e2c7928f24c	scanner	scanner	fix(scanner): tolerate onMessage exceptions	keep	keep.	3	106	2	yes	2026-01-24T23:25:44+01:00	no
160	2026-01-22	7fbe1f1cc727	permission	permission	fix(permission): avoid no-op permissionModeUpdatedAt bumps	keep	keep; important correctness fix for permission-mode arbitration across devices/UI.	6	128	18	yes	2026-01-24T23:26:19+01:00	no
161	2026-01-22	2026fbab5cb3	claude	claude	fix(claude): accept -c as continue flag	keep	keep.	1	1	1	yes	2026-01-24T23:26:49+01:00	no
162	2026-01-22	ee0bec2a0b90	resume	resume	Delete INACTIVE_SESSION_RESUME.md	likely	likely squash into a broader “docs cleanup/reorg” topic, or drop if we still want to keep the design rationale in-repo.	1	0	127	yes	2026-01-24T23:27:08+01:00	no
163	2026-01-22	84df0d260513	expo-app	expo-app	fix(expo-app): stabilize postinstall and libsodium patches	keep	keep (high-value install stability).	6	69	29	yes	2026-01-24T23:27:39+01:00	no
164	2026-01-23	544f9711b6cf	app	ui	fix(ui): respond to plan/question tools via session RPC	keep	keep.	5	295	14	yes	2026-01-24T23:28:17+01:00	no
165	2026-01-23	8b3f39f22664	cli	cli	feat(cli): add interaction.respond for AskUserQuestion	keep	keep; important plumbing for interactive tools and mid-turn user responses.	5	141	42	yes	2026-01-24T23:28:57+01:00	no
166	2025-12-24	ed4bc007308a	codex	codex	feat: add execpolicy approval option for Codex	keep	keep, but group/squash with the follow-up Codex execpolicy plumbing commits (167/168/169/175 etc) so UI + daemon + agent all agree on the protocol.	13	117	27	yes	2026-01-24T23:29:59+01:00	no
167	2025-12-24	78adc9c58811	codex	codex	feat(codex): support execpolicy approvals and MCP tool calls	keep	keep; should be grouped with the UI-side execpolicy option commit (166) and the follow-up approvals/MCP tooling commits (175/208/211/etc) so the whole approval loop is coherent.	5	459	106	yes	2026-01-24T23:46:10+01:00	no
168	2026-01-22	9dfa09bef8d8	i18n	i18n	fix(i18n): add Codex execpolicy button text	keep	keep, but it’s a perfect squash candidate into commit 166 (or a single “add execpolicy approval + translations” topic group) in a rewritten history.	2	2	0	yes	2026-01-24T23:46:30+01:00	no
169	2026-01-22	559d39da116d	reducer	reducer	fix(reducer): keep permission messages idempotent	keep	keep; should be adjacent to commit 166 in a rewritten history (it’s effectively a follow-up correctness fix to keep the permission UI stable).	1	18	3	yes	2026-01-24T23:46:56+01:00	no
170	2026-01-18	cc3c711ae28e	claude	claude	fix: move claudeArgs to end of args array for slash command support	keep	keep.	1	5	5	yes	2026-01-24T23:47:37+01:00	no
171	2026-01-19	d06d5a833f8e	claude	claude	Add signal forwarding to claudeLocal.ts	keep	keep; small reliability fix. Can be grouped with other “process lifecycle / signal handling” commits.	1	22	0	yes	2026-01-24T23:47:58+01:00	no
172	2025-11-20	1b7cb3bfea86	codex	codex	feat: handle /clear command as session reset in codex	keep	keep.	3	41	11	yes	2026-01-24T23:48:32+01:00	no
173	2026-01-11	332ab2b0cd93	cli	cli	fix(cli): improve abort error handling to reduce spurious error messages	keep	keep.	1	58	2	yes	2026-01-24T23:54:36+01:00	no
174	2025-12-24	e956463db3e2	codex	codex	fix: use runtime execPath for MCP bridge	keep	keep; small but important reliability fix for MCP bridge execution.	3	9	7	yes	2026-01-24T23:55:09+01:00	no
175	2026-01-23	f0a7d8d0b40c	codex	codex	fix(codex): use mcp tool call id for approvals	keep	keep; this is a correctness fix that should sit immediately after the Codex execpolicy/elicitation refactor (167).	2	44	30	yes	2026-01-24T23:55:40+01:00	no
176	2026-01-22	da620b6865ad	server	server	feat(server): add full/light flavors with sqlite migrations	keep	keep, but strongly consider splitting into multiple commits during rewrite:	38	2210	165	yes	2026-01-24T23:57:40+01:00	yes
177	2026-01-23	893ce7af5df0	expo-app	expo-app	fix(expo-app): avoid hooks order violation on redirect	keep	keep (correctness fix + test).	2	113	1	yes	2026-01-24T23:58:23+01:00	no
178	2026-01-23	7afbc9a2decd	expo-app	expo-app	fix(expo-app): persist resumeSessionId and harden clipboard paste	keep	keep.	5	65	3	yes	2026-01-25T00:34:53+01:00	no
179	2026-01-23	9a13879b753a	expo-app	expo-app	fix(expo-app): avoid false homeDir prefix matches	keep	keep.	2	19	2	yes	2026-01-25T00:35:24+01:00	no
180	2026-01-23	c107a779e07d	expo-app	expo-app	fix(expo-app): avoid stuck loading in capabilities cache	keep	keep (important robustness fix + test).	2	61	1	yes	2026-01-25T00:35:58+01:00	no
181	2026-01-23	35c0974eff1f	expo-app	expo-app	refactor(expo-app): remove dead code and dedupe types	keep	keep (small cleanup), but note the `useCLIDetection` output change during history rewrite if consumers relied on `error`.	3	5	7	yes	2026-01-25T00:36:44+01:00	no
182	2026-01-23	b319d85e72c3	i18n	i18n	fix(i18n): correct Spanish resumable label	keep	keep (tiny, focused).	1	1	1	yes	2026-01-25T00:37:12+01:00	no
183	2026-01-23	46186162ae14	happy-cli	happy-cli	test(happy-cli): fix timer cleanup and MCP schema mocks	keep	keep; this is a pragmatic “test stability” commit. It can be squashed with nearby test-only cleanup if we want fewer commits, but it’s coherent enough on its own.	3	14	6	yes	2026-01-25T00:37:43+01:00	no
184	2026-01-23	ac5bf2f3abfa	happy-cli	happy-cli	test(happy-cli): reset modules for runtime override	keep	keep.	1	5	1	yes	2026-01-25T00:38:29+01:00	no
185	2026-01-23	947b8d1814fb	expo-app	expo-app	refactor(expo-app): remove unused optimistic flag	keep	keep (tiny cleanup), or squash into adjacent session-status work if desired.	1	0	1	yes	2026-01-25T00:39:01+01:00	no
186	2026-01-23	8cc823d1ba2d	server-light	server-light	fix(server-light): validate PORT and normalize paths	keep	keep.	4	12	7	yes	2026-01-25T00:39:44+01:00	no
187	2026-01-23	8cb995a1abe1	server	server	test(server): fix schema generation sort regex	keep	keep (tiny but important test fix).	1	1	1	yes	2026-01-25T00:40:20+01:00	no
188	2026-01-23	04d9c60ef8e7	happy-cli	happy-cli	refactor(happy-cli): remove unreachable gemini error branch	keep	keep (small cleanup).	1	0	2	yes	2026-01-25T00:40:59+01:00	no
189	2026-01-23	2616e5e19253	server	server	fix(server): handle missing UI index.html	keep	keep (correctness + focused test).	2	29	1	yes	2026-01-25T00:41:36+01:00	no
190	2026-01-23	911365366024	server	server	fix(server): make build typecheck tests	keep	keep.	3	3	0	yes	2026-01-25T00:42:18+01:00	no
191	2026-01-23	0dd19e7fb257	expo-app	expo-app	fix(expo-app): default codex resume spec to empty	keep	keep.	3	2	11	yes	2026-01-25T00:55:34+01:00	no
192	2026-01-23	229e5fc36570	server-light	server-light	fix(server-light): use file URLs for sqlite db	keep	keep.	2	3	2	yes	2026-01-25T00:56:15+01:00	no
193	2026-01-23	e6f597e436c5	server	server	fix(server): fix server-light typecheck	keep	keep, but squash with 194 (tsconfig churn).	2	3	3	yes	2026-01-25T00:56:54+01:00	no
194	2026-01-23	1564e800e355	server	server	fix(server): relax module settings for typecheck	squash	squash into 193 (choose one final module configuration).	1	2	2	yes	2026-01-25T00:57:31+01:00	no
195	2026-01-23	8ab11f2788c1	happy-cli	happy-cli	fix(happy-cli): parse CLI versions from full output	keep	keep.	1	3	3	yes	2026-01-25T00:58:11+01:00	no
196	2026-01-23	21e096e9454e	i18n	i18n	fix(i18n): localize session settings item	keep	keep.	10	29	2	yes	2026-01-25T00:58:49+01:00	no
197	2026-01-23	7ca9e93196d6	i18n	i18n	fix(i18n): translate ExitPlanMode strings	keep	keep.	8	40	40	yes	2026-01-25T00:59:32+01:00	no
198	2026-01-23	c4a81947f002	expo-app	i18n	fix(i18n): localize search error	keep	keep (behavior improvement + test).	3	56	8	yes	2026-01-25T09:03:20+01:00	no
199	2026-01-23	208f0222a997	expo-app	i18n	fix(i18n): localize Codex resume dialog	keep	keep, but split during rewrite (recommended) because it mixes i18n strings with a substantial web UI refactor.	10	119	18	yes	2026-01-25T09:04:11+01:00	no
200	2026-01-23	02ad6b4a8352	i18n	i18n	fix(i18n): move openMachine to connect scope	keep	keep (small, coherent i18n refactor).	9	9	9	yes	2026-01-25T09:04:54+01:00	no
201	2026-01-23	ce42bf56d7b6	web	web	fix(web): correct libsodium wrapper typing	keep	keep.	1	12	2	yes	2026-01-25T09:05:34+01:00	no
202	2026-01-23	f0417ca11ac5	web	web	fix(web): keep libsodium wrapper namespace typing	keep	keep; squash into 201 in a rewritten history (direct follow-up).	1	1	1	yes	2026-01-25T09:06:11+01:00	no
203	2026-01-23	b6d3874bf175	settings	settings	fix(settings): include Codex resume in master experiment toggle	keep	keep.	1	2	0	yes	2026-01-25T09:06:54+01:00	no
204	2026-01-23	a4d7faba961f	expo-app	i18n	fix(i18n): localize session error fallbacks	keep	keep (user-facing correctness), but consider splitting out unrelated `expInboxFriends` translation additions during rewrite if they belong to a different feature.	10	67	13	yes	2026-01-25T09:07:54+01:00	no
205	2026-01-23	1ea2bddb8bbd	server	server	test(server): validate processImage resize output	keep	keep.	1	11	6	yes	2026-01-25T09:08:38+01:00	no
206	2026-01-23	1e7d7f8a4747	server	server	fix(server): keep light server running	keep	keep.	1	0	3	yes	2026-01-25T09:09:48+01:00	no
207	2026-01-23	61bf70183ebf	cli	cli	test(cli): set DEBUG before importing logger	keep	keep.	1	2	1	yes	2026-01-25T09:10:29+01:00	no
208	2026-01-23	61a18ac95e17	tools	tools	fix(tools): require permission id for ExitPlanMode actions	keep	keep; this is a correctness + safety hardening change (prevents silent no-op approvals and reduces state inconsistencies).	11	100	6	yes	2026-01-25T09:11:18+01:00	no
209	2026-01-23	5b36c9bf91c1	tools	tools	test(tools): avoid null permission in ExitPlanToolView tests	squash	squash into 208 during history rewrite (it’s a direct follow-up to make the new tests type-correct).	1	2	2	yes	2026-01-25T09:12:06+01:00	no
210	2026-01-23	b7f63e928e4f	persistence	persistence	fix(persistence): retry daemon state read when file appears	keep	keep.	2	51	4	yes	2026-01-25T09:29:01+01:00	no
211	2026-01-23	55428fb0253c	tools	tools	fix(tools): alert when AskUserQuestion permission id is missing	keep	keep; it’s consistent with 208’s hardening approach (permission id must exist before user actions are accepted).	2	59	1	yes	2026-01-25T09:29:44+01:00	no
212	2026-01-23	dc6955f88abd	terminal	terminal	fix(terminal): prevent sessionId path traversal in attachment info	keep	keep, but treat as a 3-commit security patch series with 237/238 and keep them adjacent during rewrite.	2	66	5	yes	2026-01-25T09:30:31+01:00	no
213	2026-01-23	bb685fbeff7b	terminal	terminal	fix(terminal): clarify missing --happy-starting-mode value	keep	keep.	2	7	2	yes	2026-01-25T09:32:18+0100	no
214	2026-01-23	5bcc7d20cd6b	utils	utils	test(utils): stabilize serverConnectionErrors retry count test	keep	keep (or squash into the commit that introduced this reconnection/backoff test during history rewrite).	1	9	7	yes	2026-01-25T09:32:38+0100	no
215	2026-01-23	82968aa8fe6c	ui	ui	fix(ui): send pending messages before closing modal	keep	keep.	2	172	4	yes	2026-01-25T09:33:08+0100	no
216	2026-01-23	b7219c8bfe2b	ink	ink	fix(ink): avoid async useInput handler	keep	keep.	1	13	5	yes	2026-01-25T09:33:26+0100	no
217	2026-01-23	d70a6f6669fe	claude	claude	fix(claude): trim CLAUDE_CONFIG_DIR overrides	keep	keep.	2	9	1	yes	2026-01-25T09:33:54+0100	no
218	2026-01-23	47f638b73fca	utils	utils	test(utils): cover failuresCount with custom backoff	keep	keep, but keep adjacent to 219 (the implementation fix).	1	32	1	yes	2026-01-25T09:34:15+0100	no
219	2026-01-23	2abc70fef03c	utils	utils	fix(utils): track failuresCount for custom backoff	keep	keep (optionally squash with 218).	1	13	8	yes	2026-01-25T09:34:44+0100	no
220	2026-01-23	dc8016f01c56	server	server	fix(server): validate HAPPY_SERVER_LIGHT_DATA_DIR for light migrations	keep	keep.	3	67	5	yes	2026-01-25T09:35:12+0100	no
221	2026-01-23	b0085827322c	server	server	fix(server): handle missing UI index in error handlers	keep	keep.	2	49	7	yes	2026-01-25T09:35:43+0100	no
222	2026-01-23	abf288056636	cli	cli	fix(cli): reject invalid messageQueueV1 inFlight	keep	keep.	2	19	2	yes	2026-01-25T09:36:02+0100	no
223	2026-01-23	73ce32d242a0	i18n	i18n	fix(i18n): translate Spanish experiment subtitles	keep	keep (or squash into a broader i18n sweep commit during history rewrite).	1	8	8	yes	2026-01-25T09:36:24+0100	no
224	2026-01-23	98bc00096e86	new-session	i18n	fix(i18n): localize Codex resume banner	split	split (recommended) or squash with its dependencies.	10	161	66	yes	2026-01-25T09:37:18+0100	no
225	2026-01-23	4fabec9b69b3	new-session	new-session	feat(new-session): add WizardSectionHeaderRow	keep	keep, but reorder to land before 224 (since 224 uses it).	1	44	0	yes	2026-01-25T09:37:37+0100	no
226	2026-01-23	c461ed1cb4ef	permission	permission	feat(permission): add permission mode option helpers	keep	keep; belongs alongside other permission-mode UX work.	1	74	0	yes	2026-01-25T09:38:18+0100	no
227	2026-01-23	23b595edd0fe	sync	sync	refactor(sync): simplify path formatting	keep	keep (or squash into adjacent “session list UI” refactors during rewrite).	1	1	7	yes	2026-01-25T09:38:41+0100	no
228	2026-01-23	523989b4de8e	server-light	server-light	fix(server-light): avoid master secret race	keep	keep; should be adjacent to 176 in the rewritten history under the “server-light init reliability” topic.	1	16	2	yes	2026-01-25T09:39:02+0100	no
229	2026-01-23	d89a9427e765	cli	cli	fix(cli): clean up metadata waiters on disconnect	keep	keep.	2	31	7	yes	2026-01-25T09:39:36+0100	no
230	2026-01-23	fedb8a66160a	cli	cli	test(cli): accept lowercase preview-env keys	keep	keep, but keep adjacent to 231 (the implementation).	1	17	0	yes	2026-01-25T09:40:11+0100	no
231	2026-01-23	fc0ce89b13b7	cli	cli	fix(cli): allow lowercase preview-env keys	keep	keep; this is a nice “accept lowercase” change with an important security follow-through.	2	19	6	yes	2026-01-25T09:40:41+0100	no
232	2026-01-23	ad95c5b01c25	hooks	happy	test(happy): keep useCLIDetection timestamp stable	keep	keep as part of the 232–235 “useCLIDetection timestamp stabilization” series; likely squash into 234 during rewrite.	1	52	0	yes	2026-01-25T09:41:05+0100	no
233	2026-01-23	c251edf3c307	hooks	happy	test(happy): fix useCLIDetection timestamp test	squash	squash into 232 (or into the final “stabilize timestamp” commit) during history rewrite; it’s a direct test follow-up.	1	47	42	yes	2026-01-25T09:41:39+0100	no
234	2026-01-23	34fa4091d3cc	hooks	happy	fix(happy): stabilize useCLIDetection timestamp	keep	keep, but squash with 232/233/235 during rewrite to avoid the request-constant back-and-forth.	1	11	12	yes	2026-01-25T09:43:58+0100	no
235	2026-01-23	31340e53294c	hooks	happy	fix(happy): inline CLI detection request	squash	squash into 234 during rewrite.	1	11	4	yes	2026-01-25T09:44:24+0100	no
236	2026-01-23	054250f408e2	i18n	i18n	fix(i18n): localize codex resume install modals	keep	keep; it’s a coherent i18n+UX polish change.	11	143	16	yes	2026-01-25T09:45:05+0100	no
237	2026-01-23	241f0ae24b1d	cli	cli	test(cli): prevent legacy sessionId path traversal	keep	keep; in a rewritten history, place this immediately before 238 (RED → GREEN) and keep it adjacent to 212.	1	23	0	yes	2026-01-25T09:45:37+0100	no
238	2026-01-23	a1e4a6dd3fbd	cli	cli	fix(cli): block legacy sessionId path traversal	keep	keep; this is the actual security fix that pairs with 237’s regression test and 212’s encoding change.	1	4	0	yes	2026-01-25T09:45:58+0100	no
239	2026-01-23	e2618e04a26b	a11y	a11y	fix(a11y): add labels to codex resume actions	keep	keep; high-value a11y improvement.	1	10	0	yes	2026-01-25T09:46:21+0100	no
240	2026-01-23	d0f9ad5e8310	claude	claude	test(claude): remove stale transcriptPath red-test scaffolding	squash	squash into the `transcriptPath` feature commit during rewrite.	1	3	5	yes	2026-01-25T09:46:58+0100	no
241	2026-01-23	1464402758bf	codex	codex	fix(codex): preserve falsy MCP tool results	keep	keep; this is a correctness fix for tool-call result propagation and should be near other MCP/tool-call handling commits.	2	41	1	yes	2026-01-25T09:47:16+0100	no
242	2026-01-23	57f84f0691c6	server-light	server-light	fix(server-light): harden public file path encoding	keep	keep (security-sensitive).	2	43	19	yes	2026-01-25T09:47:54+0100	no
243	2026-01-23	0b7db6945325	storage	storage	fix(storage): validate S3_PORT and bucket existence	keep	keep (prod safety; clearer configuration errors).	2	58	2	yes	2026-01-25T09:48:35+0100	no
244	2026-01-23	74fc860b07b5	queue	queue	refactor(queue): simplify stale in-flight reclaim	keep	keep (or squash into the surrounding messageQueueV1 series during rewrite; it’s not a standalone behavior change).	1	1	6	yes	2026-01-25T09:49:14+0100	no
245	2026-01-23	82bf82cb6715	hooks	hooks	fix(hooks): prevent stale capabilities cache overwrite	keep	keep (this is a real correctness/race fix with good coverage).	2	78	4	yes	2026-01-25T09:49:50+0100	no
246	2026-01-23	384b15252026	expo	expo	fix(expo): harden tool submit and pending send	keep	keep, but consider splitting during rewrite:	8	282	4	yes	2026-01-25T09:50:50+0100	no
247	2026-01-23	24b607abfa07	server	server	Refactor schema sync and centralize Prisma types	keep	keep, but likely split as noted above during history rewrite.	29	373	185	yes	2026-01-25T09:52:04+0100	yes
248	2026-01-23	bf3027799623	expo-app	expo-app	Set EXPO_UNSTABLE_WEB_MODAL env var in Expo scripts	keep	keep, but likely split as above during rewrite.	4	35	17	yes	2026-01-25T09:52:35+0100	no
249	2026-01-23	c803115dcbdc	expo-app	expo-app	Improve postinstall script for symlinked paths and patching	keep	keep; belongs immediately after the commit(s) that add patches under `expo-app/patches-expo-app/*` (e.g. 248) so the system becomes functional.	1	9	1	yes	2026-01-25T09:52:58+0100	no
