feat(persona): add ambient Buddy stage one - #2817
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Summary by QodoAdd Stage 1 ambient Persona Buddy with preferences and pack review workflows
AI Description
Diagram
High-Level Assessment
Files changed (24)
|
Code Review by Qodo
1.
|
e4368ff to
3b61260
Compare
Change summary (human-written)
This PR delivers Stage 1 of the ambient Persona Buddy: a focused Persona can now appear as a calm, idle-only web companion with Off, Expressive, and Roaming modes, global and per-Persona preferences, grounded movement, accessible pointer/keyboard/touch controls, reduced-motion fallbacks, and no runtime model calls. It also adds secure visual-pack rendering and review/activation/fork workflows, hardens pack immutability and state transitions, and includes comprehensive API, engine, UI, and Playwright coverage. This establishes the shared companion engine needed for the later transparent-video creation and import stage.
Validation
Tests added/updated for behavior changes
Relevant unit/integration tests pass locally
Docs updated (if behavior, routes, or config changed)
Backend Persona/DB matrix: 358/358
Frontend Buddy/editor/services matrix: 255/255
Isolated Chromium workflow: 13/13
ESLint: 0 errors
TypeScript 5.9.3: 0 diagnostics in touched paths (47 unrelated baseline diagnostics)
Bandit: 0 findings and 0 errors
Final independent review: 0 Critical and 0 Important
UX Audit Checklist (v2 Stage 5)
Not applicable; this change does not target the v2 Stage 5 audit scope.
Watchlists Accessibility Checklist (Group 09 Stage 5)
Not applicable; Watchlists is unchanged.
Watchlists Scale Checklist (Group 10 Stage 5)
Not applicable; Watchlists is unchanged.
Risk & Rollback
Summary by cubic
Adds Stage 1 of the ambient Persona Buddy. Previously the Buddy did nothing while idle; now a deterministic, idle‑only companion runs locally with Off, Expressive, and Roaming modes, per‑Persona/global preferences, secure asset loading, and accessible controls, without model calls or arbitrary network requests.
New Features
usePersonaCompanionto schedule idle variants and bounded horizontal roaming on web.persona-buddy; UI shows effective mode per surface and coerces sidepanel roaming to Expressive.persona-visual-assets(authenticated Blob loader with SHA‑256 verification and caching).expected_version, validatescompanion_behavior, and makes active/archived revisions immutable and fingerprinted.Migration
companion_behaviorto schedule ambient states.Written for commit 9327166. Summary will update on new commits.