shotgun-sh 0.1.12.dev2__py3-none-any.whl → 0.1.12.dev3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of shotgun-sh might be problematic. Click here for more details.
- shotgun/main.py +9 -1
- shotgun/tui/app.py +4 -0
- shotgun/tui/screens/chat.py +12 -4
- {shotgun_sh-0.1.12.dev2.dist-info → shotgun_sh-0.1.12.dev3.dist-info}/METADATA +1 -1
- {shotgun_sh-0.1.12.dev2.dist-info → shotgun_sh-0.1.12.dev3.dist-info}/RECORD +8 -8
- {shotgun_sh-0.1.12.dev2.dist-info → shotgun_sh-0.1.12.dev3.dist-info}/WHEEL +0 -0
- {shotgun_sh-0.1.12.dev2.dist-info → shotgun_sh-0.1.12.dev3.dist-info}/entry_points.txt +0 -0
- {shotgun_sh-0.1.12.dev2.dist-info → shotgun_sh-0.1.12.dev3.dist-info}/licenses/LICENSE +0 -0
shotgun/main.py
CHANGED
|
@@ -118,7 +118,15 @@ def main(
|
|
|
118
118
|
|
|
119
119
|
if ctx.invoked_subcommand is None and not ctx.resilient_parsing:
|
|
120
120
|
logger.debug("Launching shotgun TUI application")
|
|
121
|
-
|
|
121
|
+
try:
|
|
122
|
+
tui_app.run(
|
|
123
|
+
no_update_check=no_update_check, continue_session=continue_session
|
|
124
|
+
)
|
|
125
|
+
finally:
|
|
126
|
+
# Ensure PostHog is shut down cleanly even if TUI exits unexpectedly
|
|
127
|
+
from shotgun.posthog_telemetry import shutdown
|
|
128
|
+
|
|
129
|
+
shutdown()
|
|
122
130
|
raise typer.Exit()
|
|
123
131
|
|
|
124
132
|
# For CLI commands, register PostHog shutdown handler
|
shotgun/tui/app.py
CHANGED
|
@@ -83,6 +83,10 @@ class ShotgunApp(App[None]):
|
|
|
83
83
|
|
|
84
84
|
async def action_quit(self) -> None:
|
|
85
85
|
"""Quit the application."""
|
|
86
|
+
# Shut down PostHog client to prevent threading errors
|
|
87
|
+
from shotgun.posthog_telemetry import shutdown
|
|
88
|
+
|
|
89
|
+
shutdown()
|
|
86
90
|
self.exit()
|
|
87
91
|
|
|
88
92
|
def get_system_commands(self, screen: Screen[Any]) -> Iterable[SystemCommand]:
|
shotgun/tui/screens/chat.py
CHANGED
|
@@ -16,6 +16,7 @@ from textual import events, on, work
|
|
|
16
16
|
from textual.app import ComposeResult
|
|
17
17
|
from textual.command import CommandPalette
|
|
18
18
|
from textual.containers import Container, Grid
|
|
19
|
+
from textual.keys import Keys
|
|
19
20
|
from textual.reactive import reactive
|
|
20
21
|
from textual.screen import ModalScreen, Screen
|
|
21
22
|
from textual.widget import Widget
|
|
@@ -285,13 +286,18 @@ class ChatScreen(Screen[None]):
|
|
|
285
286
|
|
|
286
287
|
async def on_key(self, event: events.Key) -> None:
|
|
287
288
|
"""Handle key presses for cancellation."""
|
|
288
|
-
# If escape is pressed while agent is working, cancel the operation
|
|
289
|
-
if
|
|
290
|
-
|
|
289
|
+
# If escape or ctrl+c is pressed while agent is working, cancel the operation
|
|
290
|
+
if (
|
|
291
|
+
event.key in (Keys.Escape, Keys.ControlC)
|
|
292
|
+
and self.working
|
|
293
|
+
and self._current_worker
|
|
294
|
+
):
|
|
295
|
+
# Track cancellation event
|
|
291
296
|
track_event(
|
|
292
|
-
"
|
|
297
|
+
"agent_cancelled",
|
|
293
298
|
{
|
|
294
299
|
"agent_mode": self.mode.value,
|
|
300
|
+
"cancel_key": event.key,
|
|
295
301
|
},
|
|
296
302
|
)
|
|
297
303
|
|
|
@@ -302,6 +308,8 @@ class ChatScreen(Screen[None]):
|
|
|
302
308
|
# Re-enable the input
|
|
303
309
|
prompt_input = self.query_one(PromptInput)
|
|
304
310
|
prompt_input.focus()
|
|
311
|
+
# Prevent the event from propagating (don't quit the app)
|
|
312
|
+
event.stop()
|
|
305
313
|
|
|
306
314
|
@work
|
|
307
315
|
async def check_if_codebase_is_indexed(self) -> None:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
|
|
2
2
|
shotgun/build_constants.py,sha256=RXNxMz46HaB5jucgMVpw8a2yCJqjbhTOh0PddyEVMN8,713
|
|
3
3
|
shotgun/logging_config.py,sha256=UKenihvgH8OA3W0b8ZFcItYaFJVe9MlsMYlcevyW1HY,7440
|
|
4
|
-
shotgun/main.py,sha256=
|
|
4
|
+
shotgun/main.py,sha256=Fbg4MNEOR-FPibcbIQ7LwdQIOdYMNYMbMCPPjasbJyA,4834
|
|
5
5
|
shotgun/posthog_telemetry.py,sha256=tu5FLao8uXd76RcKMyWQ9RWPCCJos749XJ_9uT_NNwI,4294
|
|
6
6
|
shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
shotgun/sentry_telemetry.py,sha256=L7jFMNAnDIENWVeQYSLpyul2nmIm2w3wnOp2kDP_cic,2902
|
|
@@ -102,7 +102,7 @@ shotgun/sdk/exceptions.py,sha256=qBcQv0v7ZTwP7CMcxZST4GqCsfOWtOUjSzGBo0-heqo,412
|
|
|
102
102
|
shotgun/sdk/models.py,sha256=X9nOTUHH0cdkQW1NfnMEDu-QgK9oUsEISh1Jtwr5Am4,5496
|
|
103
103
|
shotgun/sdk/services.py,sha256=J4PJFSxCQ6--u7rb3Ta-9eYtlYcxcbnzrMP6ThyCnw4,705
|
|
104
104
|
shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
|
-
shotgun/tui/app.py,sha256=
|
|
105
|
+
shotgun/tui/app.py,sha256=3_g11ZyhJ0avcnX0vundJ9dF2EkkcZnHBBSYzg-P_54,3583
|
|
106
106
|
shotgun/tui/filtered_codebase_service.py,sha256=lJ8gTMhIveTatmvmGLP299msWWTkVYKwvY_2FhuL2s4,1687
|
|
107
107
|
shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
|
|
108
108
|
shotgun/tui/commands/__init__.py,sha256=8D5lvtpqMW5-fF7Bg3oJtUzU75cKOv6aUaHYYszydU8,2518
|
|
@@ -110,7 +110,7 @@ shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4Ugad
|
|
|
110
110
|
shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
|
|
111
111
|
shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
|
|
112
112
|
shotgun/tui/components/vertical_tail.py,sha256=kROwTaRjUwVB7H35dtmNcUVPQqNYvvfq7K2tXBKEb6c,638
|
|
113
|
-
shotgun/tui/screens/chat.py,sha256=
|
|
113
|
+
shotgun/tui/screens/chat.py,sha256=HYHiHpvek465tOX2YBs_O1en29O524qaDlB3R_8Z9s4,27304
|
|
114
114
|
shotgun/tui/screens/chat.tcss,sha256=2Yq3E23jxsySYsgZf4G1AYrYVcpX0UDW6kNNI0tDmtM,437
|
|
115
115
|
shotgun/tui/screens/directory_setup.py,sha256=lIZ1J4A6g5Q2ZBX8epW7BhR96Dmdcg22CyiM5S-I5WU,3237
|
|
116
116
|
shotgun/tui/screens/provider_config.py,sha256=A_tvDHF5KLP5PV60LjMJ_aoOdT3TjI6_g04UIUqGPqM,7126
|
|
@@ -126,8 +126,8 @@ shotgun/utils/env_utils.py,sha256=8QK5aw_f_V2AVTleQQlcL0RnD4sPJWXlDG46fsHu0d8,10
|
|
|
126
126
|
shotgun/utils/file_system_utils.py,sha256=l-0p1bEHF34OU19MahnRFdClHufThfGAjQ431teAIp0,1004
|
|
127
127
|
shotgun/utils/source_detection.py,sha256=Co6Q03R3fT771TF3RzB-70stfjNP2S4F_ArZKibwzm8,454
|
|
128
128
|
shotgun/utils/update_checker.py,sha256=IgzPHRhS1ETH7PnJR_dIx6lxgr1qHpCkMTgzUxvGjhI,7586
|
|
129
|
-
shotgun_sh-0.1.12.
|
|
130
|
-
shotgun_sh-0.1.12.
|
|
131
|
-
shotgun_sh-0.1.12.
|
|
132
|
-
shotgun_sh-0.1.12.
|
|
133
|
-
shotgun_sh-0.1.12.
|
|
129
|
+
shotgun_sh-0.1.12.dev3.dist-info/METADATA,sha256=DVBz9JPoN3t6ypYy6oit9oEExatPN8WDvVlcvA1bFp4,11197
|
|
130
|
+
shotgun_sh-0.1.12.dev3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
131
|
+
shotgun_sh-0.1.12.dev3.dist-info/entry_points.txt,sha256=asZxLU4QILneq0MWW10saVCZc4VWhZfb0wFZvERnzfA,45
|
|
132
|
+
shotgun_sh-0.1.12.dev3.dist-info/licenses/LICENSE,sha256=YebsZl590zCHrF_acCU5pmNt0pnAfD2DmAnevJPB1tY,1065
|
|
133
|
+
shotgun_sh-0.1.12.dev3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|