feat: v1.0 — am serve : API HTTP + WebSocket authentifiée pour piloter am à distance (closes #80)
release / linux (push) Successful in 15m21s
release / windows (push) Canceled after 0s
release / macos (push) Canceled after 0s

- src/serve.rs : tiny_http (zéro dépendance runtime) — token Bearer obligatoire (comptime-ish), rate limiting fenêtre 60s par IP, routes réutilisant les contrats --json (stats/sessions/ps/providers/run/start/stop/ask) en re-spawnant le binaire (pattern web #54), WebSocket RFC 6455 (handshake 101 + accept sha1, broadcast des events du journal par polling 500ms, première passe = indexation), TLS délégué au reverse proxy (documenté)
- am serve --token <TOKEN> [--host] [--port 8080] [--rate-limit 120] + REPL + help + man
- 9 tests : auth (sans/mauvais/bon token), routes (runner mocké), run args, 404, rate limit, handshake RFC 6455 (vecteur connu), broadcast journal, comparaison token
- E2E réel : curl 401/health/stats + POST run exécutant un agent, client WS brut recevant l'event run en temps réel
- version 1.0.0 (milestone v1.0 terminé) ; test version_table suit Cargo.toml (major plus hardcodé)
This commit is contained in:
2026-08-20 07:24:53 -04:00
parent 92af59a71f
commit 2d90c48532
12 changed files with 746 additions and 8 deletions
Generated
+3 -1
View File
@@ -21,9 +21,10 @@ dependencies = [
[[package]]
name = "agent-manager"
version = "0.7.0"
version = "1.0.0"
dependencies = [
"anyhow",
"base64",
"chrono",
"clap",
"clap_complete",
@@ -39,6 +40,7 @@ dependencies = [
"serde",
"serde_json",
"serde_yaml",
"sha1",
"sha2",
"shell-words",
"tar",