- Replace ui.loadingPhrases and ui.wittyPhrasePosition with ui.loadingPhraseLayout
- Supported layouts: none, tips, wit_status, wit_inline, wit_ambient, all_inline, all_ambient
- Set 'all_inline' as the new default (tips on right, wit inline)
- Update migration logic to map deprecated enableLoadingPhrases to 'none'
- Synchronize all unit tests and documentation with the new configuration model
- Add ui.wittyPhrasePosition setting (status, inline, ambient)
- Refactor usePhraseCycler to return tips and wit separately
- Implement 'inline' position: append witty phrases in gray after status
- Update status length estimation to account for inline wit
- Replace pause icon with up arrow (↑) for awaiting approval
- Remove 'Tip:' prefix from loading phrases
- Update unit tests and research report
- Remove extra bottom padding in DefaultAppLayout
- Update responsive wrapping logic for narrow terminals
- Update research report with testing summary
This commit introduces a new, more stable footer architecture that addresses
several long-standing UX issues:
- Stabilizes the layout by anchoring mode indicators and context summaries
- Protects safety indicators (YOLO/Plan) from being hidden by notifications
- Decouples ambient tips/wit from real system status to prevent confusion
- Implements intelligent collision detection for narrow terminal windows
- Keeps input visible but disabled during tool approval pauses
- Enhances visual consistency with unified status colors and hook icons