feat: section layout editor with shared actions and on-demand editing - #130
Conversation
Greptile SummaryThis change adds on-demand editing and persisted layouts for remote-control sections, alongside toolbar controls for entering and leaving edit mode. Saved layouts were exercised across multiple surfaces and sections, then reloaded through a fresh layout store. Each layout restored exactly, updating one section preserved its siblings, and an invalid stored section was ignored without discarding valid saved layouts. The potential layout-restoration and cross-section-isolation failure was disproved by this executed reload flow. Confidence Score: 5/5The verified persistence behavior preserves independent saved layouts across reloads and safely ignores invalid stored entries. No actionable defects remain after exercising layout saving, fresh-store restoration, section isolation, and invalid persisted-layout handling. Files Needing Attention: No files need follow-up changes. Layout persistence in src/layouts/LayoutStore.ts received focused runtime coverage.
What T-Rex did
Reviews (1): Last reviewed commit: "fix: preserve keyboard taps in customize..." | Re-trigger Greptile |
Saving a customized surface previously flattened its sections. This editor preserves section headings, cards, helper text, dynamic status, visibility and order while allowing section-scoped button, row and column editing. Save, Cancel and Reset operate independently; unchanged saves retain responsive defaults. Version 2 section storage preserves grid geometry and deliberately ignores legacy flat layouts.
Empty cells open a searchable action picker. Selecting an action immediately assigns it to the draft without running a PC command. A shared action catalog and typed runtime resolver serve default grids, customized grids and picker metadata. Actions can be reused across sections, with unique IDs within each section, draft operations restricted to Typing, and unsupported runtime actions disabled with explanations. Live Typing retains its existing stream and Enter behavior.
Edit layout beside the Surface selector reveals section edit controls only when needed; Done editing hides them. Stacked Movement sections use the available width so saved grids do not clip unnecessarily at large text sizes. Drag and tap alternatives, accessible modal behavior, safety restrictions and repeat-stop controls remain available.
Closes #129
Closes #131
Closes #132
Closes #133
Based on #128, targeting
codex/surface-layout-editor-127. This original-repository draft now includes all follow-ups formerly reviewed in OwenMcGirr#1, #2 and #3. The source branch was fast-forwarded to the existing commit stack, followed by c917de3 to address the consolidated review finding: saved grids now let keyboard taps reach action buttons on the first tap. Keep draft; do not merge.Validation:
npm run validatepassed: 515 tests in 63 suites, lint, TypeScript, version metadata, 21/21 Expo Doctor checks.