Merge Phase 1: AI-assisted bank reconciliation
Some checks failed
fusion_accounting CI / test (fusion_accounting_ai) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_core) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_migration) (push) Has been cancelled

51 tasks shipped on fusion_accounting/phase-1-bank-rec:
- fusion.reconcile.engine (6-method API, single write surface)
- 4-pass AI confidence scoring pipeline
- 14 mirrored Enterprise OWL components + 8 fusion-only
- 10 JSON-RPC controller endpoints + reactive frontend service
- Materialized view + 3 cron jobs
- 2 wizards + migration audit PDF
- 157 tests passing (engine, integration, property-based, controller, MV, wizards, coexistence, perf, LLM compat)
- All 4 P95 perf metrics within 1x of budget

# Conflicts:
#	fusion_plating/fusion_plating_bridge_mrp/__manifest__.py
#	fusion_plating/fusion_plating_bridge_mrp/models/mrp_workorder.py
#	fusion_plating/fusion_plating_bridge_mrp/views/mrp_workorder_views.xml
This commit is contained in:
gsinghpal
2026-04-19 14:59:17 -04:00
147 changed files with 11179 additions and 9 deletions

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<data noupdate="1">
<!--
Cron — auto-finish WOs whose recipe step is `auto_complete`
once they've been in Progress for at least their expected
duration. Used for fully-automated steps (timed immersion,
automated rinse) where the equipment runs unattended.
Fires every minute so the operator's queue clears promptly
once a bath dwell completes.
-->
<record id="ir_cron_fp_auto_finish_wos" model="ir.cron">
<field name="name">Fusion Plating: Auto-finish auto_complete WOs</field>
<field name="model_id" ref="mrp.model_mrp_workorder"/>
<field name="state">code</field>
<field name="code">model._fp_cron_auto_finish_completed_wos()</field>
<field name="interval_number">1</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="active" eval="True"/>
</record>
</data>
</odoo>