forestui 0.9.7__tar.gz → 0.9.9__tar.gz
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.
- {forestui-0.9.7 → forestui-0.9.9}/PKG-INFO +1 -1
- {forestui-0.9.7 → forestui-0.9.9}/forestui/app.py +8 -8
- {forestui-0.9.7 → forestui-0.9.9}/pyproject.toml +1 -1
- {forestui-0.9.7 → forestui-0.9.9}/.github/workflows/publish.yml +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/.gitignore +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/.pre-commit-config.yaml +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/.python-version +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/CLAUDE.md +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/Makefile +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/README.md +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/doc/screenshot_small.png +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/__init__.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/__main__.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/cli.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/components/__init__.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/components/messages.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/components/modals.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/components/repository_detail.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/components/sidebar.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/components/worktree_detail.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/models.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/services/__init__.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/services/claude_session.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/services/git.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/services/github.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/services/settings.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/services/tmux.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/state.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/forestui/theme.py +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/install.sh +0 -0
- {forestui-0.9.7 → forestui-0.9.9}/uv.lock +0 -0
|
@@ -784,13 +784,13 @@ class ForestApp(App[None]):
|
|
|
784
784
|
return repo.name
|
|
785
785
|
return None
|
|
786
786
|
|
|
787
|
-
def
|
|
788
|
-
"""Get the window name for Claude sessions: repo:
|
|
787
|
+
def _get_tmux_window_name(self, path: str) -> str:
|
|
788
|
+
"""Get the window name for Claude sessions: repo:worktree format."""
|
|
789
789
|
# Check worktrees first
|
|
790
790
|
for repo in self._state.repositories:
|
|
791
791
|
for worktree in repo.worktrees:
|
|
792
792
|
if worktree.path == path:
|
|
793
|
-
return f"{repo.name}:{worktree.
|
|
793
|
+
return f"{repo.name}:{worktree.name}"
|
|
794
794
|
# Check if it's the repository source path
|
|
795
795
|
if repo.source_path == path:
|
|
796
796
|
return repo.name
|
|
@@ -804,7 +804,7 @@ class ForestApp(App[None]):
|
|
|
804
804
|
if self._tmux_service.is_inside_tmux and self._tmux_service.is_tui_editor(
|
|
805
805
|
editor
|
|
806
806
|
):
|
|
807
|
-
name = self.
|
|
807
|
+
name = self._get_tmux_window_name(path)
|
|
808
808
|
if self._tmux_service.create_editor_window(name, path, editor):
|
|
809
809
|
self.notify(f"Opened {editor} in edit:{name}")
|
|
810
810
|
return
|
|
@@ -824,7 +824,7 @@ class ForestApp(App[None]):
|
|
|
824
824
|
|
|
825
825
|
def _open_in_terminal(self, path: str) -> None:
|
|
826
826
|
"""Open path in a tmux terminal window."""
|
|
827
|
-
name = self.
|
|
827
|
+
name = self._get_tmux_window_name(path)
|
|
828
828
|
if self._tmux_service.create_shell_window(name, path):
|
|
829
829
|
self.notify(f"Opened terminal in term:{name}")
|
|
830
830
|
else:
|
|
@@ -832,7 +832,7 @@ class ForestApp(App[None]):
|
|
|
832
832
|
|
|
833
833
|
def _open_in_file_manager(self, path: str) -> None:
|
|
834
834
|
"""Open path in Midnight Commander (mc) in a tmux window."""
|
|
835
|
-
name = self.
|
|
835
|
+
name = self._get_tmux_window_name(path)
|
|
836
836
|
if self._tmux_service.create_mc_window(name, path):
|
|
837
837
|
self.notify(f"Opened mc in files:{name}")
|
|
838
838
|
else:
|
|
@@ -922,7 +922,7 @@ class ForestApp(App[None]):
|
|
|
922
922
|
|
|
923
923
|
def _start_claude_session(self, path: str, yolo: bool = False) -> None:
|
|
924
924
|
"""Start a new Claude session in a tmux window."""
|
|
925
|
-
name = self.
|
|
925
|
+
name = self._get_tmux_window_name(path)
|
|
926
926
|
custom_command = self._resolve_claude_command(path)
|
|
927
927
|
window_name = self._tmux_service.create_claude_window(
|
|
928
928
|
name, path, yolo=yolo, custom_command=custom_command
|
|
@@ -937,7 +937,7 @@ class ForestApp(App[None]):
|
|
|
937
937
|
self, session_id: str, path: str, yolo: bool = False
|
|
938
938
|
) -> None:
|
|
939
939
|
"""Continue an existing Claude session in a tmux window."""
|
|
940
|
-
name = self.
|
|
940
|
+
name = self._get_tmux_window_name(path)
|
|
941
941
|
custom_command = self._resolve_claude_command(path)
|
|
942
942
|
window_name = self._tmux_service.create_claude_window(
|
|
943
943
|
name,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|