{"version":"1.0","since":"2026-06-27T22:17:36.417250+00:00","count":11,"events":[{"kind":"feature_shipped","at":"2026-07-27 04:35:23","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-25 04:34:31","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-23 04:33:24","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-20 04:34:59","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-18 04:32:38","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-16 04:30:54","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-12 04:32:25","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-10 04:33:27","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-07-08 21:10:50","key":"data_freshness_all_live","service":"empty_container_sentinel","severity":"info","summary":"All 4 public data modules fresh within limits. Organism alive."},{"kind":"feature_shipped","at":"2026-06-30 11:09:06","key":"materials_page_live","service":"suppliers","severity":"medium","summary":"Built visible cabinet PAGE /cabinet/materials (Stage 5 UI) server-rendered on 3001 (no npm build), appended to cabinet_reports.py via register_materials_page_routes. Mobile-first, 9 languages (_MAT_I18N), ar=RTL, honest Stage-11 UI texts (not seller "},{"kind":"feature_shipped","at":"2026-06-30 10:45:54","key":"materials_match_flow_live","service":"suppliers","severity":"high","summary":"Built Stage 5/6 of Supplier Ordering Layer as REAL working backend, extending cabinet_reports.py (no parallel app/modules/suppliers, no duplication). New: material_request + material_request_item tables (economy.db, cabinet-keyed); endpoints POST /ap"}],"computed_at":"2026-07-27T22:17:36.521479+00:00","polling_recommendation":"every 24h with ?since=<iso>","agent_card":"https://astranl.com/.well-known/agent.json"}