趨勢需累積更多歷史資料
HOMI OPC 營運總台
外部寫入維持封鎖,所有高風險操作仍需 Zachary 明確批准。
Production Readiness
HOMI 系統健康中心
System Health Center + Production Smoke Suite
服務狀態、數據管道、外部平台連接、已知阻塞與最近執行紀錄的只讀總覽。這頁用來快速判斷 HOMI BrandOps 是否可安全繼續運行。
系統總覽
目前最重要的安全狀態與最新數據日期。
趨勢需累積更多歷史資料
趨勢需累積更多歷史資料
趨勢需累積更多歷史資料
趨勢需累積更多歷史資料
服務狀態
核心服務 readiness。Scheduler/worker 目前以可見資料推導,不假裝有 heartbeat。
Backend API
okAPI is serving /system/health-report.
Postgres
okDatabase query succeeded.
Redis
okRedis ping status from backend container.
Scheduler
configuredScheduler service is configured; no heartbeat table exists yet.
Worker Dispatcher
warningWorker dispatcher latest job is visible in the local queue.
OPC Dashboard
okThis page rendered from the dashboard service.
數據管道
Daily Ads Report、Ads Intelligence、審批與執行佇列的最新狀態。
最新資料
- Daily Ads Report2026-05-28
- Ads Intelligence2026-05-23
- 最新 approved write jobfailed
最近 24 小時紀錄
- audit_logs0
- error_logs0
- scheduled digest未啟用
安全邊界
- DRY_RUNtrue
- Meta/Google Ads只讀監控
- Approved external writenot enabled
外部平台連接
目前 live、read-only、scaffold/not live 的 integration 狀態。
Discord
livecommand/input layer
GitHub
liveissues, PRs, rules
Meta Ads
blockedMeta Marketing API access blocked; read-only credentials exist but API access needs repair.
Google Ads
read_onlyRead-only campaign data is available.
Daily Ads Report
livelocal reporting
Ads Intelligence
live_structuralread_only analytics
client_report_center
liveclient-facing read-only reports
data_quality_layer
liveplain-language source quality labels
llm_analysis_runtime
disabledread_only advisory analysis
per_ad_ab_test_view
liveread_only ad-level comparison
Approval Gate
livelocal approval
Worker Dispatcher
livelocal executor queue
WordPress
scaffold/not_livenot enabled
Facebook/IG
scaffold/not_livenot enabled
Search Console
scaffold/not_livenot enabled
GA4
scaffold/not_livenot enabled
not enabled
已知阻塞
這些是可接受但需要被看見的限制,不會阻塞 dashboard 讀取。
meta_marketing_api_access_blocked
Meta Marketing API access blocked; ad-level intelligence rows remain empty until Business/App access is fixed.
llm_analysis_disabled
LLM_ANALYSIS_ENABLED=false; GPT-5.5 analysis is disabled and rule_based fallback is used.
ads_digest_disabled
ADS_DIGEST_ENABLED=false; scheduled Discord digest is disabled by default.
最近錯誤
來自 error_logs 的最新安全摘要,不顯示任何 token 或密鑰。
worker · error
executor is not enabled: unsupported.executor.smoke
2026-05-23T15:39:28.466314+00:00
最近審批與執行
Approval Gate / Worker Dispatcher 的近期狀態。
- internal · unsupported.executor.smoke 已失敗
- internal · test.noop 已完成
建議下一步
讓 Zachary 不需要讀 log 也能知道下一個最務實的動作。
- Repair Meta Marketing API access before expecting ad-level intelligence rows.
- Keep ADS_DIGEST_ENABLED=false until Zachary explicitly enables scheduled Discord digest.
- Use this health report and the production smoke suite before and after future deploys.
Raw Health Report
{
"dry_run": true,
"environment": "production",
"generated_at": "2026-07-21T01:28:42.737356+00:00",
"project": {
"id": "d103485b-57f7-4d2a-aef1-3cfc4b54feb2",
"slug": "homi",
"name": "HOMI",
"status": "active"
},
"backend": {
"status": "ok",
"service": "homi-backend-api",
"version": "1.0.0"
},
"database": {
"status": "ok"
},
"redis": {
"status": "ok"
},
"scheduler": {
"status": "configured",
"message": "Scheduler service is configured; no heartbeat table exists yet.",
"ads_digest_enabled": false
},
"llm_analysis": {
"enabled": false,
"provider": "openai",
"model": "gpt-5.5",
"status": "disabled",
"timeout_seconds": 30,
"max_input_chars": 12000,
"max_output_chars": 3000,
"external_write": false,
"message": "LLM_ANALYSIS_ENABLED=false; GPT-5.5 analysis is disabled and rule_based fallback is used."
},
"worker": {
"status": "warning",
"latest_job_status": "failed",
"message": "Worker dispatcher latest job is visible in the local queue."
},
"latest_daily_ads_report_date": "2026-05-28",
"latest_intelligence_report_date": "2026-05-23",
"latest_approved_write_job_status": "failed",
"latest_error_log_count": 0,
"latest_audit_log_count": 0,
"latest": {
"daily_ads_report_date": "2026-05-28",
"intelligence_report_date": "2026-05-23",
"approved_write_job": {
"id": "480df64e-450f-4193-9e64-9c470c30830b",
"status": "failed",
"executor_name": "unsupported.executor.smoke",
"platform": "internal",
"action": "unsupported.executor.smoke",
"created_at": "2026-05-23T15:39:19.485246+00:00",
"executed_at": "2026-05-23T15:39:28.465223+00:00"
}
},
"counts": {
"error_logs_24h": 0,
"audit_logs_24h": 0
},
"recent_errors": [
{
"service": "worker",
"severity": "error",
"message": "executor is not enabled: unsupported.executor.smoke",
"created_at": "2026-05-23T15:39:28.466314+00:00"
}
],
"recent_approvals_and_jobs": [
{
"id": "480df64e-450f-4193-9e64-9c470c30830b",
"status": "failed",
"executor_name": "unsupported.executor.smoke",
"platform": "internal",
"action": "unsupported.executor.smoke",
"approval_decision": "approved",
"created_at": "2026-05-23T15:39:19.485246+00:00",
"executed_at": "2026-05-23T15:39:28.465223+00:00"
},
{
"id": "0bd1efcd-5b6a-4306-97bf-73cc4025ad7e",
"status": "succeeded",
"executor_name": "test.noop",
"platform": "internal",
"action": "test.noop",
"approval_decision": "approved",
"created_at": "2026-05-23T15:38:32.407378+00:00",
"executed_at": "2026-05-23T15:38:41.344607+00:00"
}
],
"integration_status": {
"Discord": {
"status": "live",
"mode": "command/input layer"
},
"GitHub": {
"status": "live",
"mode": "issues, PRs, rules"
},
"Meta Ads": {
"status": "blocked",
"mode": "read_only",
"configured": true,
"message": "Meta Marketing API access blocked; read-only credentials exist but API access needs repair."
},
"Google Ads": {
"status": "read_only",
"mode": "read_only",
"configured": true,
"message": "Read-only campaign data is available."
},
"Daily Ads Report": {
"status": "live",
"mode": "local reporting"
},
"Ads Intelligence": {
"status": "live_structural",
"mode": "read_only analytics"
},
"client_report_center": {
"status": "live",
"mode": "client-facing read-only reports"
},
"data_quality_layer": {
"status": "live",
"mode": "plain-language source quality labels"
},
"llm_analysis_runtime": {
"status": "disabled",
"mode": "read_only advisory analysis"
},
"per_ad_ab_test_view": {
"status": "live",
"mode": "read_only ad-level comparison"
},
"Approval Gate": {
"status": "live",
"mode": "local approval"
},
"Worker Dispatcher": {
"status": "live",
"mode": "local executor queue"
},
"WordPress": {
"status": "scaffold/not_live",
"mode": "not enabled"
},
"Facebook/IG": {
"status": "scaffold/not_live",
"mode": "not enabled"
},
"Search Console": {
"status": "scaffold/not_live",
"mode": "not enabled"
},
"GA4": {
"status": "scaffold/not_live",
"mode": "not enabled"
},
"WhatsApp": {
"status": "scaffold/not_live",
"mode": "not enabled"
}
},
"known_blockers": [
{
"code": "meta_marketing_api_access_blocked",
"status": "blocked",
"message": "Meta Marketing API access blocked; ad-level intelligence rows remain empty until Business/App access is fixed."
},
{
"code": "llm_analysis_disabled",
"status": "disabled",
"message": "LLM_ANALYSIS_ENABLED=false; GPT-5.5 analysis is disabled and rule_based fallback is used."
},
{
"code": "ads_digest_disabled",
"status": "disabled",
"message": "ADS_DIGEST_ENABLED=false; scheduled Discord digest is disabled by default."
}
],
"recommended_next_steps": [
"Repair Meta Marketing API access before expecting ad-level intelligence rows.",
"Keep ADS_DIGEST_ENABLED=false until Zachary explicitly enables scheduled Discord digest.",
"Use this health report and the production smoke suite before and after future deploys."
]
}