[ADD] viin_brain: activate bus.bus OT collab step relay for real-time editing (WI-9)
Implements ADR-002 Option 1: real-time collaborative editing via OdooEditor's
bus.bus peer-to-peer OT mechanism, as documented in
docs/brain/architecture/adr_002_crdt_collab.md.
Changes:
- viin.brain.collab.step: new transient model acting as a 100-step rolling
buffer per page for reconnect replay (GET /viin_brain/collab/history/<id>).
- BrainCollabController: POST /viin_brain/collab/step fans out edit steps
via bus.bus channel editor_collaboration:viin.brain.page:content_html:<id>
and stores steps in the rolling buffer.
- collab_step_service.js: new OWL service that subscribes to the bus.bus
collab channel, delivers peer steps to registered listeners, and exposes
broadcastStep() / loadHistory() for the page editor.
- page_editor.js: wires collab_step_service when realtime_collab=True —
generates a stable tab clientId, subscribes on page open, loads missed
history on reconnect, broadcasts edit steps fire-and-forget, applies peer
HTML snapshots when no local save is pending, tears down on page switch /
unmount.
- ConflictDialog: retained as fallback for non-collaborative saves (force
path and offline edge cases); disabled in the collab hot path
(expectedToken=false, force=True per existing WI-13 flag).
- ACL: editor + admin rows added for viin.brain.collab.step.
- Tests: TransactionCase unit tests for the rolling buffer model + HttpCase
controller smoke tests + tour verifying service registry wiring.
Note: full 2-writer concurrent edit scenario (M>0 evidence) is PENDING —
requires a live Odoo server with two authenticated browser sessions. Server
is not running in this sprint environment. Test infrastructure is complete;
manual verification procedure documented in brain_collab_activation_tour.js.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| Subbuilds | Name | State | Detail |
|---|---|---|---|
| Build 381157 | Check the quality with Pylint: from test_lint to test_pylint | Killed | Log |
| Build 381158 | At install tests: from account to website_twitter | Killed | Log |
| Build 381159 | Post install tests: step install all modules | Killed | Log |
| Build 381160 | Post install tests: from account to payment_alipay | Killed | |
| Build 381161 | Post install tests: from payment_aps to test_viin_web_cohort | Killed | |
| Build 381162 | Post install tests: from test_website to to_website_apps_store | Killed | |
| Build 381163 | Post install tests: from to_website_apps_store_loc to viin_estimate_sale | Killed | |
| Build 381164 | Post install tests: from viin_event_checkin_website to viin_project_gantt | Killed | |
| Build 381165 | Post install tests: from viin_project_progress to website_twitter | Killed | |
| Build 381166 | Test install all modules without demo data: from account to website_twitter | Killed | Log |
| Create Date | Level | Message |
|---|---|---|
| 04/30/2026 16:20:27 | INFO |
Updated repository Viindoo-odoo
|
| 04/30/2026 16:20:27 | INFO |
Updated repository Viindoo-tvtmaaddons
|
| 04/30/2026 16:20:27 | INFO |
Updated repository Viindoo-erponline-enterprise
|
| 04/30/2026 16:20:27 | INFO |
Updated repository Viindoo-branding
|
| 04/30/2026 16:20:27 | INFO |
Cloned repository Viindoo-ai
|