From 841318c9e21ad25f4b90287a52db9268d878d810 Mon Sep 17 00:00:00 2001 From: kodi Date: Fri, 27 Mar 2026 10:39:54 +0100 Subject: [PATCH] Add Phase 1 remote client registry and heartbeat agent - add remote client register, heartbeat and list endpoints - add remote client repository and service - add minimal macOS remote agent with config, register and heartbeat loop - keep client_id as leading identity - keep status fields separated: last_seen, status, last_error, reachable_at - avoid changes to local storage flows, PathGuard and /Volumes behavior --- .../com.webmanager.remote-client-agent.plist | 24 ++++++++++++++++++ .../remote_client_agent.launchd.json | 15 +++++++++++ webui/backend/data/tasks.db | Bin 405504 -> 421888 bytes 3 files changed, 39 insertions(+) create mode 100644 finder_commander/launchd/com.webmanager.remote-client-agent.plist create mode 100644 finder_commander/remote_client_agent.launchd.json diff --git a/finder_commander/launchd/com.webmanager.remote-client-agent.plist b/finder_commander/launchd/com.webmanager.remote-client-agent.plist new file mode 100644 index 0000000..a865964 --- /dev/null +++ b/finder_commander/launchd/com.webmanager.remote-client-agent.plist @@ -0,0 +1,24 @@ + + + + + Label + com.webmanager.remote-client-agent + ProgramArguments + + /usr/bin/python3 + -u + /workspace/webmanager-mvp/finder_commander/remote_client_agent.py + --config + /workspace/webmanager-mvp/finder_commander/remote_client_agent.launchd.json + + RunAtLoad + + KeepAlive + + StandardOutPath + /tmp/com.webmanager.remote-client-agent.out.log + StandardErrorPath + /tmp/com.webmanager.remote-client-agent.err.log + + diff --git a/finder_commander/remote_client_agent.launchd.json b/finder_commander/remote_client_agent.launchd.json new file mode 100644 index 0000000..e1d5879 --- /dev/null +++ b/finder_commander/remote_client_agent.launchd.json @@ -0,0 +1,15 @@ +{ + "agent_access_token": "change-me-agent-token", + "client_id": "", + "display_name": "MacBook Pro van Jan", + "endpoint": "http://192.168.1.25:8765", + "heartbeat_interval_seconds": 20, + "platform": "macos", + "registration_token": "change-me-registration-token", + "shares": { + "downloads": "/Users/jan/Downloads", + "movies": "/Users/jan/Movies", + "pictures": "/Users/jan/Pictures" + }, + "webmanager_base_url": "http://127.0.0.1:8080" +} diff --git a/webui/backend/data/tasks.db b/webui/backend/data/tasks.db index 515638c38c544e2a0c64aa267c5ea6218d233de7..62299f763d8103f4c97c27c0f72b5b3b4490747a 100644 GIT binary patch delta 1198 zcma)4OHUI~6rOgpk4dLfG^P>^OsarYTISK|i-kgIA`vPWNDM@W+nL*TWI9u41_TW$ zRpVn})XX1%-@pR5;=+|C>|DZ*g+IWhx75}aeBIDt3E ztcap{h<8K$)jcfw=mAN6$0+9(=KDf@_FW?ed;#wp&qwb)_YKc;*CzhWCE;Vvt?ijW z&{?hZQtn_j?5Hg$nhaMJc~vxES+}4lsS4CAQ&fRzi6(?vCtl3l&W_Gz>51HU_745G zI)XlSZsq7^uWDn+<<^k!33hGJ?+)HX3X6YIC@W?~1#6-P%COnE(YNp~k=6Fv6QkRN z{?yq{KPmN@<#PwaVaKbB7Ral|v~((y8_Leov!i2^*_I#mG4^YBx4YrKXm^oeU;9vd zi@4-L+gb(PDAz9pD57T)SD<0q*U3Q-)Z~h;Xco%#drH87rg-19N67(i%VXO?(RPu% zLL4E`Fm$61`3wl8QeC(RtRqg2isH)^*`A@!*^}Ng&Jogn>ABF?xrxYj-r>_t*NaV; z1BDX>j^Y%G(>t3k*J79;(SLRLcQOAi`hf5K)h8nk|C|u)&(!ox4~AtjFcHr)1t}4M z0uUlGIT4Sfn7kBW3UQvxgM5KyQd2-0)Ac2K+R*70pwT%+(#t^7O*YC#nMkDsOvsij ztCAibW>Z|0jVGgQ0tGLmlZm*n@Hn&t*Fx!#T-6_Hst#l`G!#-n9;yf&Z(-|0O=4MJ zQD8f1ssa3BR20ctMs~L~nr=etcR7ZOM;JcBC1#manrG6S5RD50Kfx#F^+G{aG}uYu z_%suXCYczQOwM