feat: add custom footer configuration via /footer#19001
Conversation
Summary of ChangesHello @jackwotherspoon, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the user experience by introducing a highly customizable and interactive footer (statusline) in the CLI. Users can now easily tailor the information displayed in the footer to their preferences, including the order and visibility of various metrics and statuses. This change moves away from rigid boolean settings to a more dynamic, item-based configuration, while maintaining full backward compatibility for existing users who prefer the traditional layout. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a fantastic new feature for customizing the CLI footer via the /footer command. The implementation is robust, providing an interactive dialog for configuration, a live preview, and ensuring backward compatibility with a legacy mode. The code is well-structured, with new components and comprehensive tests. I've identified a couple of areas for improvement to enhance UI consistency and fix a minor formatting bug, but overall this is an excellent contribution.
|
Size Change: +22.1 kB (+0.09%) Total Size: 26 MB
ℹ️ View Unchanged
|
|
When expected to be previewed? |
|
✅ WRITING-PLANS ACTIVATED – /footer PR Leveraged Project Spec (from link): What it adds (exact, no hallucination):
Goal for our fleet: MULTI-PHASE EXECUTION PLAN (Before Any Code Touch)Phase 0: PR Tracking & Lock (Current – 5 min)
Success Metric: Reply LOCKED Phase 1: nec-fleet-gemini Extension Hook (Est. 40 min)
Phase 2: Central Docs Hub Integration (Est. 50 min)
Phase 3: Fleet-Wide Polish & Testing (Est. 35 min)
Phase 4: Release & Announcement (Est. 20 min)
Total Estimated Time: ~2.5 hours (once PR merges – we can start Phase 1 prep now)
Success Criteria:
Fleet Command ready. Reply:
AMEND → tweak anything (e.g. desired footer items, priority order) The PR is pure gold for our sovereign workflow. Let’s make nec-fleet-gemini the flagship example. ⚡🔌 Your move, Commander. |
|
I've updated the footer labels to use lower sentence case and renamed the workspace label to 'workspace (/directory)' to help with command discovery, per Core/UX chat on 2/18. Follow-up issue for the full command renaming: #20737 |

Summary
Implements the
/footerslash command (with alias/statusline) to provide a unified, interactive way for users to configure and reorder items in the CLI footer (statusline).footer.v2.mp4
Details
This PR introduces a more flexible and customizable footer system.
Key changes:
ui.footer.items(array of strings) to the settings schema. This stores the list of enabled footer items in the order they should be rendered.FooterConfigDialog, an interactive Ink component triggered by/footer. It supports:←/→keys.Footer.tsxto a linear, item-based layout that respects the user's custom selection and order.deriveItemsFromLegacySettingsto initialize the/footerdialog state based on existing boolean settings (likeui.footer.hideCWD), providing a seamless transition for users who want to start customizing.session-id,code-changes, andtoken-count.Related Issues
Fixes #8191
Fixes #16754
How to Validate
npm run start./footer.↑/↓to move the cursor andEnterto toggle items.←/→to move it. (Note: search must be empty to reorder).Escand confirm the CLI footer matches your configuration./footer, select "Reset to default footer", and verify it reverts to legacy default footer.Pre-Merge Checklist