Files
Rpa_Skills/tests/fixtures/h-packaged-desktop/launcher.py
T
VasanthandClaude Opus 5.5 3942fad6cd Add rpa-bot-handoff skill: ops guide for bot handover
The skill scans a bot with subagents (never runs it) and writes
HANDOVER.md, an 11-section ops guide in the operator's order: where is
what, how to run, how long to wait, after the run, how to see an
exception, exception list, how you will know, how to tell us, don'ts,
issues seen before. Dev material (check against 12 failure classes from
Tebra Auto Post, gaps with file:line, incidents) goes to HANDOVER-DEV.md.

Also adds ADR-0004, glossary terms, five fixture bots and a handoff eval
runner (--resume, --regrade) with results from 47 runs of the earlier
13-section version. The grader still expects that structure and must be
updated before the next eval run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 15:01:42 +05:30

35 lines
931 B
Python

"""launcher.exe: checks for a newer LedgerBot build, installs it, then starts LedgerBot.exe."""
import json
import subprocess
import sys
import urllib.request
import zipfile
from pathlib import Path
from app import VERSION
UPDATE_URL = "https://updates.example.test/ledgerbot/latest.json"
BASE = Path(sys.executable).parent
def latest():
try:
with urllib.request.urlopen(UPDATE_URL, timeout=10) as r:
return json.load(r)
except Exception:
return None # offline, or the server's certificate is not trusted: run the current build
def main():
info = latest()
if info and info["version"] != VERSION:
zip_path = BASE / "update.zip"
urllib.request.urlretrieve(info["zip_url"], zip_path)
with zipfile.ZipFile(zip_path) as z:
z.extractall(BASE)
subprocess.Popen([str(BASE / "LedgerBot.exe"), *sys.argv[1:]])
if __name__ == "__main__":
main()