mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 12:39:42 +02:00
fix(shell): launch shell tabs as an interactive login shell
Shell-mode sessions resolve to an absolute shell path (issue #208's fix) but launch it bare, with no -i/-l flags. Without those, the spawned shell runs as a non-interactive child of the non-interactive `bash -c` that launches the pane, so it never sources ~/.zshrc or ~/.bashrc — silently dropping aliases, PATH additions, and tool init (zoxide, nvm, etc.). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
529d8fa8ea
commit
d66007053b
@@ -88,6 +88,14 @@ describe('shell-mode spawn command (issue #208)', () => {
|
||||
expect(cmd.trim()).not.toBe('');
|
||||
});
|
||||
|
||||
it('launches an interactive login shell, so rc files (~/.zshrc, ~/.bashrc, etc.) are sourced', () => {
|
||||
// Without -i -l, the resolved shell runs as a bare non-interactive child of
|
||||
// the non-interactive `bash -c` that launches the pane, silently dropping
|
||||
// aliases, PATH additions, and tool init (zoxide, nvm, etc.).
|
||||
const cmd = buildSpawnCommand({ mode: 'shell', sessionId: 'abc123de-0000-0000-0000-000000000000' });
|
||||
expect(cmd.trim().endsWith('-i -l')).toBe(true);
|
||||
});
|
||||
|
||||
it('produces a launch command that parses after the outer sh -c expansion layer', () => {
|
||||
const cmd = buildSpawnCommand({ mode: 'shell', sessionId: 'abc123de-0000-0000-0000-000000000000' });
|
||||
// Mirrors tmux-manager: `… bash -c ${JSON.stringify(launchCmd)}` handed to `sh -c`.
|
||||
|
||||
Reference in New Issue
Block a user