Pending: 0 Building: 0 Running: 2 Failed: 79
Created Date Type Name Commit Description State Age Up Time Life Time Action
merged viin_brain: P3–P12 buildout + WI-14 UI panels (9 sprints — viindoo-brain v17 campaign) feat(brain-p4): dynamic slash command registry for BrainSlashMenu Two new files wire the Brain slash menu (viin_web_editor.commands) which was previously empty for non-AI users. native_commands.js (viin_web_editor) - Single bridge file between OdooEditor native features and BrainSlashMenu - Registers: Image (MediaDialog), Video (MediaDialog), Table 3×3, 2-column layout, 3-column layout - Dynamic contract: future Odoo commands → add one entry here, all downstream consumers pick it up automatically brain_commands.js (viin_brain) - Full set of Brain block commands into viin_web_editor.commands: Text (H1/H2/H3, paragraph, quote, code), Lists (bullet, numbered), Brain (wikilink, record mention, external link), Embed (record, recordset, page, database) BrainSlashMenu adapter enhanced - Add insertHtml(html) — explicit name for insertHTML execCommand - Add formatBlock(tag) — converts current block (h1-h6, p, pre, blockquote) - Add execCommand(name, arg) for list toggles (insertUnorderedList, etc.) Both files load in web.assets_backend (eager bundle). MediaDialog is already in that bundle via web_editor.assets_media_dialog. Killed Not finished
merged viin_brain: P3–P12 buildout + WI-14 UI panels (9 sprints — viindoo-brain v17 campaign) [FIX+IMP] viin_brain{*} various bugs fixing and improvements Failed
merged viin_brain: P3–P12 buildout + WI-14 UI panels (9 sprints — viindoo-brain v17 campaign) [FIX+IMP] viin_brain{*} various bugs fixing and improvements Killed Not started Not finished
merged viin_brain: P3–P12 buildout + WI-14 UI panels (9 sprints — viindoo-brain v17 campaign) [FIX] viin_brain: WI-14 AC gaps — link_type labels, record mentions, daily filter - AC-7: GraphPanel now shows link_type badge (wikilink/related/etc.) next to each page name; batch-reads viin.brain.link in one ORM call after graph_traverse - AC-9: Add "Record Mentions" section to GraphPanel showing record_mention links from the current page with clickable onOpenRecord (opens Odoo form view) - AC-14: Add Daily notes toggle to DatabaseView toolbar; passes page_type='daily' filter to brain_get_database_rows backend - FIX: viin_brain_form_sidebar_views.xml crm.lead inherit_id was pointing to an ir.actions.act_window instead of ir.ui.view — corrected to crm.crm_lead_view_form Tests: 0 failed, 0 error(s) of 9 — TestAiReviewWorkflow on v17_brain_final_test Failed
merged viin_brain: P3–P12 buildout + WI-14 UI panels (9 sprints — viindoo-brain v17 campaign) [ADD] viin_brain: WI-14 — UI panels (AI attribution badge + Graph panel + AI Review + filters) Backend (viin_brain/models/viin_brain_page.py): - action_ai_review_approve / action_ai_review_reject — record reviewer id + timestamp - _check_ai_review_permission — vault editor/admin role guard (raises AccessError) - brain_get_current_user_role — return 'admin'/'editor'/'commenter'/'viewer'/'viewer' (default) - write() override — auto-flip ai_review_status=pending_review → human_modified on human content edit (skip when brain_agent_id context set, skip when caller wrote status explicitly) Backend (viin_brain/models/viin_brain_database_view.py): - brain_get_database_rows: new optional filters dict; filters.is_ai_authored restricts rows to AI-authored pages New OWL components: - AiAttributionBadge (3 files) — '✦ AI' chip + hover CSS tooltip with 5 rows (agent / confidence / trace / status / reviewer) - GraphPanel (3 files) — tab inside BacklinkPanel: incoming (depth=1), outgoing (depth=2 nested via via_link_ids heuristic), siblings (same parent_id). ACL honored automatically via ORM - AiReviewPanel (3 files) — tab inside BacklinkPanel: Approve / Reject buttons, role-guarded (only editor/admin can click), status + agent + confidence + reviewer meta UI integration: - BacklinkPanel: import GraphPanel + AiReviewPanel, add Graph tab (always) + AI Review tab (only when isAiAuthored), load is_ai_authored + parent_id in _loadBacklinks - PageEditor: register AiAttributionBadge, include AI fields in page read, render badge in title row - VaultSidebar: new '✦ AI' filter pill (mode=ai_authored), handle in _loadFilteredPages + empty-state message - DatabaseView: toolbar toggle '✦ AI' (filterAiAuthored state), passes filters dict to brain_get_database_rows Manifest: - Register new components (SCSS + JS + XML) before page_editor + backlink_panel - Register viin_brain_graph_panel_tour.js in web.assets_tests Tests: - TestAiReviewWorkflow (9 cases): approve/reject/admin-can-approve/viewer-cannot/commenter-cannot/human-modified/approved-stays/agent-edit-skips/role-helper - Tour viin_brain_graph_panel_tour.js (AC-17): seed incoming + outgoing edges via wikilinks, verify tab renders both sections Note: manually implemented (Option B) after /coder subprocess hit systematic write-target drift pattern (pattern doc: knowledge/viinforge/patterns/failure-2026-04-20-coder-writes-to-ai17-main-via-doc-refs.md). BA_REVIEW + PLAN artifacts from /coder subprocess retained (acceptance_criteria.md + implementation_plan.md) as design source. Failed
merged [BRAIN] Cụm Brain v17 Phase A (viin_web_editor + viin_brain + account_reports + viin_ai_brain) [DOC] docs/brain: reflect cluster relocation to ai17 4 Brain modules (viin_web_editor, viin_brain, viin_brain_account_reports, viin_ai_brain) now co-located in ai17 after strategic re-route from erponline-enterprise17. Only runtime cross-repo dep remaining: to_account_reports for viin_brain_account_reports. See delivery/audit_campaign_brain_repo_retarget_2026-04-18.md (viinforge) for full re-route history. Failed
merged [BRAIN] Cụm Brain v17 Phase A (viin_web_editor + viin_brain + account_reports + viin_ai_brain) [ADD] viin_ai_brain: WI-13 — AI Brain bridge (RAG + 9 tools + ChatGPT hookup, Phase A v1.0) Layer-3 connector tying viin_brain (knowledge engine) to the viin_ai stack. Ships the v1.0 commit line for the Brain cluster per CEO R1. Data layer * source_type ``brain_page`` / ``brain_vault`` on ``viin.ai.source`` * block-aware chunker — one chunk per block, glue short neighbours into the next (>= 200 chars signal per chunk); falls back to plain-text paragraph chunking when content_blocks is empty. * ``viin.brain.page.write`` hook: content_html / content_blocks / content_plain changes flip attached sources back to status='draft' so the upstream cron re-embeds. 9 tools mapped to the 5 brain philosophies T3 semantic — brain_semantic_search (pgvector similarity + ACL) T2+T3 struct — brain_graph_traverse (BFS on viin.brain.link) T3 temporal — brain_timeline_query (write_date range + filters) T1 getter — brain_get_page_content (content_plain + links) T5 writers — brain_create_page / brain_create_block / brain_update_property (confidence + attribution) T2+T5 — brain_create_link (non-destructive edge) T4+T5 — brain_link_record (page↔Odoo record binding) Topic "Knowledge Base Assistant" wires the 9 tools. Every writer reads ``agent_id`` / ``trace_id`` / ``confidence`` from context, stamps ``is_ai_authored`` + ``ai_review_status='pending_review'`` (or ``approved`` when vault.auto_approve_ai_content=True), and refuses when vault.allow_ai_authoring=False. Controllers * /viin_ai_brain/wysiwyg/prompt — run agent once, return trace+content * /viin_ai_brain/wysiwyg/alternatives — N rephrase / shorten / lengthen * /viin_ai_brain/ai_block/fill — resolve inline ai_block via agent OWL services * viin_web_editor.chatgpt_backend_provider — force-override, routes OdooEditor ChatGPT dialog prompts through Viindoo agent stack. * viin_brain.ai_bridge — force-override, exposes openChat / runInlinePrompt / regenerate. Three slash commands (/ai_write, /ai_chat, /ai_block). Tests (27 passed on v17_test_brain_wi13, 0 failed, 0 errors) * test_brain_rag — source extension, chunking (blocks + fallback + glue), re-embed on write, content-only field gating, full _process_pending pass. * test_brain_tools — shape/ACL/attribution for each of the 9 tools, auto-approve vault path, blocked-vault AccessError. * test_chatgpt_backend — wysiwyg/prompt, wysiwyg/alternatives, ai_block/fill (controller methods invoked directly with mocked request + AIAgent.run, so no LLM call + no HttpCase server startup). Dependencies: viin_ai_agent, viin_ai_rag, viin_brain, viin_web_editor. Campaign 2026-04-17-viindoo-brain-v17 WI-13 (Phase A v1.0 commit line). STATUS: DONE SPRINT_DONE: job_id=2026-04-17-brain-wi13-ai-brain-bridge Failed
merged [BRAIN] Cụm Brain v17 Phase A (viin_web_editor + viin_brain + account_reports + viin_ai_brain) [ADD] viin_ai_brain: WI-13 — AI Brain bridge (RAG + 9 tools + ChatGPT hookup, Phase A v1.0) Layer-3 connector tying viin_brain (knowledge engine) to the viin_ai stack. Ships the v1.0 commit line for the Brain cluster per CEO R1. Data layer * source_type ``brain_page`` / ``brain_vault`` on ``viin.ai.source`` * block-aware chunker — one chunk per block, glue short neighbours into the next (>= 200 chars signal per chunk); falls back to plain-text paragraph chunking when content_blocks is empty. * ``viin.brain.page.write`` hook: content_html / content_blocks / content_plain changes flip attached sources back to status='draft' so the upstream cron re-embeds. 9 tools mapped to the 5 brain philosophies T3 semantic — brain_semantic_search (pgvector similarity + ACL) T2+T3 struct — brain_graph_traverse (BFS on viin.brain.link) T3 temporal — brain_timeline_query (write_date range + filters) T1 getter — brain_get_page_content (content_plain + links) T5 writers — brain_create_page / brain_create_block / brain_update_property (confidence + attribution) T2+T5 — brain_create_link (non-destructive edge) T4+T5 — brain_link_record (page↔Odoo record binding) Topic "Knowledge Base Assistant" wires the 9 tools. Every writer reads ``agent_id`` / ``trace_id`` / ``confidence`` from context, stamps ``is_ai_authored`` + ``ai_review_status='pending_review'`` (or ``approved`` when vault.auto_approve_ai_content=True), and refuses when vault.allow_ai_authoring=False. Controllers * /viin_ai_brain/wysiwyg/prompt — run agent once, return trace+content * /viin_ai_brain/wysiwyg/alternatives — N rephrase / shorten / lengthen * /viin_ai_brain/ai_block/fill — resolve inline ai_block via agent OWL services * viin_web_editor.chatgpt_backend_provider — force-override, routes OdooEditor ChatGPT dialog prompts through Viindoo agent stack. * viin_brain.ai_bridge — force-override, exposes openChat / runInlinePrompt / regenerate. Three slash commands (/ai_write, /ai_chat, /ai_block). Tests (27 passed on v17_test_brain_wi13, 0 failed, 0 errors) * test_brain_rag — source extension, chunking (blocks + fallback + glue), re-embed on write, content-only field gating, full _process_pending pass. * test_brain_tools — shape/ACL/attribution for each of the 9 tools, auto-approve vault path, blocked-vault AccessError. * test_chatgpt_backend — wysiwyg/prompt, wysiwyg/alternatives, ai_block/fill (controller methods invoked directly with mocked request + AIAgent.run, so no LLM call + no HttpCase server startup). Dependencies: viin_ai_agent, viin_ai_rag, viin_brain, viin_web_editor. Campaign 2026-04-17-viindoo-brain-v17 WI-13 (Phase A v1.0 commit line). STATUS: DONE SPRINT_DONE: job_id=2026-04-17-brain-wi13-ai-brain-bridge Failed