Drafts the design for fusion_accounting_bank_rec — a native bank
reconciliation widget that replaces Odoo Enterprise account_accountant
in V19 OWL architecture, with a clean-room reconcile engine reading and
writing Community account.partial.reconcile rows.
Key design decisions captured:
- CORE scope (~5.5-6 weeks): manual + auto reconcile, write-offs,
partial, multi-currency, chatter, model picker
- Strict mirror of all 18 Enterprise OWL units (zero functional loss)
plus 5 fusion-only additions for AI/history visibility
- Hybrid AI badge layout: inline strip with one-click Accept plus
expandable ranked-alternatives panel
- Behavioural learning via fusion.reconcile.pattern (per-partner) and
fusion.reconcile.precedent (per-decision memory) with bootstrap from
the 16,500 historical reconciliations
- Local LLM ready via OpenAI-compatible adapter base_url config and
per-feature provider routing — works against LM Studio, Ollama, vLLM
- Statistical-mode-without-API-key as a first-class path
- Coexistence with Enterprise: Enterprise wins by default, fusion
menu hides until uninstall, then auto-appears
- Migration wizard step bootstraps pattern memory and produces an
audit report PDF proving every reconciliation preserved
- TDD on engine algorithms with Hypothesis property-based tests for
amount invariants; migration round-trip integration test
Builds on Phase 0 (commit c450bb2, range pre-phase-0..phase-0-complete).
Made-with: Cursor
Task 18 — empirical verification of the data-preservation claims in
Section 3 of the Enterprise Takeover Roadmap.
Key empirical findings (verified on westin-v19 live DB + clone):
1. Safety guard blocks Enterprise uninstall (Scenario A, verified on
throwaway clone) — UserError fires with the correct migration-wizard
guidance message.
2. Bank reconciliation tables (account.partial.reconcile,
account.full.reconcile) are owned exclusively by Community account
module. 30,874 reconciliation rows (16,500 partial + 14,374 full)
confirmed immune to any Enterprise uninstall.
3. All 5 Enterprise extension fields on account.move (deferred_move_ids,
deferred_original_move_ids, deferred_entry_type, signing_user,
payment_state_before_switch) are dual-owned by account_accountant
AND fusion_accounting_core. Odoo's module-ownership ledger will
preserve columns/relations when Enterprise uninstalls.
4. account.reconcile.model is triple-owned (account + account_accountant
+ fusion_accounting_core). Reconciliation rules survive.
5. account.move has 36 module owners; table cannot be dropped by any
realistic uninstall scenario.
A full destructive uninstall cycle on a clone was attempted but blocked
by pre-existing data-integrity issues in westin-v19 (orphan FK references
in payslip_tags_table + account_account_res_company_rel — outside fusion
scope). The schema-ownership verification approach provides stronger
evidence than a point-in-time count comparison — it proves the invariants
hold for any real-world data shape, not just a single fixture.
Test clone westin-v19-phase0-empirical dropped after testing. No live
data was modified.
Phase 0 data-preservation design is empirically validated. Phase 1 can
proceed.
Made-with: Cursor
Workflow structure is complete (path filters, matrix, services).
The 'Install Odoo 19' step is a TODO placeholder — the reproducible
Odoo-19 build environment is deferred to Phase 1 CI hardening.
Current Phase 0 test workflow is manual via ssh odoo-westin.
Made-with: Cursor
Adds the brainstormed roadmap design that turns fusion_accounting from an
AI-only extension into a full replacement for Odoo 19 Enterprise accounting
(account_accountant, account_reports, accountant, account_followup, plus
selected satellites) for Nexa client deployments.
Covers:
- Sub-module topology (9 modules + meta-module): _core, _bank_rec, _reports,
_dashboard, _followup, _assets, _budget, _ai, _migration
- Data preservation strategy: bank reconciliations verified preserved
automatically (live in Community account.partial.reconcile);
shared-field-ownership pattern for Enterprise extension fields on
account.move; pre-uninstall migration wizard for Enterprise-only tables
- Phased roadmap: Phase 0 foundation through Phase 7+ optional satellites,
with Bank Rec as Phase 1 priority and Reports as the largest phase
- Architecture rules: hybrid mirror/abstract zones, fusion.* naming,
runtime coexistence detection, zero hard Enterprise deps
- Cross-version upgrade workflow: pinned Odoo source snapshots per version,
annual diff ritual, UPGRADE_NOTES.md per sub-module
- AI integration via adapter pattern (current AI tools route through
adapters that prefer fusion native, fall back to Enterprise, then to
pure Community)
- Testing strategy, security, performance, multi-company/currency,
localization, hosting
Implementation of each phase happens in subsequent sessions, each with
its own writing-plans pass starting with Phase 0 Foundation.
Made-with: Cursor