Known Limitations
| Area | Limitation | Impact |
|---|---|---|
| Database setup | No migration/schema creation code. Runtime expects cosmo.db and tables to exist. | Manual database initialization required. |
| Config usage | Some settings are still not fully wired or are only partially used, such as logs.level, logs.path, and parts of memory history configuration. Most vision configuration fields used by camera capture and face detection are active. | Some configuration changes may not take effect, depending on subsystem. |
| LLM providers | Only configured provider paths are selectable through the current provider setup. | Provider flexibility remains limited. |
| Timeout bug | ConversationPipeline timeout handler references undefined error variable in the timeout branch. | Timeout exceptions can produce a secondary NameError. |
| VAD not used | WebRTC VAD wrapper exists; capture uses RMS thresholding instead. | VAD implementation unused. |
| Vision | Vision is implemented but experimental. | Camera capture, image metrics, snapshots, and baseline face detection work, but tuning is still required. |
| Face detection | OpenCV Haar Cascade is the current baseline and can be unstable with low light, blur, pose, distance, and false positives. | Accepted/rejected detections should be inspected before relying on face presence. |
| Face recognition | Face enrollment, identity embeddings, recognition, and matching are not implemented yet. | Cosmo can detect face-like regions, but cannot identify a person. |
| Vision tracking | Tracking and temporal smoothing are not implemented yet. | Face results are frame-local and may flicker. |
| Camera session | Camera session may stay open while auto-capture is active. | Camera LED may remain on even though capture is periodic, not video FPS. |
| WebUI | WebUI is read-only and intentionally not a control panel. | Runtime changes still require voice commands, code/config edits, or direct database operations. |
| Persistent conversation recall | Conversations are saved to SQLite but not loaded into prompts as durable recall. | Only short-term ConversationManager, 10 messages, is used in LLM context. |
| Memory retrieval | Retrieval is recency/importance based, not semantic. | No semantic matching to user query. |
| Tests out of sync | Some tests still exercise older assumptions. | Full-suite failures may need test updates after runtime behavior changes. |
| Single SQLite lock | All repositories share a single database lock in the core database wrapper. | Potential bottleneck at scale. |
| Background task tracking | Event dispatch and listener-created tasks are not fully tracked by AsyncRuntime. | Shutdown only cancels explicitly registered tasks. |
| API/CLI/WebSocket | External API, CLI, and bidirectional WebSocket interfaces remain pending. | Integration surfaces are limited to current WebUI/read-only HTTP endpoints and the voice runtime. |
Recommended Vision Improvement
YuNet or another OpenCV DNN-backed detector is the recommended future improvement over the current Haar Cascade baseline, especially for difficult lighting, pose, and distance.

