# WORKING FILE - safe to edit by hand.
# Seeded from: leeroy-wip.pr-assignment.draft.tsv
# Regenerate seed (overwrites): node docs/commit-audits/happy/_tools/init-pr-assignment-working.mjs --force
# Guidance:
# - Set finalPr/finalTitle per commit after reading its full manual-review section.
# - Set manualReviewedForPrPlan=yes only after you have read the entire section for that commit in leeroy-wip.commit-manual-review.md.
# - Keep translationHandling=in-feature-pr unless you explicitly decide otherwise for a specific commit.

n	shaShort	topicBucket	scopeTag	subject	verdict	filesChanged	proposedPr	proposedPrTitle	confidence	reason	notes	finalPr	finalTitle	needsSplit	translationHandling	manualReviewedForPrPlan	plannedAt	plannerNotes
001	58528a7c37d3	crypto	crypto	chore(crypto): patch react-native-libsodium	keep	1	PR01	Foundations / DevX	high	bucket=crypto		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:16:53+0100	Foundations/DevX (build/patch infra); consider squashing with other patch-package plumbing.
002	552b8da0f621	deps	deps	test(deps): add @types/react-test-renderer	keep	2	PR01	Foundations / DevX	high	bucket=deps		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:16:53+0100	Foundations/DevX (test types dep).
003	017b15c07ad7	config	config	chore(config): harden app variant defaults	keep	1	PR01	Foundations / DevX	high	bucket=config		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:16:53+0100	Foundations/DevX (app config reliability).
004	4890a471df31	auth	auth	fix(auth): harden tokenStorage web persistence	keep	2	PR04	Auth + storage scoping	high	auth bucket		PR04	Auth + storage scoping		in-feature-pr	yes	2026-01-25T12:16:53+0100	Auth + storage scoping (web persistence hardening + scoped native keys).
005	4adc41d92af0	sync	sync	feat(sync): add permission mode types and mapping	keep	4	PR10	Permission framework (Claude/cloud baseline)	medium	sync permission mode		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T12:16:53+0100	Permission framework baseline (types/mapping/normalization); model-mode allowlist may later be separated if needed.
006	a5fbc3e8ba00	persistence	persistence	feat(persistence): scope storage and validate draft modes	keep	4	PR05	Persistence / drafts	high	persistence bucket		PR04	Auth + storage scoping	yes	in-feature-pr	yes	2026-01-25T12:16:53+0100	Primarily storage scoping + persistence hardening; during rewrite likely split into (a) storage scoping core and (b) model-mode persistence helpers.
007	18e77c46f38a	session	session	fix(session): clamp configurable model modes	keep	1	PR19	Resume end-to-end	high	resume/session bucket		PR28	Model modes (per-session selection + persistence)		in-feature-pr	yes	2026-01-25T12:16:53+0100	Model modes final feature (UI clamping correctness).
008	f7bb8a28fff7	tools	tools	fix(tools): harden ACP tool parsing and titles	keep	4	PR39	Tool UX: normalization + specialized views + tracing	medium	tools keyword/bucket		PR39	Tool UX: normalization + specialized views + tracing		in-feature-pr	yes	2026-01-25T12:16:53+0100	Tool UX: ACP parsing hardening + safe tool_result normalization; includes required i18n keys.
009	292424245277	sync	sync	refactor(sync): centralize outgoing message metadata	keep	3	PR27	Sync robustness (transport/error parsing + backoff semantics)	low	sync bucket fallback		PR27	Sync robustness (transport/error parsing + backoff semantics)		in-feature-pr	yes	2026-01-25T12:16:53+0100	Sync robustness; outgoing message metadata builder is a foundational correctness improvement.
010	39cc25154cdd	storage	storage	feat(storage): persist session model modes	keep	2	PR24	Storage S3 validation	high	storage bucket/file		PR28	Model modes (per-session selection + persistence)	yes	in-feature-pr	yes	2026-01-25T12:16:53+0100	Mixed: (a) server-config scoping + (b) per-session model-mode persistence + (c) replaceSettings for convergence; split during rewrite.
011	c2d3507357dc	settings	settings	fix(settings): make parsing tolerant for profiles	keep	3	PR06	Settings: API keys + experiments + settings screens	medium	settings bucket		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T12:24:17+0100	Settings core reliability: tolerant parsing + legacy profile normalization + settings sync convergence (relies on split of 010 for replaceSettings).
012	207ef1b2f572	dev	dev	fix(dev): gate CLI detection logging	keep	3	PR01	Foundations / DevX	high	bucket=dev		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:24:17+0100	Dev-only debug-log gating; optionally squash into the feature that introduces the logs (capabilities/voice) during rewrite.
013	58a892d413d1	command-palette	command-palette	fix(command-palette): include navigate dependency	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=command-palette		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:26:06+0100	UI primitives: command-palette stale-closure fix (memo deps).
014	41479b35415f	env	env	feat(env): add env var template parsing	keep	3	PR07	Env var templates + preview/resolution end-to-end	high	env bucket		PR07	Env var templates + preview/resolution end-to-end		in-feature-pr	yes	2026-01-25T12:26:06+0100	Env var templates: parser/formatter + tests (shared primitive).
015	695bcd09eb9e	env	env	fix(env): improve remote env resolution and previews	keep	4	PR07	Env var templates + preview/resolution end-to-end	high	env bucket		PR07	Env var templates + preview/resolution end-to-end		in-feature-pr	yes	2026-01-25T12:26:06+0100	Env preview correctness/safety + preview-env integration (fallback avoids secrets); may fold preview-env backend into PR07 for a true end-to-end feature.
016	6cdb90a49aad	env	env	feat(env): update env var list, cards, and preview modal	keep	6	PR07	Env var templates + preview/resolution end-to-end	high	env bucket		PR07	Env var templates + preview/resolution end-to-end	yes	in-feature-pr	yes	2026-01-25T12:26:06+0100	Env vars UX overhaul (card/list/preview modal) + tests; optional split for reviewability.
017	65bae55a0b61	i18n	i18n	refactor(i18n): separate translation types and content	keep	14	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR03	i18n foundation sweep (optional)	yes	move-to-feature-pr	yes	2026-01-25T12:26:06+0100	i18n foundation: structural refactor (types from en.ts) + key expansion; split arch vs per-feature keys if feasible, otherwise land early to reduce conflicts.
018	2993b5c860ff	new-session	new-session	fix(new-session): restore standard modal flow	keep	17	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR26	New session wizard end-to-end	yes	in-feature-pr	yes	2026-01-25T12:26:06+0100	New-session wizard/pickers refactor; must split (components extraction, picker wiring, wizard behavior) and reorder prerequisites.
019	9e08047d2478	profiles	profiles	fix(profiles): harden routing, grouping, and editing	keep	13	PR08	Profiles feature	high	profiles/api-keys bucket		PR08	Profiles feature	yes	in-feature-pr	yes	2026-01-25T12:26:06+0100	Profiles core helpers (route params/grouping/actions/mutations/utils) + profiles settings UI wiring; consider split core helpers vs UI.
020	8d9f56e85e5a	ui	ui	refactor(ui): unify list selectors and modal primitives	keep	28	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR02	UI modal/overlay/popover + Expo web modal behavior	yes	in-feature-pr	yes	2026-01-25T12:26:06+0100	UI primitives mega-commit: modal/list primitives + AgentInput + row actions + unsaved-changes prompt + cleanup; must split into focused commits within PR02 (some cleanup may move to PR26/PR08).
021	2ab560bb0535	cli-detection	cli-detection	feat(cli-detection): add daemon detect-cli RPC support	keep	2	PR14	Capabilities end-to-end (protocol + wiring + reliability)	high	capabilities bucket/keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T12:28:26+0100	Capabilities/CLI detection: add detect-cli RPC path + safe fallback/timeout behavior (may be superseded by capabilities protocol later, but keep as the first reliable detection primitive).
022	2d4675a5d051	agent-input	agent-input	fix(agent-input): use compact permission badges	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=agent-input		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:28:26+0100	AgentInput/UI: compact permission badges; fold required i18n badge keys into PR02 and ensure accessibility labels remain meaningful.
023	d97924f3ef39	test	test	chore(test): define __DEV__ for vitest	keep	1	PR01	Foundations / DevX	high	bucket=test		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:28:26+0100	Test/DevX: define __DEV__ in vitest for deterministic dev-guarded code paths.
024	9c19baa833b9	settings	settings	feat(settings): add api keys and experiment toggles	keep	4	PR06	Settings: API keys + experiments + settings screens	medium	settings bucket		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T12:28:26+0100	Settings feature: add experiments + saved API keys schema + new-session apiKey route param consumption/persistence (foundation for API keys UI).
025	21cc6df79f50	api-keys	api-keys	feat(api-keys): add saved API keys UI	keep	5	PR08	Profiles feature	high	profiles/api-keys bucket		PR06	Settings: API keys + experiments + settings screens	yes	in-feature-pr	yes	2026-01-25T12:28:26+0100	API keys UI + pick flow; split out unrelated SettingsView/machine CLI glyph wiring into PR14 (capabilities/machines) during rewrite.
026	ce9cd74d408a	machine	machine	feat(machine): surface detected CLI status	keep	9	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T12:28:26+0100	Machines/capabilities UX: detected CLI status surfaces + cache/timeout + modal/list UI; fold i18n for these strings into PR14.
027	7899bbd8433e	profiles	profiles	feat(profiles): add API key requirements flow	keep	11	PR08	Profiles feature	high	profiles/api-keys bucket		PR08	Profiles feature	yes	in-feature-pr	yes	2026-01-25T12:28:26+0100	Profiles requirements: preflight required env vars (preview-env) + resolver modal + badges; split (metadata/schema vs hook vs modal/list wiring) and fold missing i18n.
028	0023ba1ea5aa	i18n	i18n	refactor(i18n): update translations and tooling	keep	11	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR03	i18n foundation sweep (optional)	yes	move-to-feature-pr	yes	2026-01-25T12:28:26+0100	i18n batch: huge locale-key expansion + tooling (compare script + literal scanner). During rewrite, split tooling to PR01 and distribute keys into the owning feature PRs where feasible.
029	12e75a3b36fa	autocomplete	autocomplete	fix(autocomplete): remove debug suggestion logs	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=autocomplete		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:28:26+0100	UI polish: remove debug suggestion logs (autocomplete).
030	679877c26ea9	settings	settings	feat(settings): expose per-experiment toggles	keep	1	PR06	Settings: API keys + experiments + settings screens	medium	settings bucket		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T12:28:26+0100	Settings feature: expose per-experiment toggles (likely squash with 024 in rewritten history).
031	4dc9c7f8759c	agent-input	agent-input	feat(agent-input): add configurable action bar layout	keep	2	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=agent-input		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:37:23+0100	AgentInput UI feature: configurable action bar layout + chip density; keep adjacent to other AgentInput UX refactors (depends on settings keys from PR06).
032	e8e42a6087ad	modal	modal	fix(modal): prevent stacked modal touch-blocking on iOS	keep	5	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=modal		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:37:23+0100	Modal/overlay reliability: iOS stacked-modal touch-blocking fix; keep early in PR02 before other modal/picker flows.
033	daa0b4527d7f	new-session	new-session	feat(new-session): add api key selection and wizard extraction	keep	4	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T12:37:23+0100	New-session wizard: extracted NewSessionWizard + API key selection/preflight/route plumbing; keep after profiles requirements + preview-env semantics (PR08/PR07) and settings keys (PR06).
034	94814465bf81	sync	sync	perf(sync): debounce pending settings writes	keep	1	PR27	Sync robustness (transport/error parsing + backoff semantics)	low	sync bucket fallback		PR27	Sync robustness (transport/error parsing + backoff semantics)		in-feature-pr	yes	2026-01-25T12:37:23+0100	Sync robustness/perf: debounce pending settings writes + safe flush-on-background + refreshMachinesThrottled de-dupe.
035	7ffd0c3428cb	ui	ui	fix(ui): localize error alerts	keep	1	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:37:23+0100	UI/i18n hygiene for alerts: localize default error alert title/button/unknown fallback; fold required keys into PR02 (don’t keep in a separate i18n PR).
036	97ca69e0a735	i18n	i18n	refactor(i18n): replace remaining UI literals	keep	19	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR03	i18n foundation sweep (optional)	yes	move-to-feature-pr	yes	2026-01-25T12:37:23+0100	Mixed i18n sweep + behavior: most changes are translation-key wiring; BUT includes expShowThinkingMessages gating in MessageView (move that behavior into PR06). Split during rewrite.
037	5f5b57df5181	ui	ui	refactor(ui): improve item rendering and action menu timing	keep	5	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:37:23+0100	UI primitives polish: Item subtitle node support + action-menu timing via InteractionManager + selectable count perf knob; keep near other item/menu refactors in PR02.
038	7976b877259c	experiments	experiments	feat(experiments): gate Zen, file viewer, and voice auth flow	keep	7	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=experiments		PR06	Settings: API keys + experiments + settings screens	yes	in-feature-pr	yes	2026-01-25T12:37:23+0100	Experiments feature: gate Zen/file-viewer/voice-auth behind per-experiment toggles; split Zen i18n string replacements into the appropriate feature PR/i18n distribution.
039	6ed379f82c34	ui	ui	refactor(ui): add modal + popover overlay primitives	**keep	43	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR02	UI modal/overlay/popover + Expo web modal behavior	yes	in-feature-pr	yes	2026-01-25T12:37:23+0100	UI overlay foundation: modal stacking + overlay portal + Popover primitives + consumer migrations; must split into ordered commits inside PR02 (test stubs → portal host → modal stack → Popover → migrations).
040	f0787de5308e	sync	sync	feat(sync): add secrets + terminal settings primitives	**keep	60	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR09	Secrets / vault feature	yes	in-feature-pr	yes	2026-01-25T12:37:23+0100	Massive mixed commit centered on secrets/vault: SecretString sealing + saved secrets + requirement resolver UI; split out terminal settings primitives to PR18 and sync/backoff + HappyError retry-policy work to PR27; crypto shims may belong in PR01/PR09. Also reconcile legacy profile normalization (011) vs removal noted here during rewrite.
041	66ee1eaf88a6	secrets	secrets	feat(secrets): add secrets management + requirement resolver	**keep	29	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR09	Secrets / vault feature	yes	in-feature-pr	yes	2026-01-25T12:42:28+0100	Secrets/vault UX: replace API keys UI with secrets + SecretRequirementModal + env presence hook; split out features/settings reorder bits to PR06, and fold translations into PR09/PR08/PR26 as appropriate during rewrite.
042	bdaf6913141f	terminal	terminal	feat(terminal): add Terminal settings + tmux metadata	keep	8	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T12:42:28+0100	Terminal/tmux end-to-end: Terminal settings screen + tmux detection + metadata/attach info; keep adjacent to later tmux plumbing.
043	bc779e4f7909	new-session	new-session	refactor(new-session): integrate secrets + terminal spawn options	**keep	17	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR26	New session wizard end-to-end	yes	in-feature-pr	yes	2026-01-25T12:42:28+0100	New-session: integrate secrets requirement resolution + terminal spawn options + popover boundary; split out search/auth/ui refactors into PR27/PR01/PR02 during rewrite.
044	cb11d4bdb25a	claude	docs	docs: add AGENTS.md symlink + update CLAUDE.md	keep	2	PR19	Resume end-to-end	low	claude fallback to resume		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:42:28+0100	Docs-only: AGENTS/CLAUDE guidance and invariants; keep in Foundations/DevX.
045	1bc3b9715776	sync	sync	fix(sync): handle non-JSON 400 responses	keep	2	PR27	Sync robustness (transport/error parsing + backoff semantics)	medium	sync robustness keyword		PR27	Sync robustness (transport/error parsing + backoff semantics)		in-feature-pr	yes	2026-01-25T12:42:28+0100	Sync robustness: guard JSON parsing for non-JSON 400 (GitHub OAuth), with test.
046	ea2e4d19d633	deps	deps	chore(deps): align react-test-renderer with react	keep	2	PR01	Foundations / DevX	high	bucket=deps		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:42:28+0100	Foundations/DevX: react-test-renderer version alignment (test infra maintenance).
047	dd041d21ecfc	sync	sync	fix(sync): guard JSON parsing on disconnect errors	keep	4	PR27	Sync robustness (transport/error parsing + backoff semantics)	medium	sync robustness keyword		PR27	Sync robustness (transport/error parsing + backoff semantics)		in-feature-pr	yes	2026-01-25T12:42:28+0100	Sync robustness: guard JSON parsing on disconnect 404 paths (GitHub/services), with tests; keep adjacent to 045.
048	395da4ff3167	zen	zen	refactor(zen): avoid todo variable shadowing	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=zen		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T12:42:28+0100	Zen tiny refactor; keep with Zen/experiments feature PR (PR06) for coherence.
049	2e956f32f220	new	new	fix(new): keep pick screens above iOS modal	keep	13	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T12:42:28+0100	New-session iOS navigation reliability: ensure pick screens/profile-edit present above containedModal; includes regression tests.
050	2da2f9349ec5	popover	popover	fix(popover): allow web fixed positioning types	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=popover		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:42:28+0100	Popover web typings fix ('fixed' positioning); squash into PR02 Popover/web portal hardening.
051	43f23f2f082e	format	format	chore(format): replace stray tabs with spaces	keep	2	PR01	Foundations / DevX	high	bucket=format		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:46:37+0100	Format-only whitespace normalization; squash into adjacent commits that touch the same files to avoid format-noise.
052	e1d55fdbd9ee	i18n	i18n	fix(i18n): improve untranslated literal scan parsing	keep	1	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T12:46:37+0100	Dev tooling correctness: untranslated-literals scanner parsing fixes; keep with tooling (PR01) and not inside feature PRs.
053	c210c1115598	sync	sync	test(sync): restore stubbed fetch between tests	keep	1	PR27	Sync robustness (transport/error parsing + backoff semantics)	low	sync bucket fallback		PR27	Sync robustness (transport/error parsing + backoff semantics)		in-feature-pr	yes	2026-01-25T12:46:37+0100	Test robustness for sync API tests: un-stub globals between tests to avoid leakage/order dependence.
054	66c678451335	ui	ui	fix(ui): apply small review fixes	split	8	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR02	UI modal/overlay/popover + Expo web modal behavior	yes	in-feature-pr	yes	2026-01-25T12:46:37+0100	Mixed small fixes across UI/new/terminal/dropdown/sync; keep but split into topic commits during rewrite (model-mode, picker params, dropdown chevron opacity, etc).
055	2472b376775c	modal	modal	test(modal): make backdrop z-index assertion safer	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=modal		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:46:37+0100	Modal test robustness: safer z-index assertion; squash into modal test series.
056	02450d179aaf	profiles	profiles	fix(profiles): align experimentsEnabled for built-in profiles	keep	1	PR08	Profiles feature	high	profiles/api-keys bucket		PR08	Profiles feature		in-feature-pr	yes	2026-01-25T12:46:37+0100	Profiles correctness: align experiments/Gemini gating for built-in profiles.
057	ff7bec72358f	secrets	secrets	fix(secrets): tighten callback deps and fix indentation	keep	1	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR09	Secrets / vault feature		in-feature-pr	yes	2026-01-25T12:46:37+0100	Secrets list reliability: tighten callback deps/indentation; small follow-up to secrets UI.
058	1bb65f5dd494	new-session	new-session	fix(new-session): avoid stuck secret requirement modal guard	keep	1	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T12:46:37+0100	New-session reliability: fix stuck “secret requirement modal open” guard ref.
059	f7f81497444d	modal	modal	fix(modal): prevent non-dismissible WebAlertModal	split	6	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=modal		PR02	UI modal/overlay/popover + Expo web modal behavior	yes	in-feature-pr	yes	2026-01-25T12:46:37+0100	Mixed: WebAlertModal default OK button + big Popover hardening + ConnectionStatusControl portal; must split into modal vs popover vs connection commits within PR02 and reorder to satisfy helper deps.
060	bb09f91de715	settings	settings	fix(settings): keep valid secrets when one entry is invalid	keep	2	PR06	Settings: API keys + experiments + settings screens	medium	settings bucket		PR09	Secrets / vault feature		in-feature-pr	yes	2026-01-25T12:46:37+0100	Secrets settings robustness: tolerant parsing keeps valid secrets when one entry invalid; keep with secrets feature PR (PR09).
061	765423af52b4	agent-input	agent-input	fix(agent-input): cycle permission mode from normalized state	keep	3	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=agent-input		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T12:50:14+0100	Permissions safety: canonical next-mode cycling helper + tests; later reconcile with 064 (reverted cycling) into one final implementation.
062	e533db1813a5	popover	popover	fix(popover): add screens cjs helper and fix fixed positioning types	keep	2	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=popover		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T12:50:14+0100	Popover infra: add requireReactNativeScreens() CJS helper and centralize web 'fixed' typing cast; must land before 059 for bisectability.
063	2ed3100311c7	secrets	secrets	fix(secrets): hide values when using secret vault	keep	10	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR09	Secrets / vault feature		in-feature-pr	yes	2026-01-25T12:50:14+0100	Secrets/vault privacy: enforce UI hiding when using vault; keep with secrets feature PR and fold i18n key into PR09.
064	e5848c480522	ui	ui	fix(ui): harden overlays and permission cycling	keep	6	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR02	UI modal/overlay/popover + Expo web modal behavior	yes	in-feature-pr	yes	2026-01-25T12:50:14+0100	Mixed overlay + permission cycling hardening: keep in PR02 but split; move final permission cycling logic into PR10, and keep NewSessionWizard onPermissionModeChange propagation with PR26; tests stay with overlay primitives.
065	69fdcff96a4c	sync	sync	fix(sync): restore session permission mode from last message	keep	2	PR10	Permission framework (Claude/cloud baseline)	medium	sync permission mode		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T12:50:14+0100	Permissions persistence: infer session permission mode from last user message + local updatedAt arbitration; safety-critical, keep with PR10.
066	9b499c5dccce	sync	sync	fix(sync): persist permission mode timestamp for restart-safe arbitration	keep	2	PR10	Permission framework (Claude/cloud baseline)	medium	sync permission mode		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T12:50:14+0100	Permissions persistence: persist permissionModeUpdatedAt map for restart-safe arbitration; keep adjacent to 065.
067	def8852509d0	sync	sync	fix(sync): persist permission mode reliably across devices	keep	11	PR10	Permission framework (Claude/cloud baseline)	medium	sync permission mode		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T12:50:14+0100	Permissions cross-device reliability: canonical PERMISSION_MODES + best-effort server time calibration + metadata fallback; keep with PR10.
068	b1c8a6fecd01	session	session	fix(session): archive when kill RPC unavailable	keep	4	PR19	Resume end-to-end	high	resume/session bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T12:50:14+0100	Sessions reliability: archive fallback when kill RPC unavailable; group with sessions/message UX PR.
069	c06b6202b5d4	expo-app	expo-app	Add copy-to-clipboard button to message blocks	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T12:50:14+0100	MessageView UX: copy-to-clipboard button for message blocks; keep with sessions/message list UX PR.
070	9fc7d3d412b9	sessions	sessions	feat(sessions): group inactive sessions by project	keep	16	PR19	Resume end-to-end	high	resume/session bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T12:50:14+0100	Sessions UX: group inactive sessions by project (setting + view-data builder + tests); keep with sessions/message UX PR and fold i18n keys into it.
071	62a8b1b07c3e	sessions	sessions	feat(sessions): add unread badge	keep	9	PR19	Resume end-to-end	high	resume/session bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T12:53:37+0100	Sessions UX: unread badge (persist last-viewed + helper + tests + avatar badge wiring); keep with sessions/message list UX PR.
072	82d74454c3c4	typecheck	typecheck	fix(typecheck): restore permission imports and Popover web styles	keep	3	PR01	Foundations / DevX	high	bucket=typecheck		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T12:53:37+0100	Typecheck cleanup for permission-mode work (imports/exports); squash into the owning permission commits in PR10 during rewrite (subject mentions Popover but diff is permission typing).
073	4f2b533f99c2	tools	tools	feat(tools): add approve/reject buttons to ExitPlanMode	keep	10	PR12	AskUserQuestion + ExitPlan native handling	medium	tools keyword/bucket		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T12:53:37+0100	Tool UX: ExitPlanMode approve/reject buttons + i18n; keep in AskUserQuestion/ExitPlan end-to-end PR.
074	c86cbd26b040	queue	queue	feat(queue): add pending message queue UI and send modes	keep	12	PR13	MessageQueueV1 + Pending messages end-to-end	high	queue bucket/keyword		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T12:53:37+0100	Pending queue feature: message send modes + pending messages modal/indicator + protocol/storage; keep in MessageQueueV1/Pending end-to-end PR (clean up theme/i18n during rewrite).
075	42da6dae8fe4	session	session	feat(session): add session rename support	keep	11	PR19	Resume end-to-end	high	resume/session bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T12:53:37+0100	Sessions UX: session rename via update-metadata + i18n; keep with sessions/message list UX PR.
076	057102f67904	resume	resume	feat(resume): add resume session option for new sessions	keep	17	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T12:53:37+0100	Resume feature: new-session resume picker + resume payload + capability gating + draft persistence; fold any unrelated Codex-session-id translations into the commit that uses them.
077	05532bd65c6b	resume	resume	feat(resume): show resume chip under path in new session	keep	3	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T12:53:37+0100	Resume UX: show resume chip under path in AgentInput/new-session; keep adjacent to 076.
078	cd5771e50881	resume	resume	feat: resume inactive Claude sessions from UI	keep	3	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T12:53:37+0100	Resume feature: initial UI support for resuming inactive Claude sessions (SessionView) + ops wiring + design doc; squash/reorder with 079 so intermediate commits are typecheck-safe and avoid hardcoded strings.
079	456e2ad8e2b8	resume	resume	refactor(resume): don't require agentSessionId from UI	keep	12	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T12:53:37+0100	Resume architecture: remove agentSessionId requirement from UI; add agentCapabilities helpers + translations; keep with resume end-to-end PR.
080	9b0069e3d30c	fork	fork	feat(fork): enable Codex resume support	keep	12	PR19	Resume end-to-end	medium	fork-tagged commit routed to resume for upstreaming		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T12:53:37+0100	Resume (Codex): enable Codex as resumable agent + show/copy Codex session id/commands. Treat as upstreamable by removing “fork-only” gating/notes during rewrite and ensuring semantics are correct for upstream.
081	4ddaef02210e	sync	sync	fix(sync): omit model meta for queued messages	keep	1	PR27	Sync robustness (transport/error parsing + backoff semantics)	low	sync bucket fallback		PR13	MessageQueueV1 + Pending messages end-to-end		in-feature-pr	yes	2026-01-25T12:56:53+0100	Queue/send-mode correctness: omit irrelevant model meta for queued/outgoing messages; keep adjacent to pending queue feature PR.
082	3fbdc10018fe	terminal	tmux	fix: tmux parsing/targeting + review feedback	split	15	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)	yes	in-feature-pr	yes	2026-01-25T12:56:53+0100	TMUX feature correctness: env parsing + command targeting + tests; commit is mixed (scripts/tests/etc) so split during rewrite to keep tmux fixes isolated.
083	7292a29822bb	daemon	daemon	fix(daemon): do not apply CLI active profile to GUI-spawned sessions	keep	1	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T12:56:53+0100	Daemon safety boundary: do not apply CLI active profile to GUI-spawned sessions (prevents env leakage).
084	ce94cfa512ac	session	session	feat(session): persist profileId in session metadata via daemon spawn	keep	6	PR19	Resume end-to-end	high	resume/session bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T12:56:53+0100	Daemon spawn metadata: thread profileId through spawn pipeline into session metadata; keep near other spawn/profile daemon changes and ensure log redaction (086) lands together.
085	e58e97fd7ff4	pr107	pr107	fix(pr107): harden daemon spawn + align profile schema	keep	3	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)	yes	in-feature-pr	yes	2026-01-25T12:56:53+0100	Daemon spawn hardening + profile schema alignment + env template expansion; reconcile with 090 (startupBashScript removal) during rewrite to avoid schema oscillation.
086	86330e263595	security	security	fix(security): redact spawn secrets from daemon logs	keep	2	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR16	Daemon reliability (ownership + reattach/restart safety)	yes	in-feature-pr	yes	2026-01-25T12:56:53+0100	Security: redact spawn secrets from daemon logs; split off/undo fs.writeFile await removal if unintended (keep spawn sequencing safe).
087	a25acab22b64	socket	socket	fix(socket): restore offline buffering for sends	keep	3	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=socket		PR17	CLI reliability (waiters + reconnection + backoff semantics)	yes	in-feature-pr	yes	2026-01-25T12:56:53+0100	CLI reliability: restore offline buffering for socket sends + tests; fix canSend/logSendWhileDisconnected inconsistency for bisectability during rewrite.
088	a7d23148c311	logging	logging	fix(logging): gate debug output and redact templates	keep	6	PR01	Foundations / DevX	high	bucket=logging		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T12:56:53+0100	CLI logging/privacy: gate debug output, redact templates/defaults, expandEnvVars tests; keep in CLI reliability PR.
089	ef418bc4dda3	pr107	pr107	fix(pr107): redact profile secrets in doctor + align tmux tmpDir	keep	2	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T12:56:53+0100	CLI: doctor redaction coverage + preserve TMUX_TMPDIR empty-string semantics; keep with CLI reliability/logging hardening.
090	1f90659694be	profiles	profiles	refactor(profiles): remove unwired startup script and local env cache	keep	1	PR08	Profiles feature	high	profiles/api-keys bucket		PR16	Daemon reliability (ownership + reattach/restart safety)	yes	in-feature-pr	yes	2026-01-25T12:56:53+0100	Profiles/daemon schema cleanup: remove unwired startupBashScript + local env cache; squash with 085 to present final stable schema (no oscillation).
091	7aed8aaee02f	profiles	profiles	refactor(profiles): drop provider config objects	keep	2	PR08	Profiles feature	high	profiles/api-keys bucket		PR16	Daemon reliability (ownership + reattach/restart safety)	yes	in-feature-pr	yes	2026-01-25T12:59:52+0100	CLI profile schema alignment: drop provider config objects and migrate to env vars (with tests); keep with daemon/CLI schema-spawn work to present one coherent schema story.
092	6b0bfe546d9e	runtime	runtime	feat(runtime): support bun for daemon-spawned subprocesses	keep	3	PR01	Foundations / DevX	high	bucket=runtime		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T12:59:52+0100	Runtime feature for daemon subprocesses: support bun vs node with tests; keep adjacent to daemon spawn refactors.
093	4071466545ab	rpc	rpc	refactor(rpc): accept arbitrary env var maps for spawn	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=rpc		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T12:59:52+0100	RPC spawn shape: accept arbitrary env var maps for spawn; keep with daemon spawn schema work.
094	809be82b53e7	env	env	fix(env): implement default assignment semantics	keep	2	PR07	Env var templates + preview/resolution end-to-end	high	env bucket		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T12:59:52+0100	CLI env expansion correctness: implement := assignment semantics; keep adjacent to other expandEnvVars/logging hardening commits.
095	4c2a671dc3f4	rpc	rpc	feat(rpc): add preview-env handler	keep	2	PR15	preview-env end-to-end	high	preview-env keyword/file		PR15	preview-env end-to-end		in-feature-pr	yes	2026-01-25T12:59:52+0100	preview-env daemon handler: security-sensitive env preview with policies/heuristics and thorough tests; keep in preview-env end-to-end PR.
096	2973f7fe6861	codex	codex	fix(codex): harden MCP command detection	keep	2	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR21	Codex MCP tool-call result correctness		in-feature-pr	yes	2026-01-25T12:59:52+0100	Codex MCP safety: harden codex/mcp-server detection and avoid stdout payload leaks; keep with codex tool-call/permission correctness PR.
097	c863db3d5bbc	offline	offline	refactor(offline): make offline session stub safer	keep	2	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T12:59:52+0100	Resume/offline reliability: safer offline session stub (EventEmitter + aligned surface) with test; keep with resume/offline tooling PR.
098	0a1a91a631e7	tmux	tmux	feat(tmux): support per-instance socket path	keep	2	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T12:59:52+0100	TMUX feature: per-instance socket path support + quoting/validation hardening + tests; keep in terminal/tmux end-to-end PR.
099	c52227082c2b	tmux	tmux	fix(tmux): correct env, tmpdir, and session selection	keep	21	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)	yes	in-feature-pr	yes	2026-01-25T12:59:52+0100	Large mixed tmux+daemon spawn reliability: TMUX_TMPDIR/env correctness + deterministic session selection + tests; split into tmux vs daemon vs codex/logging pieces during rewrite; keep core tmux/daemon parts under PR18/PR16 as appropriate.
100	7a01a8e42629	claude	claude	test(claude): align sessionScanner path mapping	keep	1	PR20	Claude session reliability (switching + transcript/scanner + local runner)	medium	claude scanner/transcript keyword		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T13:02:08+0100	Claude scanner test reliability: align transcript path mapping and reduce flakiness (waitFor); keep with Claude transcript/session scanning PR.
101	1075a768e551	rpc	rpc	feat(rpc): add detect-cli handler	keep	2	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=rpc		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T13:02:08+0100	detect-cli daemon handler (PATH scan + tests): foundational for capabilities/diagnostics; keep with capabilities end-to-end PR.
102	c988f68ca4d0	ui	ui	feat(ui): surface Codex/Gemini errors in session UI	keep	9	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR30	Agent error surfaces (Codex/Gemini)		in-feature-pr	yes	2026-01-25T13:40:00+0100	Agent error surfaces: surface Codex/Gemini errors in session UI + add shared CLI formatting helpers/tests; keep separate from modal/overlay primitives PR.
103	b2269ee11252	claude	claude	fix(claude): use hook transcript path across switching	keep	18	PR20	Claude session reliability (switching + transcript/scanner + local runner)	medium	claude scanner/transcript keyword		PR20	Claude session reliability (switching + transcript/scanner + local runner)	yes	in-feature-pr	yes	2026-01-25T13:02:08+0100	Claude hook switching/transcript correctness: prefer hook transcript_path, idempotent switch, waitForSessionFound, and tests; large but cohesive, may split into hook-path vs switch-RPC vs tests during rewrite.
104	f53cf71d416c	persistence	persistence	refactor(persistence): remove deprecated tmuxConfig	keep	1	PR05	Persistence / drafts	high	persistence bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:02:08+0100	CLI schema cleanup: remove deprecated tmuxConfig + env injection; keep with daemon/CLI spawn/schema alignment PR.
105	8dae65f6c585	rpc	rpc	feat(rpc): include tmux in detect-cli	keep	2	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=rpc		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T13:02:08+0100	detect-cli enrichment: include tmux + version parsing + optional login status + tests; keep with capabilities/diagnostics PR and order after 101.
106	ad66c6aaa3ae	terminal	terminal	feat(terminal): add tmux metadata + attach tooling	keep	23	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)	yes	in-feature-pr	yes	2026-01-25T13:02:08+0100	Terminal feature: add metadata + attach tooling + headless tmux launcher + runtime flags and strong tests; large, consider splitting into metadata vs attach command vs runtime flags during rewrite.
107	c13d51ee4638	daemon	daemon	feat(daemon): support tmux spawn + harden runtime	keep	8	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:02:08+0100	Daemon: tmux spawn support + runtime/backoff hardening; keep adjacent to terminal/tmux series and ensure terminal options forwarding stays consistent.
108	f7db44dea458	cli	docs	docs: add AGENTS.md symlink	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=cli		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T13:02:08+0100	Docs-only: add cli AGENTS.md symlink; keep in Foundations/DevX.
109	af5000ea6318	ui	ui	fix(ui): polish Codex and Gemini error messages	keep	4	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR30	Agent error surfaces (Codex/Gemini)		in-feature-pr	yes	2026-01-25T13:40:00+0100	Agent error surfaces follow-up: polish Codex/Gemini error message formatting + tests; keep adjacent to 102.
110	f68552d03ab9	tmux	tmux	fix(tmux): print attach instructions in correct order	keep	2	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T13:40:00+0100	TMUX UX: print attach instructions in correct order (inside vs outside tmux) + tests; keep with terminal/tmux end-to-end PR.
111	4e4bb65ff3f0	tmux	tmux	test(tmux): avoid brittle assertions	keep	1	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T13:40:00+0100	TMUX test robustness: avoid brittle assertions for attach instructions; keep adjacent to 110.
112	45f4eb5d145c	detect-cli	detect-cli	test(detect-cli): avoid process.env reassignment	keep	1	PR14	Capabilities end-to-end (protocol + wiring + reliability)	high	capabilities bucket/keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T13:40:00+0100	detect-cli test hygiene: avoid process.env reassignment; keep with capabilities/detect-cli PR.
113	51782fdbfbcd	codex	codex	test(codex): reset transport instances between tests	keep	1	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR21	Codex MCP tool-call result correctness		in-feature-pr	yes	2026-01-25T13:40:00+0100	Codex MCP client test isolation: reset shared transport instances deterministically; keep with Codex MCP tool-call correctness PR.
114	0ad76f4877ae	cli	cli	chore(cli): fix gemini daemon block indentation	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=cli		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T13:40:00+0100	CLI code style: whitespace/indentation fix in Gemini daemon start block (no behavior); squash into nearby CLI changes if desired.
115	a8093e3e4ddb	persistence	persistence	docs(persistence): update profile schema version comment	keep	1	PR05	Persistence / drafts	high	persistence bucket		PR05	Persistence / drafts		in-feature-pr	yes	2026-01-25T13:40:00+0100	Docs-only: update profile schema version comment in persistence module; keep with persistence PR (or squash into adjacent persistence changes).
116	b16c3658b944	gemini	gemini	fix(gemini): normalize error details for UI	keep	1	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR30	Agent error surfaces (Codex/Gemini)		in-feature-pr	yes	2026-01-25T13:40:00+0100	Agent error formatting robustness: normalize Gemini errorDetails shape for consistent UI checks; keep with Codex/Gemini error surface PR.
117	d9591372655f	common	common	fix(common): handle execFileAsync exit codes	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=common		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T13:40:00+0100	detect-cli robustness: handle execFileAsync non-zero exit codes across node/platform shapes; keep adjacent to detect-cli handler series.
118	ab95e8cf920c	sync	sync	fix(sync): avoid hanging invalidateAndAwait on errors	keep	3	PR27	Sync robustness (transport/error parsing + backoff semantics)	medium	sync robustness keyword		PR27	Sync robustness (transport/error parsing + backoff semantics)		in-feature-pr	yes	2026-01-25T13:40:00+0100	Sync reliability: ensure invalidateAndAwait resolves on command errors (no hangs) + add tests; keep in sync robustness PR.
119	6f98c95fb5d8	claude	claude	fix(claude): support -c/-r and avoid session loss on switch	keep	13	PR18	TMUX/Terminal end-to-end	medium	claude remote/local switching		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T13:40:00+0100	Claude session continuity: support -c/-r flags, CLAUDE_CONFIG_DIR consistency, and avoid session loss on remote/local switch with strong tests; keep with Claude transcript/session handling PR (after 103).
120	9489d70848f3	claude	claude	test(claude): align sessionScanner path mapping	squash	1	PR20	Claude session reliability (switching + transcript/scanner + local runner)	medium	claude scanner/transcript keyword		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T13:40:00+0100	Trivial test cleanup (blank line) with misleading subject; squash into nearby Claude tests during rewrite.
121	9c4cb44b7d86	daemon	daemon	fix(daemon): reattach sessions after daemon restart	keep	7	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:17:11+0100	Daemon reliability: session marker registry + restart reattach semantics + atomic daemon state persistence; keep with ownership-gated process safety.
122	dbde6d871670	daemon	daemon	test(daemon): add PID classification + session marker tests	keep	3	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:17:11+0100	Daemon reliability tests: PID classification strictness + session marker semantics; keep adjacent to 121.
123	7cffdd5ce614	daemon	daemon	fix(daemon): verify PID via command hash for reattach/stop	keep	4	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:17:11+0100	Daemon safety hardening: PID reuse mitigation via process command hashing for reattach/stop; keep adjacent to 121/122.
124	8b88dcd73d40	claude	claude	fix(claude): carry permission mode across remote/local switches	keep	5	PR18	TMUX/Terminal end-to-end	medium	claude remote/local switching		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T13:17:11+0100	Permission framework (Claude baseline): carry selected permission mode across remote/local switches by persisting lastPermissionMode and updating Claude args before spawn; safety-critical.
125	8f0e10c9428b	claude	claude	fix(claude): publish permission mode in session metadata	keep	7	PR19	Resume end-to-end	low	claude fallback to resume		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T13:17:11+0100	Permission framework (metadata publish): publish permissionMode(+updatedAt) into session metadata for Claude so app can seed UI state before first app-originated message; keep adjacent to 124 and app-side consumption.
126	ffad20faa406	cli	cli	fix(cli): publish permission mode for codex/gemini sessions	keep	5	PR11	Agent permissions (Codex/Gemini): permission modes + allowlists	medium	agent-specific permission keyword		PR11	Agent permissions (Codex/Gemini): permission modes + allowlists		in-feature-pr	yes	2026-01-25T13:17:11+0100	Agent permissions (Codex/Gemini): seed/update permissionMode in metadata + CLI arg parsing + canonical permission constants; keep with agent-specific permissions PR (adjacent to 125 for shared metadata shape).
127	eb72c6e69434	codex	codex	fix(codex): disable model override and remove experimental resume	keep	1	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:17:11+0100	Codex session lifecycle: remove brittle experimental resume + disable model overrides (restart drops context explicitly); squash into the earlier Codex “model override/experimental resume” intro commits during rewrite.
128	d317f6bfa282	typecheck	typecheck	fix(typecheck): resolve duplicate terminalRuntime and RPC handler types	keep	3	PR01	Foundations / DevX	high	bucket=typecheck		PR11	Agent permissions (Codex/Gemini): permission modes + allowlists		in-feature-pr	yes	2026-01-25T13:17:11+0100	Follow-up compile fix: remove duplicated terminalRuntime keys introduced in Codex/Gemini metadata plumbing + align async stopSession test stub; squash into 126 during rewrite.
129	a8682d427794	detect-cli	cli	fix(detect-cli): relax tmux version probe timeout	keep	1	PR14	Capabilities end-to-end (protocol + wiring + reliability)	high	capabilities bucket/keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T13:17:11+0100	detect-cli reliability: relax tmux version probe timeout to reduce false negatives on slow machines; keep with capabilities/detect-cli PR.
130	e2824dbc858b	queue	queue	feat(queue): add server-side pending message pull support	keep	5	PR13	MessageQueueV1 + Pending messages end-to-end	high	queue bucket/keyword		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T13:17:11+0100	Mixed: (a) queue feature: add pending-pop/pull API + agent-side drain semantics; (b) resume: add codexSessionId metadata. Keep PR13 but needsSplit=yes: move codexSessionId metadata to PR19 during rewrite.
131	37a2c55a6c2f	session	session	fix(session): prime agent state for readiness	keep	2	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:23:41+0100	Agent lifecycle correctness: prime Codex/Gemini agentStateVersion so UI readiness flips true; keep with resume/session lifecycle PR since resume/attach relies on readiness.
132	88494b122194	tools	tools	fix(tools): support Windows arm64 tool unpacking	likely	6	PR12	AskUserQuestion + ExitPlan native handling	medium	tools keyword/bucket		PR12	AskUserQuestion + ExitPlan native handling	yes	in-feature-pr	yes	2026-01-25T13:23:41+0100	Mixed + later reverted by 140: Windows arm64 tools mapping + rg.exe launcher + test-runner env fallbacks. Keep in tools PR as a pair with its revert; likely drop 132+140 in rewrite unless we intentionally reintroduce parts.
133	d71587eda2db	resume	resume	feat: resume Claude sessions from UI	keep	4	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:23:41+0100	Resume plumbing (Claude): plumb vendor resume id through daemon spawn with strict allowlist; keep adjacent to resume UI/RPC callers so it lands end-to-end.
134	a80868aff50d	resume	resume	feat: resume inactive Claude sessions from UI	keep	7	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T13:23:41+0100	Inactive resume core (Claude): resume-session RPC + persisted session file + --existing-session + initial message injection. Large mixed commit; keep in resume PR but split during rewrite into persistence format + RPC plumbing + Claude attach + types.
135	bcaa530b12d7	resume	resume	feat(resume): add happy resume and persist vendor resume id	keep	3	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:23:41+0100	Resume UX/tooling: add `happy resume` command and persist vendorResumeId into local session file; keep with inactive resume end-to-end PR.
136	e085e75c5d36	resume	resume	feat(resume): allow resume-session without agentSessionId	keep	3	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:23:41+0100	Resume robustness: allow resume-session without agentSessionId and derive effective vendor resume id from persisted local session state; must squash/follow immediately with compile-fix for duplicate import.
137	68a6ba4bc244	fork	fork	feat(fork): enable Codex inactive-session resume via codex-reply	keep	6	PR19	Resume end-to-end	medium	fork-tagged commit routed to resume for upstreaming		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T13:23:41+0100	Codex inactive resume: attach to existing session + vendor resume id via codex-reply MCP tool. Treat as upstream-targeted per decision: remove “fork-only” framing/gating during rewrite. Big mixed; split into MCP resume seeding + attach plumbing + persistence updates.
138	d3aefaa9b598	daemon	daemon	refactor(daemon): extract reattach and pid safety helpers	keep	3	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:23:41+0100	Daemon refactor: extract pidSafety + marker adoption helpers to keep reattach/kill ownership gates strict and testable; keep with daemon reattach series.
139	72397b7e8c94	daemon	test	test(daemon): add opt-in reattach integration tests	keep	2	PR16	Daemon reliability (ownership + reattach/restart safety)	medium	daemon bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T13:23:41+0100	Daemon opt-in real integration tests for reattach/command hashing; keep with daemon reliability PR (gated by env var, safe for CI).
140	9c40c54018c2	cli	cli	Revert \"fix(tools): support Windows arm64 tool unpacking\"	keep	6	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=cli		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T13:23:41+0100	Revert of 132 (Windows arm64 tools + scripts tests + test env fallback). Keep paired with 132 in tools PR; likely drop both (net no-op) unless reintroducing pieces intentionally.
141	ab35b47ff699	resume	resume	fix(resume): make inactive resume reliable; gate Codex resume	keep	17	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T13:27:40+0100	Inactive resume finalization: remove HAPPY_INITIAL_MESSAGE flow in favor of pending-queue + spawn-only; add experimental Codex resume gating (app+daemon) + resume-server install/status surfaces. Large mixed; keep in resume PR but split during rewrite.
142	aa9b11684389	codex	codex	fix(codex): increase installer output buffer	keep	1	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:27:40+0100	Resume-server installer reliability: increase npm install execFile buffer to avoid maxBuffer failures; keep adjacent to 141/144/146.
143	c4beebbfa375	ui	app	feat(ui): add Codex resume experiment toggle	keep	10	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:27:40+0100	Resume UX gating: add expCodexResume experiment toggle + translations; keep with inactive resume/Codex resume gating PR.
144	0140ae276869	codex	codex	refactor(codex): install mcp resume server via install-dep	keep	5	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:27:40+0100	Resume-server installer refactor: switch to install-dep + mcp-server wrapper binary (codex-mcp-resume) and update app ops/settings accordingly; keep with 141/146.
145	2ec41b621b54	codex	codex	fix(codex): detect resume binary on Windows	keep	1	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:27:40+0100	Resume-server Windows fix: detect installed binary with F_OK on win32 (X_OK unreliable); keep adjacent to 144/146.
146	e1deb6db8ddb	codex	codex	refactor(codex): add dep-status and drop codex-resume RPCs	keep	3	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:27:40+0100	Resume-server API consolidation: add dep-status + install-dep and drop codex-resume-specific RPCs; update machine UI + ops to use generic dep APIs.
147	231d7ad9bdd9	ui	app	fix(ui): clarify Codex resume server label	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:27:40+0100	Resume-server UX copy: clarify machine screen section label (“Codex resume server”); keep adjacent to 146.
148	8bebf04aca92	cli	cli	refactor(cli): modularize capabilities and env preview	keep	18	PR14	Capabilities end-to-end (protocol + wiring + reliability)	high	capabilities bucket/keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)	yes	in-feature-pr	yes	2026-01-25T13:27:40+0100	Capabilities protocol final feature: add checklist-based capabilities.* RPC (detect/describe/invoke) and migrate detect-cli/dep-status/install-dep; also extracts preview-env handler module. Keep under capabilities PR but split: move preview-env extraction to PR15 during rewrite.
149	bcf10af94626	ui	test	test(ui): update useCLIDetection hook tests for capabilities	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T13:27:40+0100	Capabilities UI test alignment: update useCLIDetection hook tests for capabilities snapshot model; keep adjacent to app-side capabilities migration commits.
150	a5cac698f15b	cli	cli	feat(cli): harden session queue, switching, and lifecycle	keep	24	PR13	MessageQueueV1 + Pending messages end-to-end	medium	queue files		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T13:27:40+0100	MessageQueueV1 core (CLI): metadata-backed pending queue w/ inFlight acking via localId, plus discard-on-switch policy + ACP lifecycle edges. Very mixed; keep in queue PR but split into coherent commits during rewrite.
151	3fc704424e8d	app	app	feat(app): add pending queue, discard markers, and capabilities	keep	44	PR14	Capabilities end-to-end (protocol + wiring + reliability)	high	capabilities bucket/keyword		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T13:31:51+0100	Mixed mega-commit spanning MessageQueueV1 (app metadata-backed queue + CAS updater + submit-mode policy + discard markers) and Capabilities protocol migration + NewSession wizard extraction. Keep finalPr=PR13 but split: move capabilities migration + new-session wizard pieces to PR14/PR26 during rewrite; keep queue+submit-mode+discard-markers in PR13.
152	49893dd7d16a	terminal	terminal	fix(terminal): harden remote→local switching input	keep	4	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR31	Terminal switching reliability (remote↔local)		in-feature-pr	yes	2026-01-25T13:40:30+0100	Terminal switching reliability: deterministic remote→local input handling + stdin drain helper with tests; not tmux-specific, keep in terminal-switching PR.
153	0126667539b6	claude	claude	fix(claude): forward signals to binary child process	keep	2	PR19	Resume end-to-end	low	claude fallback to resume		PR31	Terminal switching reliability (remote↔local)		in-feature-pr	yes	2026-01-25T13:40:30+0100	Terminal mode-switch reliability: forward SIGINT/SIGTERM(/SIGHUP) to Claude binary child to avoid orphaned stdin owners; not tmux-specific, keep with terminal switching PR.
154	39c7b8a56b32	app	app	refactor(app): rename tmux/message-send settings under session	keep	11	PR18	TMUX/Terminal end-to-end	medium	terminal/tmux files		PR18	TMUX end-to-end (headless sessions + attach + settings)	yes	in-feature-pr	yes	2026-01-25T13:40:30+0100	Mixed settings rename: tmux keys belong in TMUX PR; message-send key rename belongs with queue/submit-mode work. Keep finalPr=PR18 but needsSplit=yes and move message-send rename to PR13 during rewrite.
155	fcec6c311b6b	sync	sync	feat(sync): add cross-device unread markers	keep	6	PR27	Sync robustness (transport/error parsing + backoff semantics)	low	sync bucket fallback		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T13:31:51+0100	Sessions UX (cross-device unread): move unread markers from local MMKV to encrypted metadata readStateV1 + focus/blur marking; keep with sessions/message UX PR (unread consistency story).
156	8c16ee8f9cef	auth	auth	fix(auth): surface auth failures and gate unauth routes	keep	6	PR04	Auth + storage scoping	high	auth bucket		PR04	Auth + storage scoping		in-feature-pr	yes	2026-01-25T13:31:51+0100	Auth hardening: tolerate null service_tier in raw usage payload + add unauth route guard (layout-level) with tests; keep in Auth+storage scoping PR.
157	320a89e19ca0	happy	test	test(happy): run cli and server checks from root scripts	keep	1	PR01	Foundations / DevX	low	happy bucket fallback		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T13:31:51+0100	DevX/validation: root scripts run expo-app+cli+server test/typecheck/build via happys wrappers; keep in Foundations PR.
158	3b3609fed434	rpc	rpc	fix(rpc): add structured code for missing RPC methods	keep	7	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=rpc		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T13:31:51+0100	RPC robustness: add structured errorCode=RPC_METHOD_NOT_AVAILABLE while preserving legacy error string; update app ops fallback logic + add tests server/app side; keep with CLI/app reliability PR.
159	0e2c7928f24c	scanner	scanner	fix(scanner): tolerate onMessage exceptions	keep	3	PR19	Resume end-to-end	high	resume/session bucket		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T13:31:51+0100	Claude scanner robustness: tolerate onMessage callback exceptions + regression test; keep with Claude transcript/scanner correctness PR.
160	7fbe1f1cc727	permission	permission	fix(permission): avoid no-op permissionModeUpdatedAt bumps	keep	6	PR10	Permission framework (Claude/cloud baseline)	medium	permission bucket		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T13:31:51+0100	Permission arbitration correctness: avoid bumping permissionModeUpdatedAt on no-op updates (Claude/Codex/Gemini) via shared helper + tests; keep with permission framework PR.
161	2026fbab5cb3	claude	claude	fix(claude): accept -c as continue flag	keep	1	PR19	Resume end-to-end	low	claude fallback to resume		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T13:46:10+0100	Claude local-runner correctness: treat -c as --continue for session control detection; keep with Claude session handling/transcript correctness PR (adjacent to other -c/-r fixes).
162	ee0bec2a0b90	resume	resume	Delete INACTIVE_SESSION_RESUME.md	likely	1	PR19	Resume end-to-end	high	resume/session bucket		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T13:46:10+0100	Docs cleanup for resume: delete inactive resume design doc; likely squash into broader resume docs reorg or drop only if doc is intentionally superseded elsewhere.
163	84df0d260513	expo-app	expo-app	fix(expo-app): stabilize postinstall and libsodium patches	keep	6	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T13:46:10+0100	Expo install stability: deterministic postinstall (hoisted patch-package support) + libsodium-wrappers ESM patch + related typing fix; keep with Expo web/build stability PR.
164	544f9711b6cf	ui	app	fix(ui): respond to plan/question tools via session RPC	keep	5	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T13:46:10+0100	Tool UX: respond to AskUserQuestion via interaction.respond with back-compat fallback; ExitPlanMode uses allow/deny without extra chat message; keep with AskUserQuestion/ExitPlan native handling PR (requires 158 errorCode support).
165	8b3f39f22664	cli	cli	feat(cli): add interaction.respond for AskUserQuestion	keep	5	PR12	AskUserQuestion + ExitPlan native handling	medium	tools keyword/bucket		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T13:46:10+0100	Tool plumbing (CLI): add interaction.respond RPC for AskUserQuestion by injecting tool_result into active Claude remote prompt; keep adjacent to 164 so UI+CLI land end-to-end.
166	ed4bc007308a	codex	codex	feat: add execpolicy approval option for Codex	keep	13	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)		in-feature-pr	yes	2026-01-25T13:46:10+0100	Codex approvals (app): add execpolicy approval decision + button + payload plumbing + reducer refresh of tool input; keep with Codex approvals/MCP interactions PR and squash with follow-ups (167/168/169) in rewrite.
167	78adc9c58811	codex	codex	feat(codex): support execpolicy approvals and MCP tool calls	keep	5	PR21	Codex MCP tool-call result correctness	medium	codex mcp keyword		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)	yes	in-feature-pr	yes	2026-01-25T13:46:10+0100	Codex approvals (CLI): support approved_execpolicy_amendment end-to-end + version-aware elicitation handling + MCP tool-call begin/end surfacing. Large mixed; keep in Codex approvals/MCP PR (split protocol vs tool-call UX during rewrite).
168	9dfa09bef8d8	i18n	i18n	fix(i18n): add Codex execpolicy button text	keep	2	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)		in-feature-pr	yes	2026-01-25T13:46:10+0100	Codex approvals i18n completion: add missing execpolicy approval button label translations (it/ja); squash into 166 during rewrite.
169	559d39da116d	reducer	reducer	fix(reducer): keep permission messages idempotent	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=reducer		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)		in-feature-pr	yes	2026-01-25T13:46:10+0100	Codex approvals UI stability: keep permission/tool messages idempotent by only updating tool input when arguments changed; keep adjacent to 166 to avoid re-render churn.
170	cc3c711ae28e	claude	claude	fix: move claudeArgs to end of args array for slash command support	keep	1	PR19	Resume end-to-end	low	claude fallback to resume		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T13:46:10+0100	Claude local-runner correctness: append claudeArgs last so prompt/slash commands are positioned correctly; keep with Claude session handling PR.
171	d06d5a833f8e	claude	claude	Add signal forwarding to claudeLocal.ts	keep	1	PR18	TMUX/Terminal end-to-end	medium	claude remote/local switching		PR31	Terminal switching reliability (remote↔local)		in-feature-pr	yes	2026-01-25T14:04:18+0100	Forward OS signals from CLI to Claude local child; terminal switching/signal handling reliability (non-tmux).
172	1b7cb3bfea86	codex	codex	feat: handle /clear command as session reset in codex	keep	3	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR33	Codex special commands (/clear session reset)		in-feature-pr	yes	2026-01-25T14:04:18+0100	Codex /clear: isolate+clear queue boundary + reset session state; includes tiny Claude /clear log-label fix.
173	332ab2b0cd93	cli	cli	fix(cli): improve abort error handling to reduce spurious error messages	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=cli		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T14:04:18+0100	ClaudeRemoteLauncher: classify abort errors as expected and reduce spurious “process error” noise.
174	e956463db3e2	codex	codex	fix: use runtime execPath for MCP bridge	keep	3	PR19	Resume end-to-end	low	codex/gemini fallback to resume		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)		in-feature-pr	yes	2026-01-25T14:04:18+0100	MCP bridge runner compatibility: spawn happy-mcp via process.execPath (bun or node) for Codex+Gemini instead of relying on executable .mjs.
175	f0a7d8d0b40c	codex	codex	fix(codex): use mcp tool call id for approvals	keep	2	PR21	Codex MCP tool-call result correctness	medium	codex mcp keyword		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)		in-feature-pr	yes	2026-01-25T14:04:18+0100	Approvals correctness: key approvals + proposed execpolicy amendment caching by MCP tool call id; includes focused unit tests.
176	da620b6865ad	server	server	feat(server): add full/light flavors with sqlite migrations	keep	38	PR22	Server-light flavor (variant + schema/prisma sync)	medium	server light/schema/prisma keyword		PR22	Server-light flavor (variant + schema/prisma sync)	yes	in-feature-pr	yes	2026-01-25T14:04:18+0100	Server-light final feature; needsSplit=yes to move optional UI serving + /files route hardening into PR23 during rewrite.
177	893ce7af5df0	expo-app	expo-app	fix(expo-app): avoid hooks order violation on redirect	keep	2	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR04	Auth + storage scoping		in-feature-pr	yes	2026-01-25T14:04:18+0100	Auth redirect correctness: avoid hooks-order violations in RootLayout redirect path; includes regression test.
178	7afbc9a2decd	expo-app	expo-app	fix(expo-app): persist resumeSessionId and harden clipboard paste	keep	5	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T14:04:18+0100	New-session wizard/resume pick reliability: persist resumeSessionId + safe clipboard paste helper (tests).
179	9a13879b753a	expo-app	expo-app	fix(expo-app): avoid false homeDir prefix matches	keep	2	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T14:04:18+0100	Sessions list correctness: avoid false homeDir prefix matches in display formatting; includes regression test.
180	c107a779e07d	expo-app	expo-app	fix(expo-app): avoid stuck loading in capabilities cache	keep	2	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:04:18+0100	Capabilities UI reliability: set cache state to error on detect throw (avoid stuck loading) with hook regression test.
181	35c0974eff1f	expo-app	expo-app	refactor(expo-app): remove dead code and dedupe types	keep	3	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T14:22:18+0100	Mostly pending/messages UI + message-send mode type dedupe; needsSplit=yes to move useCLIDetection error-shape tweak into PR14 during rewrite.
182	b319d85e72c3	i18n	i18n	fix(i18n): correct Spanish resumable label	keep	1	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T14:22:18+0100	Resume i18n fix: es inactiveResumable label typo; fold into PR19 (translationHandling=in-feature-pr).
183	46186162ae14	happy-cli	happy-cli	test(happy-cli): fix timer cleanup and MCP schema mocks	keep	3	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=happy-cli		PR32	Codex approvals + MCP tool interactions (execpolicy + elicitation)	yes	in-feature-pr	yes	2026-01-25T14:22:18+0100	Test stability: MCP schema mocks fix (PR32). needsSplit=yes: terminal timer cleanup -> PR31; logger test tweak can fold into PR01/PR17 during rewrite.
184	ac5bf2f3abfa	happy-cli	happy-cli	test(happy-cli): reset modules for runtime override	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=happy-cli		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T14:22:18+0100	Test reliability for runtime override selection (module caching). Ok to fold into Foundations/DevX or squash into owning CLI invocation change during rewrite.
185	947b8d1814fb	expo-app	expo-app	refactor(expo-app): remove unused optimistic flag	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T14:22:18+0100	Small sessions-related cleanup (remove unused optimistic-only flag); squash into adjacent sessions list UX work.
186	8cc823d1ba2d	server-light	server-light	fix(server-light): validate PORT and normalize paths	keep	4	PR22	Server-light flavor (variant + schema/prisma sync)	high	server-light bucket/keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:22:18+0100	Server-light hardening: validate PORT fallback + normalize public paths (Windows slashes) with tests.
187	8cb995a1abe1	server	server	test(server): fix schema generation sort regex	keep	1	PR22	Server-light flavor (variant + schema/prisma sync)	medium	server light/schema/prisma keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:22:18+0100	Server-light schema-gen test fix (regex correctness); keep with PR22.
188	04d9c60ef8e7	happy-cli	happy-cli	refactor(happy-cli): remove unreachable gemini error branch	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=happy-cli		PR30	Agent error surfaces (Codex/Gemini)		in-feature-pr	yes	2026-01-25T14:22:18+0100	Gemini error formatting cleanup (dead branch); keep with agent error surfaces PR.
189	2616e5e19253	server	server	fix(server): handle missing UI index.html	keep	2	PR23	Server serves UI + public files safely	medium	server serves UI/public files		PR23	Server serves UI + public files safely		in-feature-pr	yes	2026-01-25T14:22:18+0100	Serve-UI reliability: 404 (not crash) when index.html missing; includes focused test.
190	911365366024	server	server	fix(server): make build typecheck tests	keep	3	PR23	Server serves UI + public files safely	medium	server serves UI/public files		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:22:18+0100	Server-light tooling/test reliability: add server typecheck alias + ensure vitest imports in light specs; keep with PR22.
191	0dd19e7fb257	expo-app	expo-app	fix(expo-app): default codex resume spec to empty	keep	3	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T14:29:07+0100	Codex resume installer default safety: set codexResumeInstallSpec default to empty; needsSplit=yes to move unrelated sessionRename cleanup in sync/ops into PR29 during rewrite.
192	229e5fc36570	server-light	server-light	fix(server-light): use file URLs for sqlite db	keep	2	PR22	Server-light flavor (variant + schema/prisma sync)	high	server-light bucket/keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:29:07+0100	Server-light correctness: form sqlite DB URL via pathToFileURL (proper file:/// + escaping) with test expectation update.
193	e6f597e436c5	server	server	fix(server): fix server-light typecheck	keep	2	PR22	Server-light flavor (variant + schema/prisma sync)	high	server-light bucket/keyword		PR22	Server-light flavor (variant + schema/prisma sync)	yes	in-feature-pr	yes	2026-01-25T14:29:07+0100	Server-light integration/typecheck: Buffer.from on S3 putObject + tsconfig module settings; needsSplit=yes (keep Buffer.from fix + final tsconfig end-state in PR22; squash tsconfig churn with 194).
194	1564e800e355	server	server	fix(server): relax module settings for typecheck	squash	1	PR01	Foundations / DevX	low	server infra/test keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:29:07+0100	TS config churn follow-up: squash into 193 and keep only final server tsconfig module settings that make typecheck pass.
195	8ab11f2788c1	happy-cli	happy-cli	fix(happy-cli): parse CLI versions from full output	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=happy-cli		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:29:07+0100	Capabilities robustness: parse CLI version semver from full combined stdout+stderr, not only first line.
196	21e096e9454e	i18n	i18n	fix(i18n): localize session settings item	keep	10	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T14:29:07+0100	Settings UI i18n: localize Session settings item title/subtitle in SettingsView with new keys across locales; fold into settings screens PR.
197	7ca9e93196d6	i18n	i18n	fix(i18n): translate ExitPlanMode strings	keep	8	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T14:29:07+0100	Tools UX i18n: translate ExitPlanMode tool view strings across locales; fold into AskUserQuestion/ExitPlan handling PR.
198	c4a81947f002	i18n	expo-app	fix(i18n): localize search error	keep	3	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR35	Friends: UX + reliability (search errors + follow-ups)		in-feature-pr	yes	2026-01-25T14:29:07+0100	Friends search UX: useSearch returns stable error code + UI localizes via errors.searchFailed; includes debounce/retry hook test.
199	208f0222a997	i18n	expo-app	fix(i18n): localize Codex resume dialog	keep	10	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR26	New session wizard end-to-end	yes	in-feature-pr	yes	2026-01-25T14:29:07+0100	Mixed new-session web UX + resume-gating i18n; needsSplit=yes: keep BaseModal web wizard presentation in PR26 and move Codex resume dialog localization keys into PR19 during rewrite (or keep together if review prefers).
200	02ad6b4a8352	i18n	i18n	fix(i18n): move openMachine to connect scope	keep	9	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T14:29:07+0100	Follow-up taxonomy for new-session dialog: move openMachine key from common.* to connect.* across locales; keep adjacent to 199 in new-session PR.
201	ce42bf56d7b6	web	web	fix(web): correct libsodium wrapper typing	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=web		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T14:34:52+0100	Web runtime fix: force CJS libsodium-wrappers build to avoid top-level await parse failures; keep with foundations/crypto web stability.
202	f0417ca11ac5	web	web	fix(web): keep libsodium wrapper namespace typing	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=web		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T14:34:52+0100	Direct follow-up to 201; squash into 201 and keep 201’s message.
203	b6d3874bf175	settings	settings	fix(settings): include Codex resume in master experiment toggle	keep	1	PR06	Settings: API keys + experiments + settings screens	medium	settings bucket		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T14:34:52+0100	Settings/experiments UX correctness: master experiments toggle also controls expCodexResume.
204	a4d7faba961f	i18n	expo-app	fix(i18n): localize session error fallbacks	keep	10	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR29	Sessions & message list UX	yes	in-feature-pr	yes	2026-01-25T14:34:52+0100	Session UI i18n/copy: localize error fallbacks and profile info modal in SessionView; needsSplit=yes to move expInboxFriends translations into PR06 during rewrite.
205	1ea2bddb8bbd	server	server	test(server): validate processImage resize output	keep	1	PR01	Foundations / DevX	low	server infra/test keyword		PR23	Server serves UI + public files safely		in-feature-pr	yes	2026-01-25T14:34:52+0100	Server public-files/image pipeline test correctness: validate processImage contract (original dimensions, resized pixel buffer length).
206	1e7d7f8a4747	server	server	fix(server): keep light server running	keep	1	PR22	Server-light flavor (variant + schema/prisma sync)	medium	server light/schema/prisma keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:34:52+0100	Server-light correctness: keep light server process alive (remove process.exit(0) after startServer resolves).
207	61bf70183ebf	cli	cli	test(cli): set DEBUG before importing logger	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=cli		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T14:34:52+0100	Test correctness: set DEBUG before importing logger (env read at import time); can fold into foundations/test stability.
208	61a18ac95e17	tools	tools	fix(tools): require permission id for ExitPlanMode actions	keep	11	PR12	AskUserQuestion + ExitPlan native handling	medium	tools keyword/bucket		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T14:34:52+0100	Tools safety: require permission id for ExitPlanMode approve/reject actions; adds i18n key + focused tests.
209	5b36c9bf91c1	tools	tools	test(tools): avoid null permission in ExitPlanToolView tests	squash	1	PR12	AskUserQuestion + ExitPlan native handling	medium	tools keyword/bucket		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T14:34:52+0100	Test follow-up to 208: avoid null permission shape in ExitPlanToolView tests; squash into 208.
210	b7f63e928e4f	persistence	persistence	fix(persistence): retry daemon state read when file appears	keep	2	PR05	Persistence / drafts	high	persistence bucket		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T14:34:52+0100	Daemon/CLI race reliability: retry readDaemonState on ENOENT when state file appears shortly after start; includes regression test.
211	55428fb0253c	tools	tools	fix(tools): alert when AskUserQuestion permission id is missing	keep	2	PR12	AskUserQuestion + ExitPlan native handling	medium	tools keyword/bucket		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T14:39:11+0100	Tools safety: AskUserQuestionView shows modal error + no-ops when permission id missing (align with ExitPlanMode hardening); includes targeted test.
212	dc6955f88abd	terminal	terminal	fix(terminal): prevent sessionId path traversal in attachment info	keep	2	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Terminal attachment security: encode sessionId -> filename for attachment info storage w/ legacy fallback; keep adjacent to 237/238 which fully close legacy traversal hole.
213	bb685fbeff7b	terminal	terminal	fix(terminal): clarify missing --happy-starting-mode value	keep	2	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T14:39:11+0100	TMUX/terminal CLI argv correctness: validate --happy-starting-mode has a real value (not missing / not another flag); includes targeted test.
214	5bcc7d20cd6b	utils	utils	test(utils): stabilize serverConnectionErrors retry count test	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=utils		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Test stability: make serverConnectionErrors retry/jitter deterministic by stubbing Math.random and ensuring cleanup; keep with CLI backoff/reconnect reliability.
215	82968aa8fe6c	ui	ui	fix(ui): send pending messages before closing modal	keep	2	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=ui		PR13	MessageQueueV1 + Pending messages end-to-end		in-feature-pr	yes	2026-01-25T14:39:11+0100	Pending messages integrity: enforce abort→send→delete→close ordering in PendingMessagesModal; adds testIDs + regression tests incl send-failure behavior.
216	b7219c8bfe2b	ink	ink	fix(ink): avoid async useInput handler	keep	1	PR18	TMUX/Terminal end-to-end	high	terminal/tmux/ink bucket		PR31	Terminal switching reliability (remote↔local)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Ink lifecycle reliability: avoid async useInput handler; use cancellable timeouts and clear on unmount/messageBuffer changes (prevents callbacks after teardown).
217	d70a6f6669fe	claude	claude	fix(claude): trim CLAUDE_CONFIG_DIR overrides	keep	2	PR19	Resume end-to-end	low	claude fallback to resume		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Claude robustness: trim CLAUDE_CONFIG_DIR overrides (treat as user input) + regression test; keep with Claude session reliability.
218	47f638b73fca	utils	utils	test(utils): cover failuresCount with custom backoff	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=utils		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Backoff semantics test: failuresCount increments per attempt under custom backoff; keep adjacent to 219 (or squash into 219).
219	2abc70fef03c	utils	utils	fix(utils): track failuresCount for custom backoff	keep	1	PR17	CLI reliability (waiters + reconnection + backoff semantics)	medium	cli reliability bucket=utils		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Backoff semantics fix: move failuresCount tracking into InvalidateSync so it works with custom backoff implementations; optionally squash 218 into this.
220	dc8016f01c56	server	server	fix(server): validate HAPPY_SERVER_LIGHT_DATA_DIR for light migrations	keep	3	PR22	Server-light flavor (variant + schema/prisma sync)	medium	server light/schema/prisma keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:39:11+0100	Server-light migration reliability: validate HAPPY_SERVER_LIGHT_DATA_DIR (trim/require) + centralize deploy plan args; includes unit tests.
221	b0085827322c	server	server	fix(server): handle missing UI index in error handlers	keep	2	PR23	Server serves UI + public files safely	medium	server serves UI/public files		PR23	Server serves UI + public files safely		in-feature-pr	yes	2026-01-25T14:42:48+0100	Serve-UI reliability: return 404 (not 500) when UI index missing in error handlers; includes regression test.
222	abf288056636	cli	cli	fix(cli): reject invalid messageQueueV1 inFlight	keep	2	PR13	MessageQueueV1 + Pending messages end-to-end	medium	pending/queue keyword		PR13	MessageQueueV1 + Pending messages end-to-end		in-feature-pr	yes	2026-01-25T14:42:48+0100	Queue state parsing hardening: reject invalid messageQueueV1 inFlight shapes (null out overall) + test.
223	73ce32d242a0	i18n	i18n	fix(i18n): translate Spanish experiment subtitles	keep	1	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR06	Settings: API keys + experiments + settings screens		in-feature-pr	yes	2026-01-25T14:42:48+0100	Settings/experiments i18n polish: translate Spanish experiment subtitles (pure translations).
224	98bc00096e86	i18n	new-session	fix(i18n): localize Codex resume banner	split	10	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T14:42:48+0100	Mixed: localize Codex resume banner (resume UX) + new-session refactors that depend on 225/226; keep finalPr=PR19 but needsSplit=yes (move WizardSectionHeaderRow refactor to PR26 and permissionModeOptions refactor to PR10 during rewrite).
225	4fabec9b69b3	new-session	new-session	feat(new-session): add WizardSectionHeaderRow	keep	1	PR26	New session wizard end-to-end	high	new-session/new/machine bucket		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T14:42:48+0100	New-session wizard UI primitive: add WizardSectionHeaderRow component; reorder before 224 in rewritten history.
226	c461ed1cb4ef	permission	permission	feat(permission): add permission mode option helpers	keep	1	PR10	Permission framework (Claude/cloud baseline)	medium	permission bucket		PR10	Permission framework (Claude/cloud baseline)		in-feature-pr	yes	2026-01-25T14:42:48+0100	Permission UX helpers: centralize permission mode option lists/labels per agent type; consider i18n-izing description strings if user-visible.
227	23b595edd0fe	sync	sync	refactor(sync): simplify path formatting	keep	1	PR27	Sync robustness (transport/error parsing + backoff semantics)	low	sync bucket fallback		PR29	Sessions & message list UX		in-feature-pr	yes	2026-01-25T14:42:48+0100	Sessions list display cleanup: simplify home-relative path formatting (~ prefix) without behavior change.
228	523989b4de8e	server-light	server-light	fix(server-light): avoid master secret race	keep	1	PR09	Secrets / vault feature	medium	secrets keyword/bucket		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:42:48+0100	Server-light safety: avoid handy master secret file race via atomic write (wx) + EEXIST read-back; keep adjacent to light-flavor init work.
229	d89a9427e765	cli	cli	fix(cli): clean up metadata waiters on disconnect	keep	2	PR17	CLI reliability (waiters + reconnection + backoff semantics)	low	fallback cli/rpc/app bucket=cli		PR17	CLI reliability (waiters + reconnection + backoff semantics)		in-feature-pr	yes	2026-01-25T14:42:48+0100	CLI socket reliability: clean up metadata waiters on disconnect (resolve false; remove listeners) + test.
230	fedb8a66160a	cli	cli	test(cli): accept lowercase preview-env keys	keep	1	PR15	preview-env end-to-end	high	preview-env keyword/file		PR15	preview-env end-to-end		in-feature-pr	yes	2026-01-25T14:42:48+0100	Preview-env contract test: accept lowercase env keys (adjacent to 231 impl; keep together in preview-env PR).
231	fc0ce89b13b7	cli	cli	fix(cli): allow lowercase preview-env keys	keep	2	PR15	preview-env end-to-end	high	preview-env keyword/file		PR15	preview-env end-to-end		in-feature-pr	yes	2026-01-25T14:47:03+0100	preview-env safety: accept lowercase keys while blocking prototype pollution keys; keep adjacent to 230 test in preview-env PR.
232	ad95c5b01c25	happy	hooks	test(happy): keep useCLIDetection timestamp stable	keep	1	PR14	Capabilities end-to-end (protocol + wiring + reliability)	medium	happy capabilities/hook keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Capabilities hook contract: test stable useCLIDetection timestamp when loaded snapshot lacks checkedAt; squash into 234 series.
233	c251edf3c307	happy	hooks	test(happy): fix useCLIDetection timestamp test	squash	1	PR14	Capabilities end-to-end (protocol + wiring + reliability)	medium	happy capabilities/hook keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Test hygiene follow-up for 232 (act()+timer cleanup); squash into 232/234.
234	34fa4091d3cc	happy	hooks	fix(happy): stabilize useCLIDetection timestamp	keep	1	PR14	Capabilities end-to-end (protocol + wiring + reliability)	medium	happy capabilities/hook keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Capabilities hook reliability: stabilize useCLIDetection timestamp fallback when checkedAt missing; squash 232/233/235 into this in rewrite.
235	31340e53294c	happy	hooks	fix(happy): inline CLI detection request	squash	1	PR14	Capabilities end-to-end (protocol + wiring + reliability)	medium	happy capabilities/hook keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Back-and-forth cleanup: inline CLI detection request (undo part of 234); squash into 234.
236	054250f408e2	i18n	i18n	fix(i18n): localize codex resume install modals	keep	11	PR03	i18n foundation sweep (optional)	medium	i18n bucket/keyword		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T14:47:03+0100	Resume UX i18n: localize Codex resume install/update modals (machine + new-session) + deps.* status strings; unify key scopes with 224 during rewrite.
237	241f0ae24b1d	cli	cli	test(cli): prevent legacy sessionId path traversal	keep	1	PR18	TMUX/Terminal end-to-end	medium	terminal/tmux files		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Terminal attachment security series: add regression test preventing legacy sessionId path traversal; keep adjacent to 212 and 238.
238	a1e4a6dd3fbd	cli	cli	fix(cli): block legacy sessionId path traversal	keep	1	PR18	TMUX/Terminal end-to-end	medium	terminal/tmux files		PR18	TMUX end-to-end (headless sessions + attach + settings)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Terminal attachment security fix: block legacy fallback when sessionId contains path separators (/, \\); completes 212+237 series.
239	e2618e04a26b	a11y	a11y	fix(a11y): add labels to codex resume actions	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	ui-system bucket=a11y		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T14:47:03+0100	Resume banner a11y: add accessibilityRole/Label to Codex resume banner actions (install/update/reinstall/check updates); depends on 224 banner UI.
240	d0f9ad5e8310	claude	claude	test(claude): remove stale transcriptPath red-test scaffolding	squash	1	PR20	Claude session reliability (switching + transcript/scanner + local runner)	medium	claude scanner/transcript keyword		PR20	Claude session reliability (switching + transcript/scanner + local runner)		in-feature-pr	yes	2026-01-25T14:47:03+0100	Claude scanner test cleanup: remove stale red-test scaffolding for transcriptPath now that feature exists; squash into transcriptPath feature commit during rewrite.
241	1464402758bf	codex	codex	fix(codex): preserve falsy MCP tool results	keep	2	PR21	Codex MCP tool-call result correctness	medium	codex mcp keyword		PR21	Codex MCP tool-call result correctness		in-feature-pr	yes	2026-01-25T14:52:20+0100	Codex MCP correctness: preserve falsy Ok/Err tool results via hasOwnProperty checks + unit tests.
242	57f84f0691c6	server-light	server-light	fix(server-light): harden public file path encoding	keep	2	PR22	Server-light flavor (variant + schema/prisma sync)	high	server-light bucket/keyword		PR22	Server-light flavor (variant + schema/prisma sync)		in-feature-pr	yes	2026-01-25T14:52:20+0100	Server-light security: strict public file path normalization + segment-wise encodeURIComponent URL building (encode #/?); expanded tests.
243	0b7db6945325	storage	storage	fix(storage): validate S3_PORT and bucket existence	keep	2	PR24	Storage S3 validation	high	storage bucket/file		PR24	Storage S3 validation		in-feature-pr	yes	2026-01-25T14:52:20+0100	Storage config safety: validate S3_PORT range and fail-fast when bucket missing; adds focused tests.
244	74fc860b07b5	queue	queue	refactor(queue): simplify stale in-flight reclaim	keep	1	PR13	MessageQueueV1 + Pending messages end-to-end	high	queue bucket/keyword		PR13	MessageQueueV1 + Pending messages end-to-end		in-feature-pr	yes	2026-01-25T14:52:20+0100	MessageQueueV1 refactor: simplify stale inFlight reclaim logic (no behavior change); squash into queue series if desired.
245	82bf82cb6715	hooks	hooks	fix(hooks): prevent stale capabilities cache overwrite	keep	2	PR14	Capabilities end-to-end (protocol + wiring + reliability)	high	capabilities bucket/keyword		PR14	Capabilities end-to-end (protocol + wiring + reliability)		in-feature-pr	yes	2026-01-25T14:52:20+0100	Capabilities cache race fix: guard updates with inFlightToken match so stale requests can’t clobber newer loaded state; includes race test.
246	384b15252026	expo	expo	fix(expo): harden tool submit and pending send	keep	8	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T14:52:20+0100	Mixed user-action hardening; needsSplit=yes: pending send delete→discard fallback + messageQueueV1 discard support goes to PR13; AskUserQuestion submit error alert+test goes to PR12 during rewrite.
247	24b607abfa07	server	server	Refactor schema sync and centralize Prisma types	keep	29	PR22	Server-light flavor (variant + schema/prisma sync)	medium	server light/schema/prisma keyword		PR22	Server-light flavor (variant + schema/prisma sync)	yes	in-feature-pr	yes	2026-01-25T14:52:20+0100	Server-light maintenance: schemaSync replaces schema:sqlite, adds enum generation + drift tests, centralizes Prisma types/client with init-guarded db proxy; needsSplit=yes and move unrelated yarn.lock expo-router bump to PR02.
248	bf3027799623	expo-app	expo-app	Set EXPO_UNSTABLE_WEB_MODAL env var in Expo scripts	keep	4	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR02	UI modal/overlay/popover + Expo web modal behavior	yes	in-feature-pr	yes	2026-01-25T14:52:20+0100	Expo web modal reliability: set EXPO_UNSTABLE_WEB_MODAL=1 in scripts, pin+patch expo-router 6.0.22; needsSplit=yes to move session-info gating tweak (expCodexAcp) into PR19 during rewrite.
249	c803115dcbdc	expo-app	expo-app	Improve postinstall script for symlinked paths and patching	keep	1	PR02	UI modal/overlay/popover + Expo web modal behavior	medium	expo bucket		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T14:52:20+0100	Expo postinstall reliability: resolve symlinked paths and run patch-package for both hoisted and non-hoisted deps; keep adjacent to 248.

250	0c3b41030bbc	test	expo-app	Add Vitest stubs for Expo and React Native modules	keep	4	PR01	Foundations / DevX	high	vitest stubs/test infra		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T15:59:10+0100	Foundations / DevX: vitest stubs/test infra
251	7d60e6fc77f2	acp	cli	cli(acp): support loadSession + replay capture; normalize tool events	keep	17	PR36	ACP agents end-to-end (runtimes + replay + tool normalization)	high	ACP replay/import + tool normalization		PR36	ACP agents end-to-end (runtimes + replay + tool normalization)		in-feature-pr	yes	2026-01-25T15:59:10+0100	ACP agents end-to-end (runtimes + replay + tool normalization): ACP replay/import + tool normalization
252	e35328ab19ad	permission	cli	cli(permissions): persist per-session allowlists; harden shell approvals	keep	7	PR11	Agent permissions (Codex/Gemini): permission modes + allowlists	high	permission allowlists + shell approvals		PR11	Agent permissions (Codex/Gemini): permission modes + allowlists		in-feature-pr	yes	2026-01-25T15:59:11+0100	Agent permissions (Codex/Gemini): allowlist persistence + shell approvals hardening (extends base permission behavior beyond Claude).
253	caf5adfe3449	claude	cli	cli(claude): support AskUserQuestion answers + ExitPlanMode negotiation	keep	10	PR12	AskUserQuestion + ExitPlan native handling	high	AskUserQuestion/ExitPlan support (Claude)		PR12	AskUserQuestion + ExitPlan native handling		in-feature-pr	yes	2026-01-25T15:59:11+0100	AskUserQuestion + ExitPlan native handling: AskUserQuestion/ExitPlan support (Claude)
254	011a3602411f	queue	cli	cli(api): observe self-broadcasts for pending-queue; add tool tracing	keep	6	PR13	MessageQueueV1 + Pending messages end-to-end	medium	pending-queue wake + tool tracing		PR13	MessageQueueV1 + Pending messages end-to-end	yes	in-feature-pr	yes	2026-01-25T15:59:12+0100	Split toolTrace into PR39; keep pending-queue wake + apiSession recovery in PR13.
255	809d2bb385e0	tools	cli	cli(tool-trace): add fixture extraction + CLI script	keep	4	PR39	Tool UX: normalization + specialized views + tracing	high	tool-trace fixtures extractor		PR39	Tool UX: normalization + specialized views + tracing		in-feature-pr	yes	2026-01-25T15:59:12+0100	Tool UX: tool-trace fixture extraction + sanitizer/truncation helpers (debugging + regression fixtures).
256	553781556305	auth	cli	cli(auth): add --no-open to skip browser open	keep	4	PR04	Auth + storage scoping	high	CLI auth --no-open		PR04	Auth + storage scoping		in-feature-pr	yes	2026-01-25T15:59:13+0100	Auth + storage scoping: CLI auth --no-open
257	5955ea5c21a3	daemon	cli	cli(daemon): idempotent resume + attach files + shutdown policy	keep	22	PR16	Daemon reliability (ownership + reattach/restart safety)	high	daemon resume idempotency + shutdown policy		PR16	Daemon reliability (ownership + reattach/restart safety)		in-feature-pr	yes	2026-01-25T15:59:13+0100	Daemon reliability (ownership + reattach/restart safety): daemon resume idempotency + shutdown policy
258	cce05b18a5d7	acp	cli	cli(agents): wire ACP agents into factory/transport registry	keep	4	PR36	ACP agents end-to-end (runtimes + replay + tool normalization)	high	ACP agent registry wiring		PR36	ACP agents end-to-end (runtimes + replay + tool normalization)		in-feature-pr	yes	2026-01-25T15:59:13+0100	ACP agents end-to-end (runtimes + replay + tool normalization): ACP agent registry wiring
259	27bb2523f690	acp	cli	cli(opencode): add OpenCode ACP agent runtime	keep	11	PR36	ACP agents end-to-end (runtimes + replay + tool normalization)	high	OpenCode ACP runtime		PR36	ACP agents end-to-end (runtimes + replay + tool normalization)		in-feature-pr	yes	2026-01-25T15:59:14+0100	ACP agents end-to-end (runtimes + replay + tool normalization): OpenCode ACP runtime
260	abe1cf8ed370	acp	cli	cli(codex-acp): add runtime + capability gating	keep	24	PR36	ACP agents end-to-end (runtimes + replay + tool normalization)	medium	Codex ACP runtime + capabilities gating		PR36	ACP agents end-to-end (runtimes + replay + tool normalization)	yes	in-feature-pr	yes	2026-01-25T15:59:14+0100	May split generic capabilities checklist wiring into PR14; keep Codex ACP runtime in PR36.
261	d9100a80112b	acp	cli	cli(entry): refactor agent subcommands and startup flags	keep	1	PR36	ACP agents end-to-end (runtimes + replay + tool normalization)	high	agent subcommand wiring/refactor		PR36	ACP agents end-to-end (runtimes + replay + tool normalization)		in-feature-pr	yes	2026-01-25T15:59:14+0100	ACP agents end-to-end (runtimes + replay + tool normalization): agent subcommand wiring/refactor
262	2edc5305ca3f	test	expo-app	expo-app(test): harden vitest stubs + unistyles typing	keep	6	PR01	Foundations / DevX	high	expo-app test stubs/unistyles typing		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T15:59:15+0100	Foundations / DevX: expo-app test stubs/unistyles typing
263	5575d7267cd0	tools	expo-app	expo-app(tools): normalize tool inference + rendering inputs	keep	10	PR39	Tool UX: normalization + specialized views + tracing	high	tool rendering normalization helpers		PR39	Tool UX: normalization + specialized views + tracing		in-feature-pr	yes	2026-01-25T15:59:15+0100	Tool UX: normalization + name inference + permission summaries for consistent tool rendering.
264	d115797fcdde	tools	expo-app	expo-app(tools): add specialized tool views + tests	keep	40	PR39	Tool UX: normalization + specialized views + tracing	high	specialized tool views + tests		PR39	Tool UX: normalization + specialized views + tracing		in-feature-pr	yes	2026-01-25T15:59:15+0100	Tool UX: specialized views for common tools + structured results + focused regression tests.
265	23014814ea50	agents	expo-app	expo-app(agents): introduce agent registry + UI behavior helpers	keep	17	PR37	Agent registry end-to-end (selection + settings + UX helpers)	high	agent registry + UX helpers		PR37	Agent registry end-to-end (selection + settings + UX helpers)		in-feature-pr	yes	2026-01-25T15:59:16+0100	Agent registry end-to-end (selection + settings + UX helpers): agent registry + UX helpers
266	b142327f5e32	capabilities	expo-app	expo-app(sync): capabilities protocol + resume/pending-queue plumbing	keep	59	PR14	Capabilities end-to-end (protocol + wiring + reliability)	low	capabilities protocol + mixed plumbing		PR14	Capabilities end-to-end (protocol + wiring + reliability)	yes	in-feature-pr	yes	2026-01-25T15:59:16+0100	Split by feature PR: PR14 core protocol + installable deps; PR13 pending queue; PR19 resume; PR28 model options; PR10/11 permissions; PR08 profiles.
267	552f517e9823	secrets	expo-app	expo-app(ui): add InlineAddExpander; inline add for secrets/env vars	keep	5	PR09	Secrets / vault feature	medium	inline add for secrets/env vars		PR09	Secrets / vault feature	yes	in-feature-pr	yes	2026-01-25T15:59:16+0100	Split env-vars inline add into PR07; keep secrets inline add in PR09.
268	cbaf39a63c60	new-session	expo-app	expo-app(secret-requirement): add picker route + modularized modal	keep	10	PR26	New session wizard end-to-end	high	secret requirement picker route/modal		PR26	New session wizard end-to-end		in-feature-pr	yes	2026-01-25T15:59:16+0100	New session wizard end-to-end: secret requirement picker route/modal
269	36641d906490	resume	expo-app	expo-app(session): capability-gated resume flows + pending queue UX	keep	33	PR19	Resume end-to-end	low	capability-gated resume + pending UX		PR19	Resume end-to-end	yes	in-feature-pr	yes	2026-01-25T15:59:17+0100	Split resume UX into PR19, pending UI into PR13, capabilities gating into PR14, new-session changes into PR26.
270	9a9d439e5499	settings	expo-app	expo-app(settings): wire agent registry into settings	keep	2	PR37	Agent registry end-to-end (selection + settings + UX helpers)	high	wire agent registry into settings		PR37	Agent registry end-to-end (selection + settings + UX helpers)		in-feature-pr	yes	2026-01-25T15:59:17+0100	Agent registry end-to-end (selection + settings + UX helpers): wire agent registry into settings
271	67ceab362d6b	inbox	expo-app	expo-app(experiments): add inbox friends experiment gate	keep	7	PR35	Friends: UX + reliability (search errors + follow-ups)	high	inbox/friends experiment gate		PR35	Friends: UX + reliability (search errors + follow-ups)		in-feature-pr	yes	2026-01-25T15:59:17+0100	Friends: UX + reliability (search errors + follow-ups): inbox/friends experiment gate
272	05b45b4f505d	settings	expo-app	expo-app(settings): update features toggles for agents/inbox/codex	keep	1	PR37	Agent registry end-to-end (selection + settings + UX helpers)	medium	settings toggles for agents/inbox/codex		PR37	Agent registry end-to-end (selection + settings + UX helpers)	yes	in-feature-pr	yes	2026-01-25T15:59:18+0100	Split inboxFriends toggle into PR35; keep agent toggles in PR37 (codex ACP toggle may live with PR36/PR37).
273	ec9225a8f935	i18n	expo-app	expo-app(i18n): add device locale helpers + update translations	keep	12	PR03	i18n foundation sweep (optional)	medium	device locale helpers + translations sweep		PR03	i18n foundation sweep (optional)	yes	in-feature-pr	yes	2026-01-25T15:59:18+0100	Distribute translations into owning feature PRs; keep deviceLocales helpers in PR03 or PR01.
274	98b7138360ff	resume	expo-app	expo-app(agents): align resume helpers + temp session data typing	keep	3	PR19	Resume end-to-end	high	resume helpers + temp data typing		PR19	Resume end-to-end		in-feature-pr	yes	2026-01-25T15:59:18+0100	Resume end-to-end: resume helpers + temp data typing
275	63cda8b20882	list	expo-app	expo-app(ui): add list/pending primitives and polish	keep	31	PR38	UI list primitives + pending UI polish	medium	list/pending primitives + polish		PR38	UI list primitives + pending UI polish	yes	in-feature-pr	yes	2026-01-25T15:59:19+0100	Consider splitting profile list model changes into PR08; keep list/pending primitives in PR38.
276	10dca4ca7057	expo	expo-app	chore(expo): pin libsodium-wrappers and align patch-package dirs	keep	5	PR02	UI modal/overlay/popover + Expo web modal behavior	high	expo libsodium pin + patch dirs/postinstall		PR02	UI modal/overlay/popover + Expo web modal behavior		in-feature-pr	yes	2026-01-25T15:59:19+0100	UI modal/overlay/popover + Expo web modal behavior: expo libsodium pin + patch dirs/postinstall
277	cfe2ecd3e626	format	expo-app	refactor: migrate StyleSheet imports to react-native-unistyles	keep	23	PR01	Foundations / DevX	high	bucket=format		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T19:06:49+0100	Mechanical StyleSheet→unistyles import migration across expo-app + add invariant test.
278	8aaacbfaac7a	dev	dev	docs: add Conventional Commits instructions	keep	1	PR01	Foundations / DevX	high	bucket=dev		PR01	Foundations / DevX		in-feature-pr	yes	2026-01-25T19:06:49+0100	Add `.github/copilot-commit-instructions.md` documenting Conventional Commits guidelines.
