Runtime
Service posture
Installed: yes
Scope: system
Status command: systemctl status luma.service
Logs: journalctl -u luma.service -f
Manual start: luma daemon
Luma Operator Control Plane
This page is served by the live gateway process on this host. It reflects the current profile, current service posture, and the only supported connect paths in this wave: Telegram and webhook ingress.
Runtime
Installed: yes
Scope: system
Status command: systemctl status luma.service
Logs: journalctl -u luma.service -f
Manual start: luma daemon
Profile
Profile root: /home/claw/.luma
Config: /home/claw/.luma/config.toml
Secrets: /home/claw/.luma/secrets.toml
Workspace: /home/claw/.luma/workspace
Ready marker: yes
Webhook
Bind: 127.0.0.1:8787
Exposure: public_tunnel
Auth: bearer
Generic: http://127.0.0.1:8787/webhook
Nextcloud Talk: http://127.0.0.1:8787/nextcloud-talk
Tunnel: tailscale_funnel (listen Some("443"), hostname None, domain None)
Provider
Route: default
Provider: Local OpenAI-compatible
Model: gpt-5.4
Base URL: https://api.ikuncode.cc/v1
Support: Production-supported providers in this wave: OpenAI, Anthropic, and local OpenAI-compatible endpoints.
Health: error: openai backend error: OpenAI responses provider rejected request (status=401 Unauthorized, request-mode=sse, content-type=application/json; charset=utf-8, content-encoding=<unknown>, transfer-encoding=<unknown>): Invalid token (request id: 202606272059163760519128268d9d6afalkvim)
verify the default LLM provider credentials, model name, base URL, and outbound network access
Telegram
Configured: yes
Mode: bot
Status: ready
Auth state: authorizationStateReady
Session dir: /home/claw/.luma/state/tdlib
Send a Telegram message from an allowed handle to confirm the live route.
Companion
Mode: local_managed_stack
Status: healthy or ready for cutover
Use `luma companion prepare-graphiti --start` and rerun doctor until the managed stack is healthy.
Telemetry
Active root tasks: 0
Recorded LLM calls: 2654
Tokens in/out/total: 5295233/728201/6023434
Last trace: c585e9b0-5a73-4270-8fda-f5a5d03afdd3
Last request id: n/a
Degraded memory visible: no
Readiness
Required failures: 1
Overall: blocked
Refresh http://127.0.0.1:8787/operator/status for JSON or rerun luma doctor for the full CLI report.
Connect checklist
Telegram
mode=bot session_dir=/home/claw/.luma/state/tdlib
Webhook
Listener is live, but no webhook traffic has reached this gateway yet. POST JSON to http://127.0.0.1:8787/webhook (Nextcloud Talk: http://127.0.0.1:8787/nextcloud-talk); auth=bearer. Listener=listening timeout/failure counts=0/0.
Checks
| Check | Status | Result | Next step |
|---|---|---|---|
| workspace | PASS | ok | — |
| ready_marker | PASS | ready marker matches this profile | — |
| owner_binding | PASS | owner binding is healthy for Telegram user 56483202 | — |
| llm | FAIL | error: openai backend error: OpenAI responses provider rejected request (status=401 Unauthorized, request-mode=sse, content-type=application/json; charset=utf-8, content-encoding=<unknown>, transfer-encoding=<unknown>): Invalid token (request id: 202606272059163760519128268d9d6afalkvim) | verify the default LLM provider credentials, model name, base URL, and outbound network access |
| llm_memory_route | PASS | background memory/reflection use explicit llm route [memory_writer_default -> memory_writer_json_fallback] | — |
| llm_responses_transport | WARN | custom OpenAI-compatible gateway routes explicitly use SSE-first transport: default (https://api.ikuncode.cc/v1), final_synthesis_default (https://api.ikuncode.cc/v1), memory_writer_default (https://api.ikuncode.cc/v1) | set llm.providers.<route>.responses_transport = "json" or "auto" unless the gateway is known to support stable Responses SSE |
| llm_tool_budget | PASS | configured single-turn tool budget = 50 | — |
| llm_vision | FAIL | error: openai backend error: OpenAI responses provider rejected request (status=401 Unauthorized, request-mode=sse, content-type=application/json; charset=utf-8, content-encoding=<unknown>, transfer-encoding=<unknown>): Invalid token (request id: 202606272059172394319238268d9d6WKNBwVah) | verify that the default LLM route supports image inputs on the selected endpoint/mode, then rerun `luma doctor --repair` to auto-enable the vision flags |
| embeddings | PASS | ok via ollama:http://127.0.0.1:11434:dengcao/Qwen3-Embedding-4B:q4_k_m:2560/dengcao/Qwen3-Embedding-4B:q4_k_m (dims=2560) | — |
| sqlite | PASS | ok | — |
| llm_attempts | WARN | recent_attempts=100 failed=100 failed_missing_decision=0 gateway_502=0 one_attempt_failures=98 failover_available=true configured_providers=6 sse_read_or_parse_failures=0 sse_2xx_semantic_parse=0 stream_read_error=0 api_families=responses:100 endpoints=/v1/responses:100 transports=json:2,sse:98; last_failure api_family=responses endpoint=/v1/responses transport=sse http_status=401 stage=provider_rejected decision=non_retryable_provider_rejection code=none | inspect get_llm_trace attempts; provider failures should normally show retry decisions unless the error is non-retryable |
| production_compaction_backlog | WARN | routes_over_threshold=1 unsummarized=1 threshold=128 top=[telegram:56483202:none:none raw=235 summaries=0] | run/verify context compaction for noisy routes before retrying high-budget autonomy tasks |
| production_retry_amplification | WARN | repeated_domains=1 repeated_failures=48 browser_stale_failures=0 browser_stale_durable_refs=0 top=[provider_failure:openai|gpt-5.4|responses|/v1/responses|sse|provider_rejected|none|401 count=48 tasks=42] | stop blind retries for repeated signatures; inspect evidence and surface typed failure or final synthesis |
| companion_memory_writes | WARN | recent_outcomes=50 succeeded=19 failed=31 zero_write_failures=31 unclassified_failures=0 incomplete=0 stale_unclassified=0 retryable=17 transport_failures=4 companion_episodes=70 companion_pinned_states=57 companion_memory_patches=793 conversation_topics=0; last_failure source_task_id=576bbfd8-4ab1-43a0-9c3f-7bbfed51c9e3 class=provider retryable=false | recent companion memory writes failed; inspect the classified failure reason before treating recall as healthy |
| identity | PASS | ok (aieos) | — |
| companion_persona | PASS | ok (persona_slug=luma persona_id=77b5a08d-b6ee-5e2c-a661-feb6327b274f) | — |
| memory_runtime | PASS | ok | — |
| companion_semantic_recall | PASS | pgvector-backed semantic recall is available | — |
| companion_memory_truth | PASS | graphiti-backed truth is healthy | — |
| skills | PASS | 0 active, 0 promptable, 0 always-on | — |
| plugin_runtime | SKIP | skipped | — |
| browser | PASS | local browser automation ready (browser=/usr/bin/chromium chromedriver=/usr/bin/chromedriver) | — |
| gateway | PASS | ok (public_tunnel) | — |
| tdlib | PASS | ok | — |
| companion_cutover | PASS | ok | — |
| companion_docker | PASS | ok via unix socket /var/run/docker.sock | — |
| companion_graphiti | PASS | ok | — |
| companion_graphiti_search | PASS | ok | — |
| companion_neo4j | PASS | ok via HTTP 200 OK | — |
| companion_postgres | PASS | ok | — |