From a5e31f14f013b34eeff33841e9f92a6d8557963a Mon Sep 17 00:00:00 2001 From: Kent Tonino Date: Thu, 9 Apr 2026 23:10:50 +0800 Subject: [PATCH 1/2] fix: activate already created shell --- src/poetry_plugin_shell/command.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/poetry_plugin_shell/command.py b/src/poetry_plugin_shell/command.py index 234ac85..74acebd 100644 --- a/src/poetry_plugin_shell/command.py +++ b/src/poetry_plugin_shell/command.py @@ -34,6 +34,14 @@ def handle(self) -> int: f"Virtual environment already activated: {self.env.path}" ) + # Only activate if not already inside a Poetry-spawned shell (avoid nesting). + if not os.environ.get("POETRY_ACTIVE"): + env = self.env + assert env.is_venv() + env = cast("VirtualEnv", env) + shell = Shell.get() + shell.activate(env) + return 0 self.line(f"Spawning shell within {self.env.path}") From b0cdfd88beebe02abab80a18c284c025e10c7dce Mon Sep 17 00:00:00 2001 From: Kent Tonino Date: Thu, 9 Apr 2026 23:34:28 +0800 Subject: [PATCH 2/2] fix: check if inside poetry shell --- src/poetry_plugin_shell/command.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/poetry_plugin_shell/command.py b/src/poetry_plugin_shell/command.py index 74acebd..aa751c4 100644 --- a/src/poetry_plugin_shell/command.py +++ b/src/poetry_plugin_shell/command.py @@ -35,7 +35,7 @@ def handle(self) -> int: ) # Only activate if not already inside a Poetry-spawned shell (avoid nesting). - if not os.environ.get("POETRY_ACTIVE"): + if os.environ.get("POETRY_ACTIVE") == "1": env = self.env assert env.is_venv() env = cast("VirtualEnv", env)