cloudagent-daemon 0.2.3__tar.gz → 0.2.4__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.
Files changed (33) hide show
  1. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/PKG-INFO +1 -1
  2. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/pyproject.toml +1 -1
  3. cloudagent_daemon-0.2.4/src/cloudagent_daemon/__init__.py +1 -0
  4. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/service.py +25 -3
  5. cloudagent_daemon-0.2.3/src/cloudagent_daemon/__init__.py +0 -1
  6. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/.gitignore +0 -0
  7. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/LICENSE +0 -0
  8. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/README.md +0 -0
  9. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/__main__.py +0 -0
  10. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/claude_runner.py +0 -0
  11. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/cli.py +0 -0
  12. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/config.py +0 -0
  13. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/doctor.py +0 -0
  14. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/frame_dispatch.py +0 -0
  15. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/http_outbound.py +0 -0
  16. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/jsonl_logging.py +0 -0
  17. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/login.py +0 -0
  18. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/main_loop.py +0 -0
  19. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/mcp_bridge.py +0 -0
  20. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/metrics.py +0 -0
  21. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/metrics_server.py +0 -0
  22. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/outbound_queue.py +0 -0
  23. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/paths.py +0 -0
  24. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/protocol.py +0 -0
  25. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/runtime_detect.py +0 -0
  26. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/spawn_outbox.py +0 -0
  27. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/spawn_queue.py +0 -0
  28. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/sse_client.py +0 -0
  29. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/transport.py +0 -0
  30. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/unix_socket.py +0 -0
  31. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/workspace.py +0 -0
  32. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/src/cloudagent_daemon/ws_client.py +0 -0
  33. {cloudagent_daemon-0.2.3 → cloudagent_daemon-0.2.4}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudagent-daemon
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: Local daemon for cloudagent — bridges Claude Code subprocesses to the cloudagent backend over WebSocket.
5
5
  Project-URL: Homepage, https://cloudagent.chat
6
6
  Project-URL: Repository, https://codeup.aliyun.com/69bd0a4d29ad98af4065ce71/cloudagent
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "cloudagent-daemon"
7
- version = "0.2.3"
7
+ version = "0.2.4"
8
8
  description = "Local daemon for cloudagent — bridges Claude Code subprocesses to the cloudagent backend over WebSocket."
9
9
  authors = [{name = "chaoyin", email = "tudoucyx@gmail.com"}]
10
10
  readme = "README.md"
@@ -0,0 +1 @@
1
+ __version__ = "0.2.4"
@@ -200,8 +200,19 @@ def install_macos(
200
200
  plist_path.chmod(0o600)
201
201
 
202
202
  uid = os.getuid()
203
- # Bootstrap into launchd (modern API). ``check=False`` because the
204
- # service may already be loaded — bootout/kickstart below will recover.
203
+ # Reinstall-safe (2026-05-19). A plain ``bootstrap`` is a no-op when
204
+ # the service is already loaded — launchctl keeps the OLD in-memory
205
+ # plist and never re-reads the file we just wrote. Without a prior
206
+ # ``bootout`` a re-run of ``install-service`` silently keeps the
207
+ # stale definition (e.g. a changed CLOUDAGENT_DAEMON_PERMISSION_MODE
208
+ # never takes effect). So: bootout first (unload any loaded
209
+ # instance), then bootstrap genuinely loads the fresh plist.
210
+ # ``bootout`` exits non-zero when nothing is loaded (first install)
211
+ # — ``check=False`` swallows that, making install == reinstall.
212
+ subprocess.run(
213
+ ["launchctl", "bootout", f"gui/{uid}/{label}"],
214
+ check=False,
215
+ )
205
216
  subprocess.run(
206
217
  ["launchctl", "bootstrap", f"gui/{uid}", str(plist_path)],
207
218
  check=False,
@@ -324,7 +335,18 @@ def install_linux(
324
335
  )
325
336
  subprocess.run(["systemctl", "--user", "daemon-reload"], check=False)
326
337
  subprocess.run(
327
- ["systemctl", "--user", "enable", "--now", unit_name],
338
+ ["systemctl", "--user", "enable", unit_name],
339
+ check=False,
340
+ )
341
+ # Reinstall-safe (2026-05-19): ``restart`` (not ``enable --now`` /
342
+ # ``start``) so a re-run of ``install-service`` genuinely applies
343
+ # the freshly written unit file — ``start`` is a no-op on an
344
+ # already-running service, leaving the daemon on the stale config.
345
+ # ``daemon-reload`` above re-read the unit; ``restart`` makes the
346
+ # running process pick it up. ``restart`` also starts a stopped
347
+ # service, so this covers first-install too.
348
+ subprocess.run(
349
+ ["systemctl", "--user", "restart", unit_name],
328
350
  check=False,
329
351
  )
330
352
  return unit_path
@@ -1 +0,0 @@
1
- __version__ = "0.2.3"