Osservabilita'

Log applicativi

Apri landing

Eventi recenti

Timestamp locale, ultimi 537 eventi
Timestamp Area Azione Messaggio Dettagli
2026-04-30T18:09:07 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 14.41,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T18:09:07 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.77,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T18:09:01 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 22.77,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-30T18:09:01 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 20.31,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-30T16:57:43 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 15.38,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-30T13:21:13 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.72,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:21:12 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.55,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:21:09 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 11.53,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-30T13:21:06 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.5,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:06 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.91,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:05 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.61,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:05 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.12,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:04 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.36,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:04 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 11.59,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:03 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.7,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:03 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.28,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:21:02 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 10.53,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:21:02 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.15,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:21:01 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.57,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:20:58 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 16.41,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:53 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 11.23,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:51 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 14.61,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:50 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 16.26,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:50 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 14.36,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:49 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.55,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:28 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 200
{
  "company_id": "test",
  "duration_ms": 4.8,
  "endpoint": "asset_file",
  "status_code": 200
}
2026-04-30T13:20:27 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.57,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:26 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.34,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:21 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 17.6,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-30T13:20:20 http request GET /c/test/calendar -> 200
{
  "company_id": "test",
  "duration_ms": 10.97,
  "endpoint": "calendar",
  "status_code": 200
}
2026-04-30T13:20:20 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 9.21,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-30T13:20:19 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 8.86,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-30T13:20:19 http request GET /c/test/ai/jobs/20260429-112718-ea48cace -> 200
{
  "company_id": "test",
  "duration_ms": 22.4,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:18 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 10.95,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:18 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 12.44,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:17 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 15.35,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-30T13:20:16 http request GET /c/test/ai/jobs/20260429-145207-431f33d8 -> 200
{
  "company_id": "test",
  "duration_ms": 27.32,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:16 http request GET /c/test/ai/jobs/20260429-123649-3b7780df -> 200
{
  "company_id": "test",
  "duration_ms": 16.27,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:15 http request GET /c/test/ai/jobs/20260429-144204-884fba08 -> 200
{
  "company_id": "test",
  "duration_ms": 19.23,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:15 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52 -> 200
{
  "company_id": "test",
  "duration_ms": 25.08,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:14 http request GET /c/test/ai/jobs/20260429-131539-0f83d6af -> 200
{
  "company_id": "test",
  "duration_ms": 18.3,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:14 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c -> 200
{
  "company_id": "test",
  "duration_ms": 24.61,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:13 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d -> 200
{
  "company_id": "test",
  "duration_ms": 23.14,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:13 http request GET /c/test/ai/jobs/20260429-150844-8211252d -> 200
{
  "company_id": "test",
  "duration_ms": 20.45,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:12 http request GET /c/test/ai/jobs/20260429-123134-7781118a -> 200
{
  "company_id": "test",
  "duration_ms": 22.83,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-30T13:20:12 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 9.33,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-30T13:20:11 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 13.54,
  "endpoint": "library",
  "status_code": 200
}
2026-04-30T13:20:11 http request GET /c/test/metrics -> 200
{
  "company_id": "test",
  "duration_ms": 13.05,
  "endpoint": "metrics",
  "status_code": 200
}
2026-04-30T13:20:09 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 9.58,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-30T13:20:06 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 20.16,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-30T13:19:56 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 14.57,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T16:27:01 http request GET /c/test/calendar -> 200
{
  "company_id": "test",
  "duration_ms": 8.28,
  "endpoint": "calendar",
  "status_code": 200
}
2026-04-29T15:23:09 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 8.04,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T15:23:07 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 15.79,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-29T15:22:25 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 8.46,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T15:22:22 http request GET /c/test/metrics -> 200
{
  "company_id": "test",
  "duration_ms": 10.51,
  "endpoint": "metrics",
  "status_code": 200
}
2026-04-29T15:22:20 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 8.81,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T15:22:13 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 8.9,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:22:13 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 8.48,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T15:21:00 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 13.91,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:20:37 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 9.71,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:20:37 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 11.17,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T15:20:28 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 8.3,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:20:28 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 11.89,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T15:20:26 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.57,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:20:24 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.02,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:20:23 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 12.62,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:20:22 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 12.6,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T15:15:53 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 15.1,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-29T15:15:53 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 16.78,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T15:15:52 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 21.91,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-29T15:15:50 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 10.22,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T15:15:48 http request GET /c/test/metrics -> 200
{
  "company_id": "test",
  "duration_ms": 18.55,
  "endpoint": "metrics",
  "status_code": 200
}
2026-04-29T15:15:47 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 7.56,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T15:15:46 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.24,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:15:46 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 14.45,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T15:15:45 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 12.59,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T15:15:44 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 12.5,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T15:15:44 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 12.73,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:14:28 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.9,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T15:14:11 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 8.2,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:14:11 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 38.86,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T15:14:07 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.48,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:14:06 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 18.51,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T15:13:57 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 14.15,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T15:13:34 http request GET /c/test/ai/jobs/20260429-150844-8211252d/events -> 200
{
  "company_id": "test",
  "duration_ms": 6.96,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T15:13:34 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 8.32,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:13:34 http request GET /c/test/ai/jobs/20260429-150844-8211252d -> 200
{
  "company_id": "test",
  "duration_ms": 19.24,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T15:13:27 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 11.16,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T15:13:24 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 15.48,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T15:12:43 http request GET /c/test/ai/jobs/20260429-150844-8211252d/events -> 200
{
  "company_id": "test",
  "duration_ms": 4.44,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T15:12:42 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 8.35,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:12:42 http request GET /c/test/ai/jobs/20260429-150844-8211252d -> 200
{
  "company_id": "test",
  "duration_ms": 20.0,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T15:12:42 http request POST /c/test/ai/jobs/20260429-150844-8211252d/approve -> 302
{
  "company_id": "test",
  "duration_ms": 13.3,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T15:12:42 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 4,
  "job_id": "20260429-150844-8211252d"
}
2026-04-29T15:12:22 ai_console job_finished Job Codex completato
{
  "changed_files": 4,
  "exit_code": 0,
  "job_id": "20260429-150844-8211252d",
  "status": "pending_approval"
}
2026-04-29T15:08:44 http request GET /c/test/ai/jobs/20260429-150844-8211252d/events -> 200
{
  "company_id": "test",
  "duration_ms": 7.29,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T15:08:44 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.23,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:08:44 http request GET /c/test/ai/jobs/20260429-150844-8211252d -> 200
{
  "company_id": "test",
  "duration_ms": 15.71,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T15:08:44 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-150844-8211252d"
}
2026-04-29T15:08:44 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.27,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T15:08:44 ai_console job_created Job Codex creato
{
  "job_id": "20260429-150844-8211252d",
  "preset_id": "daily_post",
  "uploads": 0
}
2026-04-29T15:08:34 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.79,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T15:08:34 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.05,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T15:08:34 ai_console job_create_failed Scrivi un prompt o seleziona un preset.
{
  "exception_type": "ValueError",
  "traceback": "Traceback (most recent call last):\n  File \"C:\\pOsTeR\\web_app\\routes.py\", line 409, in ai_console\n    job = create_ai_job(company, request.form, uploads)\n  File \"C:\\pOsTeR\\web_app\\ai_console.py\", line 150, in create_ai_job\n    raise ValueError(\"Scrivi un prompt o seleziona un preset.\")\nValueError: Scrivi un prompt o seleziona un preset.\n"
}
2026-04-29T15:08:32 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.97,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T15:08:32 http request POST /c/test/ai/jobs/20260429-145255-e60efb0b/delete -> 302
{
  "company_id": "test",
  "duration_ms": 14.19,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T15:08:32 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-145255-e60efb0b"
}
2026-04-29T15:08:21 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 19.92,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T15:08:20 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 19.13,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T15:08:18 http request GET /c/test/ai/jobs/20260429-145255-e60efb0b/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.71,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T15:08:18 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 152.61,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T15:08:17 http request GET /c/test/ai/jobs/20260429-145255-e60efb0b -> 200
{
  "company_id": "test",
  "duration_ms": 57.2,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:57:40 ai_console job_followup_finished Revisione Codex completata
{
  "changed_files": 2,
  "exit_code": 0,
  "job_id": "20260429-145255-e60efb0b",
  "status": "pending_approval"
}
2026-04-29T14:56:48 http request GET /c/test/ai/jobs/20260429-145255-e60efb0b/events -> 200
{
  "company_id": "test",
  "duration_ms": 7.85,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:56:48 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 12.61,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:56:48 http request GET /c/test/ai/jobs/20260429-145255-e60efb0b -> 200
{
  "company_id": "test",
  "duration_ms": 35.23,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:56:48 ai_console job_followup_started Revisione Codex avviata
{
  "job_id": "20260429-145255-e60efb0b"
}
2026-04-29T14:56:48 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 2,
  "job_id": "20260429-145255-e60efb0b",
  "status": "pending_approval"
}
2026-04-29T14:56:48 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 2,
  "job_id": "20260429-145255-e60efb0b",
  "status": "pending_approval"
}
2026-04-29T14:56:48 http request POST /c/test/ai/jobs/20260429-145255-e60efb0b/continue -> 302
{
  "company_id": "test",
  "duration_ms": 11.47,
  "endpoint": "ai_job_continue",
  "status_code": 302
}
2026-04-29T14:56:48 ai_console job_followup_created Revisione Codex creata
{
  "job_id": "20260429-145255-e60efb0b"
}
2026-04-29T14:55:28 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 2,
  "job_id": "20260429-145255-e60efb0b",
  "status": "pending_approval"
}
2026-04-29T14:55:28 ai_console job_finished Job Codex completato
{
  "changed_files": 2,
  "exit_code": 0,
  "job_id": "20260429-145255-e60efb0b",
  "status": "pending_approval"
}
2026-04-29T14:52:55 http request GET /c/test/ai/jobs/20260429-145255-e60efb0b/events -> 200
{
  "company_id": "test",
  "duration_ms": 7.38,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:52:55 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 8.24,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:52:55 http request GET /c/test/ai/jobs/20260429-145255-e60efb0b -> 200
{
  "company_id": "test",
  "duration_ms": 15.64,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:52:55 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-145255-e60efb0b"
}
2026-04-29T14:52:55 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.08,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T14:52:55 ai_console job_created Job Codex creato
{
  "job_id": "20260429-145255-e60efb0b",
  "preset_id": "daily_post",
  "uploads": 0
}
2026-04-29T14:52:32 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.98,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:52:32 ai_console job_finished Job Codex completato
{
  "changed_files": 0,
  "exit_code": 1,
  "job_id": "20260429-145207-431f33d8",
  "status": "cancelled"
}
2026-04-29T14:52:29 http request GET /c/test/ai/jobs/20260429-145207-431f33d8/events -> 200
{
  "company_id": "test",
  "duration_ms": 8.42,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:52:29 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 12.17,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:52:29 http request GET /c/test/ai/jobs/20260429-145207-431f33d8 -> 200
{
  "company_id": "test",
  "duration_ms": 10.55,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:52:29 http request GET /c/test/ai/jobs/20260429-145207-431f33d8/events -> 200
{
  "company_id": "test",
  "duration_ms": 7.8,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:52:29 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 9.0,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:52:29 http request GET /c/test/ai/jobs/20260429-145207-431f33d8 -> 200
{
  "company_id": "test",
  "duration_ms": 10.89,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:52:27 http request GET /c/test/ai/jobs/20260429-145207-431f33d8/events -> 200
{
  "company_id": "test",
  "duration_ms": 8.3,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:52:27 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 9.51,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:52:27 http request GET /c/test/ai/jobs/20260429-145207-431f33d8 -> 200
{
  "company_id": "test",
  "duration_ms": 10.87,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:52:27 http request POST /c/test/ai/jobs/20260429-145207-431f33d8/cancel -> 302
{
  "company_id": "test",
  "duration_ms": 8.31,
  "endpoint": "ai_job_cancel",
  "status_code": 302
}
2026-04-29T14:52:27 ai_console job_cancelled Job AI interrotto manualmente
{
  "job_id": "20260429-145207-431f33d8",
  "live_process": true
}
2026-04-29T14:52:07 http request GET /c/test/ai/jobs/20260429-145207-431f33d8/events -> 200
{
  "company_id": "test",
  "duration_ms": 5.86,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:52:07 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 6.47,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:52:07 http request GET /c/test/ai/jobs/20260429-145207-431f33d8 -> 200
{
  "company_id": "test",
  "duration_ms": 39.29,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:52:07 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-145207-431f33d8"
}
2026-04-29T14:52:07 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.68,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T14:52:07 ai_console job_created Job Codex creato
{
  "job_id": "20260429-145207-431f33d8",
  "preset_id": "daily_post",
  "uploads": 0
}
2026-04-29T14:51:27 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 10.73,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:51:22 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.52,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:51:17 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.11,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:51:15 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.84,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:51:14 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.89,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:51:13 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 19.55,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:51:11 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 30.9,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:45:36 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 10.05,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:45:35 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 12.21,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:45:25 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 10.86,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T14:45:22 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.55,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:45:20 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 11.85,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:45:01 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 9.62,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T14:44:58 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.84,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:57 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.96,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:56 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.03,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:56 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.86,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:54 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 12.12,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:29 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 15.32,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T14:44:29 http request POST /c/test/file -> 302
{
  "company_id": "test",
  "duration_ms": 7.63,
  "endpoint": "file_save",
  "status_code": 302
}
2026-04-29T14:44:29 editor file_save File salvato
{
  "path": "00-strategia/profilo-azienda.md"
}
2026-04-29T14:44:18 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 14.69,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T14:44:15 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.33,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:14 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.78,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:44:10 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 12.23,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:42:35 ai_console job_finished Job Codex completato
{
  "changed_files": 0,
  "exit_code": 1,
  "job_id": "20260429-144204-884fba08",
  "status": "cancelled"
}
2026-04-29T14:42:30 http request GET /c/test/ai/jobs/20260429-144204-884fba08/events -> 200
{
  "company_id": "test",
  "duration_ms": 6.74,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:42:30 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 14.51,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:42:30 http request GET /c/test/ai/jobs/20260429-144204-884fba08 -> 200
{
  "company_id": "test",
  "duration_ms": 13.73,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:42:30 http request POST /c/test/ai/jobs/20260429-144204-884fba08/cancel -> 302
{
  "company_id": "test",
  "duration_ms": 8.85,
  "endpoint": "ai_job_cancel",
  "status_code": 302
}
2026-04-29T14:42:30 ai_console job_cancelled Job AI interrotto manualmente
{
  "job_id": "20260429-144204-884fba08",
  "live_process": true
}
2026-04-29T14:42:04 http request GET /c/test/ai/jobs/20260429-144204-884fba08/events -> 200
{
  "company_id": "test",
  "duration_ms": 5.89,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T14:42:04 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.94,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:42:04 http request GET /c/test/ai/jobs/20260429-144204-884fba08 -> 200
{
  "company_id": "test",
  "duration_ms": 37.89,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T14:42:04 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-144204-884fba08"
}
2026-04-29T14:42:04 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.71,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T14:42:04 ai_console job_created Job Codex creato
{
  "job_id": "20260429-144204-884fba08",
  "preset_id": "daily_post",
  "uploads": 0
}
2026-04-29T14:41:52 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 10.29,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:41:49 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 12.23,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T14:39:45 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 12.27,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T14:39:39 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 12.61,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T14:39:15 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 45.13,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T14:39:06 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 19.41,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:38:16 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 20.36,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T14:38:15 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 17.45,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:38:12 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 31.26,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:38:02 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 6.88,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:37:58 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 7.05,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:23:05 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 7.16,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:23:05 http request POST /c/test/settings -> 302
{
  "company_id": "test",
  "duration_ms": 13.04,
  "endpoint": "settings",
  "status_code": 302
}
2026-04-29T14:23:05 settings update Impostazioni azienda aggiornate
{}
2026-04-29T14:22:41 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 7.61,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:22:34 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 8.3,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T14:22:31 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 15.25,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-29T14:22:30 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 8.23,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T14:22:29 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 16.01,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-29T14:22:28 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 18.18,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T14:22:28 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 9.48,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:22:28 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 8.56,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T14:22:27 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 12.09,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T14:22:26 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 7.95,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T14:22:24 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 13.79,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T14:22:06 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 7.2,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:22:06 http request POST /c/test/settings -> 302
{
  "company_id": "test",
  "duration_ms": 13.73,
  "endpoint": "settings",
  "status_code": 302
}
2026-04-29T14:22:06 settings update Impostazioni azienda aggiornate
{}
2026-04-29T14:21:25 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 27.41,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:10:40 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 7.38,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T14:10:39 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 8.07,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T14:10:26 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 8.36,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T14:10:22 http request GET /c/test/metrics -> 200
{
  "company_id": "test",
  "duration_ms": 10.88,
  "endpoint": "metrics",
  "status_code": 200
}
2026-04-29T14:10:20 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 7.63,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T14:10:19 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 9.29,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T14:10:19 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 9.01,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T14:10:17 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 13.02,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T14:09:56 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 16.9,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T14:09:54 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 31.99,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:39:17 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 11.25,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:39:15 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.37,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:39:03 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 16.09,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:38:13 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 6.36,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T13:38:12 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 5.74,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T13:38:12 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 13.82,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T13:37:47 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 7.43,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T13:37:42 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 9.19,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T13:37:22 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 9.6,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T13:37:19 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 11.77,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T13:37:05 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 11.24,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T13:19:45 http request GET /c/test/ai/jobs/20260429-131539-0f83d6af/events -> 200
{
  "company_id": "test",
  "duration_ms": 4.93,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:19:45 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 9.69,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T13:19:45 http request GET /c/test/ai/jobs/20260429-131539-0f83d6af -> 200
{
  "company_id": "test",
  "duration_ms": 26.04,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:19:45 http request POST /c/test/ai/jobs/20260429-131539-0f83d6af/approve -> 302
{
  "company_id": "test",
  "duration_ms": 10.71,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T13:19:45 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 1,
  "job_id": "20260429-131539-0f83d6af"
}
2026-04-29T13:18:00 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 1,
  "job_id": "20260429-131539-0f83d6af",
  "status": "pending_approval"
}
2026-04-29T13:18:00 ai_console job_finished Job Codex completato
{
  "changed_files": 1,
  "exit_code": 0,
  "job_id": "20260429-131539-0f83d6af",
  "status": "pending_approval"
}
2026-04-29T13:17:54 http request POST /c/test/ai/log-mode -> 200
{
  "company_id": "test",
  "duration_ms": 6.65,
  "endpoint": "ai_log_mode",
  "status_code": 200
}
2026-04-29T13:17:54 ai_console log_mode_update Modalita' log aggiornata
{
  "mode": "readable"
}
2026-04-29T13:17:52 http request POST /c/test/ai/log-mode -> 200
{
  "company_id": "test",
  "duration_ms": 7.4,
  "endpoint": "ai_log_mode",
  "status_code": 200
}
2026-04-29T13:17:52 ai_console log_mode_update Modalita' log aggiornata
{
  "mode": "debug"
}
2026-04-29T13:15:39 http request GET /c/test/ai/jobs/20260429-131539-0f83d6af/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.67,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:15:39 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.76,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T13:15:39 http request GET /c/test/ai/jobs/20260429-131539-0f83d6af -> 200
{
  "company_id": "test",
  "duration_ms": 24.57,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:15:39 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-131539-0f83d6af"
}
2026-04-29T13:15:39 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.39,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T13:15:39 ai_console job_created Job Codex creato
{
  "job_id": "20260429-131539-0f83d6af",
  "preset_id": "daily_post",
  "uploads": 0
}
2026-04-29T13:15:26 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.23,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:15:18 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 15.18,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T13:15:06 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.13,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:15:04 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.2,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:13:25 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 37.02,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T13:13:20 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.0,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:13:12 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 15.49,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:13:10 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.36,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:13:10 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c -> 200
{
  "company_id": "test",
  "duration_ms": 18.45,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:13:10 http request POST /c/test/ai/jobs/20260429-130703-f62ab01c/approve -> 302
{
  "company_id": "test",
  "duration_ms": 12.55,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T13:13:10 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 5,
  "job_id": "20260429-130703-f62ab01c"
}
2026-04-29T13:12:50 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 5,
  "job_id": "20260429-130703-f62ab01c",
  "status": "pending_approval"
}
2026-04-29T13:12:50 ai_console job_finished Job Codex completato
{
  "changed_files": 5,
  "exit_code": 0,
  "job_id": "20260429-130703-f62ab01c",
  "status": "pending_approval"
}
2026-04-29T13:07:15 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.58,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:07:15 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c -> 200
{
  "company_id": "test",
  "duration_ms": 10.18,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:07:05 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.79,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:07:05 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 9.82,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T13:07:03 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.16,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:07:03 http request GET /c/test/ai/jobs/20260429-130703-f62ab01c -> 200
{
  "company_id": "test",
  "duration_ms": 29.06,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:07:03 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-130703-f62ab01c"
}
2026-04-29T13:07:03 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 12.59,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T13:07:03 ai_console job_created Job Codex creato
{
  "job_id": "20260429-130703-f62ab01c",
  "preset_id": "instruct",
  "uploads": 0
}
2026-04-29T13:06:42 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.12,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:06:41 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 18.06,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T13:06:40 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 30.57,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:04:25 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.23,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:04:25 http request POST /c/test/ai/jobs/20260429-124147-f8d831ca/delete -> 302
{
  "company_id": "test",
  "duration_ms": 11.15,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T13:04:25 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-124147-f8d831ca"
}
2026-04-29T13:04:21 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.67,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:04:21 http request POST /c/test/ai/jobs/20260429-124041-f37b90af/delete -> 302
{
  "company_id": "test",
  "duration_ms": 13.07,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T13:04:21 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-124041-f37b90af"
}
2026-04-29T13:04:16 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.17,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:04:16 http request POST /c/test/ai/jobs/20260429-124243-ec9c600e/delete -> 302
{
  "company_id": "test",
  "duration_ms": 9.06,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T13:04:16 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-124243-ec9c600e"
}
2026-04-29T13:03:55 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.96,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:03:44 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.64,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:03:42 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.24,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:03:39 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.45,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:03:34 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.38,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:03:34 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52 -> 200
{
  "company_id": "test",
  "duration_ms": 17.69,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:03:34 http request POST /c/test/ai/jobs/20260429-125945-8d29cd52/approve -> 302
{
  "company_id": "test",
  "duration_ms": 13.4,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T13:03:34 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 6,
  "job_id": "20260429-125945-8d29cd52"
}
2026-04-29T13:03:16 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.63,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T13:03:16 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52 -> 200
{
  "company_id": "test",
  "duration_ms": 18.19,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T13:03:11 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.53,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:03:11 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 11.02,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T13:03:09 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.62,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:03:00 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.18,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:02:56 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.99,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T13:02:50 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.96,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T13:02:41 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 6,
  "job_id": "20260429-125945-8d29cd52",
  "status": "pending_approval"
}
2026-04-29T13:02:41 ai_console job_finished Job Codex completato
{
  "changed_files": 6,
  "exit_code": 0,
  "job_id": "20260429-125945-8d29cd52",
  "status": "pending_approval"
}
2026-04-29T13:02:23 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.44,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T13:02:21 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 7.24,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T13:02:21 http request POST /c/test/memory -> 302
{
  "company_id": "test",
  "duration_ms": 6.55,
  "endpoint": "memory",
  "status_code": 302
}
2026-04-29T13:02:21 memory save Memoria salvata
{}
2026-04-29T13:02:00 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 9.62,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T12:59:45 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.41,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:59:45 http request GET /c/test/ai/jobs/20260429-125945-8d29cd52 -> 200
{
  "company_id": "test",
  "duration_ms": 13.84,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:59:45 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-125945-8d29cd52"
}
2026-04-29T12:59:45 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 11.89,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:59:45 ai_console job_created Job Codex creato
{
  "job_id": "20260429-125945-8d29cd52",
  "preset_id": "instruct",
  "uploads": 0
}
2026-04-29T12:59:23 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 17.46,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:59:21 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.93,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:58:16 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 13.18,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T12:58:10 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.7,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:58:09 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 11.07,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:57 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 37.89,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T12:57:54 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.44,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:53 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.66,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:51 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.67,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:50 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.96,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:49 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.28,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:48 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 15.68,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:57:45 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 16.8,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:57:41 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d/events -> 200
{
  "company_id": "test",
  "duration_ms": 2.93,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:57:41 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d -> 200
{
  "company_id": "test",
  "duration_ms": 45.42,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:56:45 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.66,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:56:45 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d -> 200
{
  "company_id": "test",
  "duration_ms": 16.56,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:56:45 http request POST /c/test/ai/jobs/20260429-125202-0fc27f7d/approve -> 302
{
  "company_id": "test",
  "duration_ms": 13.83,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T12:56:45 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 9,
  "job_id": "20260429-125202-0fc27f7d"
}
2026-04-29T12:56:40 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 9,
  "job_id": "20260429-125202-0fc27f7d",
  "status": "pending_approval"
}
2026-04-29T12:56:40 ai_console job_finished Job Codex completato
{
  "changed_files": 9,
  "exit_code": 0,
  "job_id": "20260429-125202-0fc27f7d",
  "status": "pending_approval"
}
2026-04-29T12:52:02 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.76,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:52:02 http request GET /c/test/ai/jobs/20260429-125202-0fc27f7d -> 200
{
  "company_id": "test",
  "duration_ms": 28.53,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:52:02 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-125202-0fc27f7d"
}
2026-04-29T12:52:02 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 30.27,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:52:02 ai_console job_created Job Codex creato
{
  "job_id": "20260429-125202-0fc27f7d",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:50:57 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 12.81,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:50:57 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-124243-ec9c600e"
}
2026-04-29T12:50:55 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.77,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:45:43 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.44,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:42:43 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 20.77,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:42:43 ai_console job_created Job Codex creato
{
  "job_id": "20260429-124243-ec9c600e",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:42:43 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-124147-f8d831ca"
}
2026-04-29T12:41:47 http request POST /c/test/ai -> 500
{
  "company_id": "test",
  "duration_ms": 33.1,
  "endpoint": "ai_console",
  "status_code": 500
}
2026-04-29T12:41:47 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-124147-f8d831ca"
}
2026-04-29T12:41:47 ai_console job_created Job Codex creato
{
  "job_id": "20260429-124147-f8d831ca",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:41:47 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-124041-f37b90af"
}
2026-04-29T12:40:41 http request POST /c/test/ai -> 500
{
  "company_id": "test",
  "duration_ms": 39.26,
  "endpoint": "ai_console",
  "status_code": 500
}
2026-04-29T12:40:41 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-124041-f37b90af"
}
2026-04-29T12:40:41 ai_console job_created Job Codex creato
{
  "job_id": "20260429-124041-f37b90af",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:40:06 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 26.14,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:40:05 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 18.18,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:40:01 http request GET /c/test/ai/jobs/20260429-123649-3b7780df/events -> 200
{
  "company_id": "test",
  "duration_ms": 4.06,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:40:01 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 120.98,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:40:01 http request GET /c/test/ai/jobs/20260429-123649-3b7780df -> 200
{
  "company_id": "test",
  "duration_ms": 55.41,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:39:39 http request GET /c/test/ai/jobs/20260429-123649-3b7780df -> 200
{
  "company_id": "test",
  "duration_ms": 54.25,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:37:33 http request GET /c/test/ai/jobs/20260429-123649-3b7780df/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.49,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:37:33 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 134.84,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:37:33 http request GET /c/test/ai/jobs/20260429-123649-3b7780df -> 200
{
  "company_id": "test",
  "duration_ms": 57.61,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:37:24 ai_console job_finished Job Codex completato
{
  "changed_files": 0,
  "exit_code": 1,
  "job_id": "20260429-123649-3b7780df",
  "status": "cancelled"
}
2026-04-29T12:37:19 http request GET /c/test/ai/jobs/20260429-123649-3b7780df/events -> 200
{
  "company_id": "test",
  "duration_ms": 7.64,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:37:19 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.19,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:37:19 http request GET /c/test/ai/jobs/20260429-123649-3b7780df -> 200
{
  "company_id": "test",
  "duration_ms": 11.88,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:37:19 http request POST /c/test/ai/jobs/20260429-123649-3b7780df/cancel -> 302
{
  "company_id": "test",
  "duration_ms": 7.7,
  "endpoint": "ai_job_cancel",
  "status_code": 302
}
2026-04-29T12:37:19 ai_console job_cancelled Job AI interrotto manualmente
{
  "job_id": "20260429-123649-3b7780df",
  "live_process": true
}
2026-04-29T12:36:49 http request GET /c/test/ai/jobs/20260429-123649-3b7780df/events -> 200
{
  "company_id": "test",
  "duration_ms": 7.99,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:36:49 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.87,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:36:49 http request GET /c/test/ai/jobs/20260429-123649-3b7780df -> 200
{
  "company_id": "test",
  "duration_ms": 23.72,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:36:49 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 11.3,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:36:49 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-123649-3b7780df"
}
2026-04-29T12:36:49 ai_console job_created Job Codex creato
{
  "job_id": "20260429-123649-3b7780df",
  "preset_id": "daily_post",
  "uploads": 0
}
2026-04-29T12:36:38 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.83,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:36:25 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 11.08,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T12:36:22 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.68,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:36:21 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.24,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:36:20 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.21,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:36:16 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 10.62,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T12:36:12 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.29,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:58 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 13.1,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T12:35:55 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.19,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:54 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 6.68,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:51 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.94,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:48 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.72,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:45 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.56,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:40 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.81,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:37 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 35.45,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T12:35:35 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.51,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:29 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 15.9,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:35:27 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 6.56,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:35:27 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 14.45,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T12:35:24 http request GET /c/test/ai/jobs/20260429-123134-7781118a/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.17,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:35:24 http request GET /c/test/ai/jobs/20260429-123134-7781118a -> 200
{
  "company_id": "test",
  "duration_ms": 16.12,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:35:24 http request POST /c/test/ai/jobs/20260429-123134-7781118a/approve -> 302
{
  "company_id": "test",
  "duration_ms": 14.37,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T12:35:24 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 9,
  "job_id": "20260429-123134-7781118a"
}
2026-04-29T12:35:08 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 9,
  "job_id": "20260429-123134-7781118a",
  "status": "pending_approval"
}
2026-04-29T12:35:08 ai_console job_finished Job Codex completato
{
  "changed_files": 9,
  "exit_code": 0,
  "job_id": "20260429-123134-7781118a",
  "status": "pending_approval"
}
2026-04-29T12:31:34 http request GET /c/test/ai/jobs/20260429-123134-7781118a/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.36,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:31:34 http request GET /c/test/ai/jobs/20260429-123134-7781118a -> 200
{
  "company_id": "test",
  "duration_ms": 12.28,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:31:34 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 29.66,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:31:34 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-123134-7781118a"
}
2026-04-29T12:31:34 ai_console job_created Job Codex creato
{
  "job_id": "20260429-123134-7781118a",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:30:52 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.85,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:30:52 http request POST /c/test/ai/jobs/20260429-113304-ac9018af/delete -> 302
{
  "company_id": "test",
  "duration_ms": 11.35,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T12:30:52 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-113304-ac9018af"
}
2026-04-29T12:30:48 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.77,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:30:48 http request POST /c/test/ai/jobs/20260429-121737-2b6be731/delete -> 302
{
  "company_id": "test",
  "duration_ms": 12.38,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T12:30:48 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-121737-2b6be731"
}
2026-04-29T12:30:46 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.47,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:30:46 http request POST /c/test/ai/jobs/20260429-121847-7b0b8b20/delete -> 302
{
  "company_id": "test",
  "duration_ms": 8.47,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T12:30:46 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-121847-7b0b8b20"
}
2026-04-29T12:30:42 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.0,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:30:42 http request POST /c/test/ai/jobs/20260429-121847-0fc58209/delete -> 302
{
  "company_id": "test",
  "duration_ms": 7.68,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T12:30:42 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-121847-0fc58209"
}
2026-04-29T12:30:39 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 16.73,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:30:39 http request POST /c/test/ai/jobs/20260429-122247-e01af137/delete -> 302
{
  "company_id": "test",
  "duration_ms": 12.48,
  "endpoint": "ai_job_delete",
  "status_code": 302
}
2026-04-29T12:30:39 ai_console job_deleted Job AI eliminato
{
  "job_id": "20260429-122247-e01af137"
}
2026-04-29T12:30:32 http request GET /c/test/ai/jobs/20260429-122247-e01af137/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.12,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:30:32 http request GET /c/test/ai/jobs/20260429-122247-e01af137 -> 200
{
  "company_id": "test",
  "duration_ms": 43.28,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:26:14 ai_console job_finished Job Codex completato
{
  "changed_files": 10,
  "exit_code": 0,
  "job_id": "20260429-122247-e01af137",
  "status": "pending_approval"
}
2026-04-29T12:24:57 http request GET /c/test/ai/jobs/20260429-121737-2b6be731 -> 200
{
  "company_id": "test",
  "duration_ms": 39.86,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:24:57 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-122247-e01af137"
}
2026-04-29T12:22:47 http request GET /c/test/ai/jobs/20260429-122247-e01af137/events -> 200
{
  "company_id": "test",
  "duration_ms": 2.83,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T12:22:47 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 10.42,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:22:47 http request GET /c/test/ai/jobs/20260429-122247-e01af137 -> 200
{
  "company_id": "test",
  "duration_ms": 38.62,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T12:22:47 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 26.99,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:22:47 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-122247-e01af137"
}
2026-04-29T12:22:47 ai_console job_created Job Codex creato
{
  "job_id": "20260429-122247-e01af137",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:21:57 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 16.26,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:21:53 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 14.53,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:21:52 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.11,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:21:48 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.19,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:21:45 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 28.28,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:21:36 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.27,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:21:32 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 32.88,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:21:32 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-121847-7b0b8b20"
}
2026-04-29T12:18:47 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 18.22,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:18:47 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 14.5,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T12:18:47 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-121847-7b0b8b20"
}
2026-04-29T12:18:47 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-121847-7b0b8b20"
}
2026-04-29T12:18:47 ai_console job_created Job Codex creato
{
  "job_id": "20260429-121847-7b0b8b20",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:18:47 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-121847-0fc58209"
}
2026-04-29T12:18:47 ai_console job_created Job Codex creato
{
  "job_id": "20260429-121847-0fc58209",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:18:47 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-121737-2b6be731"
}
2026-04-29T12:18:47 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-121737-2b6be731"
}
2026-04-29T12:17:37 http request POST /c/test/ai -> 500
{
  "company_id": "test",
  "duration_ms": 40.12,
  "endpoint": "ai_console",
  "status_code": 500
}
2026-04-29T12:17:37 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-121737-2b6be731"
}
2026-04-29T12:17:37 ai_console job_created Job Codex creato
{
  "job_id": "20260429-121737-2b6be731",
  "preset_id": "instruct",
  "uploads": 1
}
2026-04-29T12:17:04 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.69,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T12:17:02 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 15.15,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:17:01 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 17.17,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:09:03 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 304
{
  "company_id": "test",
  "duration_ms": 7.24,
  "endpoint": "asset_file",
  "status_code": 304
}
2026-04-29T12:09:03 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 14.77,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T12:09:02 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 11.41,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T12:09:01 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 11.15,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:09:00 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.23,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:08:58 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 16.35,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T12:06:10 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.12,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:06:08 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 6.78,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:06:08 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.08,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:06:03 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.63,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:06:02 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.62,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:06:01 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.29,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:06:00 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.69,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:05:58 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.22,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:05:57 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.58,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:05:56 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 7.87,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:05:54 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 22.96,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T12:00:10 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 15.26,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T11:59:58 http request GET /c/test/asset/06-assets/ider_logo_-_Copia.png -> 200
{
  "company_id": "test",
  "duration_ms": 10.9,
  "endpoint": "asset_file",
  "status_code": 200
}
2026-04-29T11:59:58 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 7.08,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T11:59:58 http request POST /c/test/assets -> 302
{
  "company_id": "test",
  "duration_ms": 8.45,
  "endpoint": "asset_upload",
  "status_code": 302
}
2026-04-29T11:59:58 assets upload Asset caricato
{
  "category": "logo",
  "path": "06-assets/ider_logo_-_Copia.png"
}
2026-04-29T11:59:05 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 13.9,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T11:58:59 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 11.44,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T11:58:54 http request GET /c/test/metrics -> 200
{
  "company_id": "test",
  "duration_ms": 18.64,
  "endpoint": "metrics",
  "status_code": 200
}
2026-04-29T11:58:54 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 7.75,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T11:58:48 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 11.27,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T11:58:45 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 9.7,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:58:40 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 6.46,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T11:58:40 http request POST /c/test/settings -> 302
{
  "company_id": "test",
  "duration_ms": 8.58,
  "endpoint": "settings",
  "status_code": 302
}
2026-04-29T11:58:40 settings update Impostazioni azienda aggiornate
{}
2026-04-29T11:58:15 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 9.67,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T11:58:14 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.48,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:57:58 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.77,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:57:54 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 16.76,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:57:39 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 27.01,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:56:00 ai_console job_interrupted Job AI segnato come interrotto dopo riavvio o processo mancante
{
  "job_id": "20260429-113304-ac9018af"
}
2026-04-29T11:53:29 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 31.01,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:53:18 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.45,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:53:15 http request GET /c/test/ai/jobs/20260429-113304-ac9018af/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.28,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T11:53:14 http request GET /c/test/ai/jobs/20260429-113304-ac9018af -> 200
{
  "company_id": "test",
  "duration_ms": 10.38,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T11:52:56 http request GET /c/test/ai/jobs/20260429-113304-ac9018af/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.22,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T11:52:56 http request GET /c/test/ai/jobs/20260429-113304-ac9018af -> 200
{
  "company_id": "test",
  "duration_ms": 32.87,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T11:52:54 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 9.09,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:52:52 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 10.32,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:33:26 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.29,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:33:21 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 27.17,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:33:04 http request POST /c/test/ai -> 500
{
  "company_id": "test",
  "duration_ms": 22.0,
  "endpoint": "ai_console",
  "status_code": 500
}
2026-04-29T11:33:04 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-113304-ac9018af"
}
2026-04-29T11:33:04 ai_console job_created Job Codex creato
{
  "job_id": "20260429-113304-ac9018af",
  "preset_id": "instruct",
  "uploads": 0
}
2026-04-29T11:31:44 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 8.23,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:31:42 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 6.75,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T11:31:25 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 8.88,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T11:31:22 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 10.01,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T11:31:19 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 9.78,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T11:31:05 http request GET /c/test/file -> 200
{
  "company_id": "test",
  "duration_ms": 8.32,
  "endpoint": "file_edit",
  "status_code": 200
}
2026-04-29T11:31:01 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 9.74,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T11:29:58 http request GET /c/test/ai/jobs/20260429-112718-ea48cace/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.36,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T11:29:58 http request GET /c/test/ai/jobs/20260429-112718-ea48cace -> 200
{
  "company_id": "test",
  "duration_ms": 16.25,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T11:29:58 http request POST /c/test/ai/jobs/20260429-112718-ea48cace/approve -> 302
{
  "company_id": "test",
  "duration_ms": 14.22,
  "endpoint": "ai_job_approve",
  "status_code": 302
}
2026-04-29T11:29:58 ai_console job_approved Modifiche AI applicate ai file reali
{
  "changed_files": 9,
  "job_id": "20260429-112718-ea48cace"
}
2026-04-29T11:29:49 ai_console job_recovered Job AI completato recuperato da workspace
{
  "changed_files": 9,
  "job_id": "20260429-112718-ea48cace",
  "status": "pending_approval"
}
2026-04-29T11:29:49 ai_console job_finished Job Codex completato
{
  "changed_files": 9,
  "exit_code": 0,
  "job_id": "20260429-112718-ea48cace",
  "status": "pending_approval"
}
2026-04-29T11:27:18 http request GET /c/test/ai/jobs/20260429-112718-ea48cace/events -> 200
{
  "company_id": "test",
  "duration_ms": 3.92,
  "endpoint": "ai_job_events",
  "status_code": 200
}
2026-04-29T11:27:18 http request GET /c/test/ai/jobs/20260429-112718-ea48cace -> 200
{
  "company_id": "test",
  "duration_ms": 39.47,
  "endpoint": "ai_job",
  "status_code": 200
}
2026-04-29T11:27:18 http request POST /c/test/ai -> 302
{
  "company_id": "test",
  "duration_ms": 10.86,
  "endpoint": "ai_console",
  "status_code": 302
}
2026-04-29T11:27:18 ai_console job_started Job Codex avviato
{
  "job_id": "20260429-112718-ea48cace"
}
2026-04-29T11:27:18 ai_console job_created Job Codex creato
{
  "job_id": "20260429-112718-ea48cace",
  "preset_id": "instruct",
  "uploads": 0
}
2026-04-29T11:25:39 http request GET /c/test/ai -> 200
{
  "company_id": "test",
  "duration_ms": 10.33,
  "endpoint": "ai_console",
  "status_code": 200
}
2026-04-29T11:25:38 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.36,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T11:25:36 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 8.26,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:25:21 http request GET /c/test/settings -> 200
{
  "company_id": "test",
  "duration_ms": 9.18,
  "endpoint": "settings",
  "status_code": 200
}
2026-04-29T11:25:21 http request GET /c/test/logs -> 200
{
  "company_id": "test",
  "duration_ms": 9.51,
  "endpoint": "logs",
  "status_code": 200
}
2026-04-29T11:25:20 http request GET /c/test/memory -> 200
{
  "company_id": "test",
  "duration_ms": 9.61,
  "endpoint": "memory",
  "status_code": 200
}
2026-04-29T11:25:20 http request GET /c/test/metrics -> 200
{
  "company_id": "test",
  "duration_ms": 9.85,
  "endpoint": "metrics",
  "status_code": 200
}
2026-04-29T11:25:19 http request GET /c/test/channels -> 200
{
  "company_id": "test",
  "duration_ms": 9.1,
  "endpoint": "channels",
  "status_code": 200
}
2026-04-29T11:25:19 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 6.5,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T11:25:18 http request GET /c/test/assets -> 200
{
  "company_id": "test",
  "duration_ms": 13.79,
  "endpoint": "assets",
  "status_code": 200
}
2026-04-29T11:25:14 http request GET /c/test/library -> 200
{
  "company_id": "test",
  "duration_ms": 8.24,
  "endpoint": "library",
  "status_code": 200
}
2026-04-29T11:25:11 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 7.65,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:25:06 http request GET /c/test -> 200
{
  "company_id": "test",
  "duration_ms": 8.01,
  "endpoint": "company_dashboard",
  "status_code": 200
}
2026-04-29T11:25:06 companies create Azienda creata
{}