You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
cppa-cursor-browser: tighten Bubble abstraction with typed accessors and non-public raw field #128
Companion PR: Wednesday PR 2 — raw-access de-duplication (#5). Both edit models/conversation.py + raw_access.py; sequence typing here, de-dup in #5.
Problem
The Bubble domain boundary is permeable. Bubble.raw: dict[str, Any] is public (L209); accessors return loosely-typed containers (metadata→dict[str, Any] L235–247, context L277–289, model_info L319–331, token_count L291–303, tool_results L375–387, relevant_files L249–261). models/raw_access.py free functions accept bubble: Any (L269, L284, L299, L221).
PR #94 added typed accessors + schema-drift logging but raw is still public and value types are still Any. mypy --strict (pyproject.toml L102–103) cannot enforce the domain boundary.
Goal
One merged PR making raw non-public, tightening accessor return types, and migrating call sites off direct .raw reads. Preserve PR #94 drift-warning philosophy (warn-don't-coerce).
Activity