Phase 6: Comms v2 — send email, compose, schedule, meeting prep

- arc.php: comms_sent / comms_sent_get / comms_sent_delete + outbox backend
- chat.php: Tier 0.9f-0.9h — send_email, compose_email, schedule_event, meeting_prep voice detection
- index.html: COMMS tab SEND REPLY button, COMPOSE modal, OUTBOX section, onArcJobStarted routes comms jobs to COMMS tab
- admin/index.php: OUTBOX nav + tab, send_reply/compose_email/outbox_list/outbox_delete PHP actions, outboxCompose() modal, triageSendReply() inline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 05:05:00 +00:00
parent f15225994a
commit 8229f52b8b
4 changed files with 465 additions and 11 deletions
+23
View File
@@ -213,6 +213,29 @@ switch ($action) {
echo json_encode(arc_request('GET', '/guardian/chat' . $qs));
break;
// ── COMMS v2 ──────────────────────────────────────────────────────────────
// GET /api/arc?action=comms_sent&limit=50&status=sent
case 'comms_sent':
$limit = min((int)($_GET['limit'] ?? 50), 200);
$status = $_GET['status'] ?? '';
$qs = http_build_query(array_filter(['limit' => $limit, 'status' => $status]));
echo json_encode(arc_request('GET', '/comms/sent' . ($qs ? "?{$qs}" : '')));
break;
// GET /api/arc?action=comms_sent_get&id=123
case 'comms_sent_get':
$id = (int)($_GET['id'] ?? 0);
if (!$id) { http_response_code(400); echo json_encode(['error' => 'Missing id']); break; }
echo json_encode(arc_request('GET', "/comms/sent/{$id}"));
break;
// DELETE /api/arc?action=comms_sent_delete&id=123
case 'comms_sent_delete':
$id = (int)($_GET['id'] ?? 0);
if (!$id) { http_response_code(400); echo json_encode(['error' => 'Missing id']); break; }
echo json_encode(arc_request('DELETE', "/comms/sent/{$id}"));
break;
default:
http_response_code(404);
echo json_encode(['error' => "Unknown arc action: {$action}"]);