onako 0.4.1__py3-none-any.whl → 0.4.2__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.
- onako/__init__.py +1 -1
- onako/tmux_orchestrator.py +10 -5
- {onako-0.4.1.dist-info → onako-0.4.2.dist-info}/METADATA +1 -1
- onako-0.4.2.dist-info/RECORD +10 -0
- onako-0.4.1.dist-info/RECORD +0 -10
- {onako-0.4.1.dist-info → onako-0.4.2.dist-info}/WHEEL +0 -0
- {onako-0.4.1.dist-info → onako-0.4.2.dist-info}/entry_points.txt +0 -0
- {onako-0.4.1.dist-info → onako-0.4.2.dist-info}/top_level.txt +0 -0
onako/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.4.
|
|
1
|
+
__version__ = "0.4.2"
|
onako/tmux_orchestrator.py
CHANGED
|
@@ -21,9 +21,14 @@ class TmuxOrchestrator:
|
|
|
21
21
|
self._ensure_session()
|
|
22
22
|
self.rediscover_tasks()
|
|
23
23
|
|
|
24
|
+
@property
|
|
25
|
+
def _session_target(self) -> str:
|
|
26
|
+
"""Session name with colon suffix for unambiguous tmux targeting."""
|
|
27
|
+
return f"{self.session_name}:"
|
|
28
|
+
|
|
24
29
|
def _ensure_session(self):
|
|
25
30
|
result = subprocess.run(
|
|
26
|
-
["tmux", "has-session", "-t", self.
|
|
31
|
+
["tmux", "has-session", "-t", self._session_target],
|
|
27
32
|
capture_output=True,
|
|
28
33
|
)
|
|
29
34
|
if result.returncode != 0:
|
|
@@ -88,11 +93,11 @@ class TmuxOrchestrator:
|
|
|
88
93
|
self._ensure_session()
|
|
89
94
|
task_id = f"task-{secrets.token_hex(4)}"
|
|
90
95
|
self._run_tmux(
|
|
91
|
-
"new-window", "-t", self.
|
|
96
|
+
"new-window", "-t", self._session_target, "-n", task_id,
|
|
92
97
|
)
|
|
93
98
|
# Look up the window ID for safe targeting
|
|
94
99
|
result = self._run_tmux(
|
|
95
|
-
"list-windows", "-t", self.
|
|
100
|
+
"list-windows", "-t", self._session_target, "-F", "#{window_name}|#{window_id}",
|
|
96
101
|
)
|
|
97
102
|
if result.stdout.strip():
|
|
98
103
|
for line in result.stdout.strip().split("\n"):
|
|
@@ -179,7 +184,7 @@ class TmuxOrchestrator:
|
|
|
179
184
|
|
|
180
185
|
def _sync_task_status(self):
|
|
181
186
|
result = self._run_tmux(
|
|
182
|
-
"list-windows", "-t", self.
|
|
187
|
+
"list-windows", "-t", self._session_target, "-F", "#{window_name}|#{window_id}",
|
|
183
188
|
)
|
|
184
189
|
active_windows = set()
|
|
185
190
|
if result.stdout.strip():
|
|
@@ -196,7 +201,7 @@ class TmuxOrchestrator:
|
|
|
196
201
|
def rediscover_tasks(self):
|
|
197
202
|
"""Rediscover tasks from existing tmux windows on server restart."""
|
|
198
203
|
result = self._run_tmux(
|
|
199
|
-
"list-windows", "-t", self.
|
|
204
|
+
"list-windows", "-t", self._session_target, "-F", "#{window_name}|#{window_id}",
|
|
200
205
|
)
|
|
201
206
|
if not result.stdout.strip():
|
|
202
207
|
return
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
onako/__init__.py,sha256=6hfVa12Q-nXyUEXr6SyKpqPEDJW6vlRHyPxlA27PfTs,22
|
|
2
|
+
onako/cli.py,sha256=_-dWcf7fVD3QmN6wIzbFLydEVX2pzGs2cKBwP6SZWtY,7932
|
|
3
|
+
onako/server.py,sha256=NfP2CaecxAzuq0tSIaatfYX3d98EuLfhIwK00oHNjro,2883
|
|
4
|
+
onako/tmux_orchestrator.py,sha256=QShgrLf0DtYrgXq3a4FxLIBCnq_CZ6skNNuiXcHQvCk,8461
|
|
5
|
+
onako/static/index.html,sha256=ioombLZg8uhVHL64saB50ikYBUYNDgw5yClA-QoNxEo,16802
|
|
6
|
+
onako-0.4.2.dist-info/METADATA,sha256=1v84RX4BpHeleN7txOm_R2Vy_zFZ4ccSkEhxpbAtFxo,2175
|
|
7
|
+
onako-0.4.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
8
|
+
onako-0.4.2.dist-info/entry_points.txt,sha256=51KRJzuVpr69iT_k4JO0Lj3DQv_HbgtGjTBTev13JAQ,41
|
|
9
|
+
onako-0.4.2.dist-info/top_level.txt,sha256=EZsc5qq2paM9GTbaFE9Xar4B5wFdfIqK9l_bDQVcmZ4,6
|
|
10
|
+
onako-0.4.2.dist-info/RECORD,,
|
onako-0.4.1.dist-info/RECORD
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
onako/__init__.py,sha256=pMtTmSUht-XtbR_7Doz6bsQqopJJd8rZ8I8zy2HwwoA,22
|
|
2
|
-
onako/cli.py,sha256=_-dWcf7fVD3QmN6wIzbFLydEVX2pzGs2cKBwP6SZWtY,7932
|
|
3
|
-
onako/server.py,sha256=NfP2CaecxAzuq0tSIaatfYX3d98EuLfhIwK00oHNjro,2883
|
|
4
|
-
onako/tmux_orchestrator.py,sha256=URAOdYo88SzW1ef0o9_hKxJ0SeTtuqZlex1kgTMv42w,8277
|
|
5
|
-
onako/static/index.html,sha256=ioombLZg8uhVHL64saB50ikYBUYNDgw5yClA-QoNxEo,16802
|
|
6
|
-
onako-0.4.1.dist-info/METADATA,sha256=WBaCh-ead_JtD_avuSMhUeJD0dnBl7kLor7UIXPFrB4,2175
|
|
7
|
-
onako-0.4.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
8
|
-
onako-0.4.1.dist-info/entry_points.txt,sha256=51KRJzuVpr69iT_k4JO0Lj3DQv_HbgtGjTBTev13JAQ,41
|
|
9
|
-
onako-0.4.1.dist-info/top_level.txt,sha256=EZsc5qq2paM9GTbaFE9Xar4B5wFdfIqK9l_bDQVcmZ4,6
|
|
10
|
-
onako-0.4.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|