Ship War Room UX, CEO inbox, mobile chat, and Agents NAS workspace.

Make A2A togglable, keep reply context while reading, route agent data to //10.4.7.11/share/Agents, and polish themes plus export-intel sync cancel.
This commit is contained in:
Aissa
2026-08-16 22:40:32 +00:00
parent 910ba465d7
commit c5ea8cbb63
26 changed files with 2891 additions and 407 deletions
+14
View File
@@ -1372,7 +1372,9 @@ def api_sync_places(payload: SyncRequestIn) -> dict[str, Any]:
job_id = start_job("places", f"Google Places · {len(countries)} landen", total=len(countries))
results: dict[str, Any] = {}
try:
from app.export_intel_sync_progress import SyncCancelled, raise_if_cancelled
for i, c in enumerate(countries, start=1):
raise_if_cancelled()
job_step(job_id, message=f"Google Places {i}/{len(countries)}: {c}", country=c, current=i, total=len(countries))
results[c] = sync_places_country(c)
time.sleep(1)
@@ -1385,6 +1387,18 @@ def api_sync_places(payload: SyncRequestIn) -> dict[str, Any]:
return {"status": "completed", "phase": "B", "result": results}
@router.post("/sync/cancel")
def api_sync_cancel() -> dict[str, Any]:
"""Request cancellation of the currently running sync job(s)."""
from app.export_intel_sync_progress import request_cancel, get_monitor_snapshot
out = request_cancel("user")
snap = get_monitor_snapshot()
out["any_running"] = snap.get("any_running")
out["active_jobs"] = [{"id": j.get("id"), "label": j.get("label"), "status": j.get("status")} for j in snap.get("active_jobs", [])]
return out
@router.get("/sync/status")
def sync_status() -> dict[str, Any]:
from app.export_intel_sync_progress import get_monitor_snapshot