Mahima Shanware
79cc27439d
fix(core,cli): address review findings for plan dir resolution and security
...
This commit addresses several critical findings from the review bot:
- **Security:** Implemented defense-in-depth symlink resolution. Removed insecure string-based fallbacks in `Storage.getPlansDir` and added a mandatory `isSubpath` validation AFTER directory creation in `Config.getPlansDir` to prevent TOCTOU traversal attacks.
- **Architecture:** Fixed a race condition where active extension context was mutated synchronously in `AppContainer`, potentially corrupting concurrent background tasks. Mutation now occurs within the command execution pipeline.
- **Robustness:** Switched to canonical path checking for `plan` command detection to support aliases and subcommands.
- **Regressions:** Added a `planEnabled` guard to prevent unwanted directory creation when the planning feature is disabled.
- **Validation:** Added exhaustive unit tests covering sequential context switching, shared directory deduplication, and symlink security edge cases.
2026-04-06 21:09:47 +00:00
Mahima Shanware
1ed9a04d71
fix(cli): consistently clear sticky extension context
...
This fixes a bug where the active extension context would remain sticky when a user switched from an extension command to a standard non-plan command, or to an extension without a plan directory.
The context is now correctly reset to undefined when an extension command without a plan directory is executed, preventing subsequent plan mode invocations from incorrectly targeting the previous extension's folder.
2026-04-06 18:45:06 +00:00
Mahima Shanware
c578567488
fix(core): address extension context stickiness and symlink path resolution
...
This commit addresses two bugs identified during review:
1. Cleared the sticky `activeExtensionContext` when the standard `/plan` command is executed, ensuring subsequent prompts correctly target the default global plan directory.
2. Fixed a path resolution regression in `Storage.getPlansDir()` by constructing the fallback ENOENT path directly against the real project root. This prevents `isSubpath` validation failures and potential traversal vulnerabilities when the project root is a symlink.
2026-04-06 17:41:56 +00:00
Mahima Shanware
39a7d59b27
feat(cli): wire active extension context into slash command routing
...
Extracts the extension context from slash commands based on their registered metadata and sets it as the active context in the Config before execution. This enables the backend to dynamically route plan directories based on the extension that owns the invoked command.
2026-04-06 16:56:01 +00:00
Sandy Tao
46d6b119b6
feat(core): add project-level memory scope to save_memory tool ( #24161 )
2026-03-31 01:32:15 +00:00
Jarrod Whelan
1df5c98b33
feat(cli): implement compact tool output ( #20974 )
2026-03-30 23:43:29 +00:00
Adam Weidman
3eebb75b7a
feat(core): agnostic background task UI with CompletionBehavior ( #22740 )
...
Co-authored-by: mkorwel <matt.korwel@gmail.com >
2026-03-28 21:27:51 +00:00
Christian Gunderman
07ab16dbbe
feat(cli): support 'tab to queue' for messages while generating ( #24052 )
2026-03-28 01:31:11 +00:00
Abhi
104587bae8
feat(core): subagent isolation and cleanup hardening ( #23903 )
2026-03-27 03:43:39 +00:00
Jacob Richman
a86935b6de
fix(cli): allow ask question dialog to take full window height ( #23693 )
2026-03-25 23:26:34 +00:00
matt korwel
bbdd8457df
fix(cli): stabilize copy mode to prevent flickering and cursor resets ( #22584 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-24 23:16:48 +00:00
Sehoon Shon
893c7d3880
feat(ui): allow immediate user input during startup ( #23661 )
2026-03-24 13:33:17 +00:00
Jarrod Whelan
271908dc94
feat(ui): implement refreshed UX for Composer layout ( #21212 )
...
Co-authored-by: Keith Guerin <keithguerin@gmail.com >
2026-03-24 02:30:48 +00:00
Jarrod Whelan
89ca78837e
refactor(cli,core): foundational layout, identity management, and type safety ( #23286 )
2026-03-24 01:49:51 +00:00
Wesley Tanaka
a7bed2cc4c
fix(cli): prevent Ctrl+D exit when input buffer is not empty ( #23306 )
...
Co-authored-by: wtanaka.com <wtanaka@users.noreply.github.com >
2026-03-24 00:13:13 +00:00
Dev Randalpura
139ef0d5bd
fix(ui): make tool confirmations take up entire terminal height ( #22366 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-23 19:42:30 +00:00
Sandy Tao
33f630111f
feat(core): add experimental memory manager agent to replace save_memory tool ( #22726 )
...
Co-authored-by: Christian Gunderman <gundermanc@gmail.com >
2026-03-19 12:57:52 -07:00
Jacob Richman
524b1e39a5
Fix logging and virtual list. ( #23080 )
2026-03-19 17:50:49 +00:00
Tommaso Sciortino
d7dfcf7f99
refactor(cli): simplify keypress and mouse providers and update tests ( #22853 )
2026-03-18 16:38:56 +00:00
Adam Weidman
44ce90d76c
refactor(core): introduce InjectionService with source-aware injection and backend-native background completions ( #22544 )
2026-03-16 21:06:29 +00:00
Gal Zahavi
fa024133e6
feat(core): integrate SandboxManager to sandbox all process-spawning tools ( #22231 )
2026-03-13 21:11:51 +00:00
Spencer
73c589f9e3
feat(cli): allow safe tools to execute concurrently while agent is busy ( #21988 )
2026-03-12 16:03:53 +00:00
Nick Salerni
88638c14f7
fix(cli): allow scrolling keys in copy mode (Ctrl+S selection mode) ( #19933 )
...
Co-authored-by: Jacob Richman <jacob314@gmail.com >
2026-03-11 07:16:25 +00:00
Gal Zahavi
524679d23c
feat: implement background process logging and cleanup ( #21189 )
2026-03-11 00:13:20 +00:00
nityam
e22d9917b7
fix: preserve prompt text when cancelling streaming ( #21103 )
...
Co-authored-by: Jacob Richman <jacob314@gmail.com >
2026-03-10 22:35:04 +00:00
Adib234
e5615f47c4
fix(plan): prevent plan truncation in approval dialog by supporting unconstrained heights ( #21037 )
...
Co-authored-by: jacob314 <jacob314@gmail.com >
2026-03-10 19:34:10 +00:00
Tommaso Sciortino
215f8f3f15
refactor(ui): unify keybinding infrastructure and support string initialization ( #21776 )
2026-03-09 23:26:33 +00:00
Tommaso Sciortino
ab64b15d51
refactor: migrate to useKeyMatchers hook ( #21753 )
2026-03-09 20:48:09 +00:00
Keith Guerin
dc6741097c
refactor(cli): standardize on 'reload' verb for all components ( #20654 )
...
Co-authored-by: Krishna Korade <MushuEE@users.noreply.github.com >
Co-authored-by: Jacob Richman <jacob314@gmail.com >
2026-03-07 22:56:11 +00:00
Jacob Richman
e89cf5d86e
fix(cli): correct shell height reporting ( #21492 )
2026-03-07 19:31:09 +00:00
Jarrod Whelan
54b0344fc5
fix(ui): unify Ctrl+O expansion hint experience across buffer modes ( #21474 )
2026-03-07 19:04:22 +00:00
joshualitt
4c85d14f48
feat(core): Disable fast ack helper for hints. ( #21011 )
2026-03-04 20:56:56 +00:00
nityam
8f36051f32
fix: improve error message when OAuth succeeds but project ID is required ( #21070 )
2026-03-04 19:28:34 +00:00
Tommaso Sciortino
7e06559db2
Consistently guard restarts against concurrent auto updates ( #21016 )
2026-03-04 06:18:12 +00:00
Jacob Richman
0659ad1702
Revert "fix(ui): persist expansion in AskUser dialog when navigating options" ( #21042 )
2026-03-04 01:40:29 +00:00
Shreya Keshive
06ddfa5c4c
feat(admin): enable 30 day default retention for chat history & remove warning ( #20853 )
2026-03-02 22:44:49 +00:00
Dmitry Lyalin
7f8ce8657c
Add low/full CLI error verbosity mode for cleaner UI ( #20399 )
2026-02-27 19:15:10 +00:00
Jerop Kipruto
5d24d6a9e1
fix(ui): persist expansion in AskUser dialog when navigating options ( #20559 )
2026-02-27 18:30:16 +00:00
Gaurav
ea48bd9414
feat: better error messages ( #20577 )
...
Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com >
2026-02-27 18:18:16 +00:00
Gaurav
b2d6844f9b
feat(billing): implement G1 AI credits overage flow with billing telemetry ( #18590 )
2026-02-27 18:15:06 +00:00
Pyush Sinha
d7320f5425
refactor(core,cli): useAlternateBuffer read from config ( #20346 )
...
Co-authored-by: Jacob Richman <jacob314@gmail.com >
2026-02-27 15:55:02 +00:00
Jacob Richman
4d9cc36146
Fix flicker showing message to press ctrl-O again to collapse. ( #20414 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-27 15:07:14 +00:00
Adib234
ef247e220d
feat(plan): support opening and modifying plan in external editor ( #20348 )
2026-02-26 04:38:44 +00:00
Ishaan Gupta
70b650122f
feat: prompt users to run /terminal-setup with yes/no ( #16235 )
...
Co-authored-by: Vedant Mahajan <Vedant.04.mahajan@gmail.com >
2026-02-24 21:48:28 +00:00
Jarrod Whelan
727f9b67b1
feat(cli): improve CTRL+O experience for both standard and alternate screen buffer (ASB) modes ( #19010 )
...
Co-authored-by: jacob314 <jacob314@gmail.com >
2026-02-21 00:26:11 +00:00
Sehoon Shon
b746524a1b
fix(cli): re-enable CLI banner ( #19741 )
2026-02-20 22:21:26 +00:00
Spencer
fe428936d5
feat(ui): improve startup warnings UX with dismissal and show-count limits ( #19584 )
2026-02-20 18:22:45 +00:00
Gal Zahavi
d24f10b087
feat(cli): enhance folder trust with configuration discovery and security warnings ( #19492 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-20 18:21:03 +00:00
Abhijit Balaji
d8b24e6983
feat(policy): implement project-level policy support ( #18682 )
2026-02-20 00:16:03 +00:00
Dmitry Lyalin
372f41eab8
feat(cli): replace loading phrases boolean with enum setting ( #19347 )
2026-02-19 18:43:12 +00:00