Ran the full familylaw suite in a one-off odoo:18.0 container against an isolated
throwaway DB. Fixes found and applied:
- All mail.thread-only models also inherit mail.activity.mixin — their form chatters
reference activity_ids (install-time ParseError on familylaw.deadline et al.).
- familylaw.archive.is_destruction_eligible: added a `search` method (non-stored
computed boolean used in a search-view filter domain was unsearchable).
- familylaw.archive.action_destroy: sudo() the ir.attachment unlink (attorney isn't
the attachment owner -> AccessError on destroy).
- test_step2 test_10: use relativedelta(years=8) not 365*8 days (leap-year drift made
age compute to 7; the age code is correct).
- familylaw.ai.generate failure path: keep best-effort failed-state write but document
that it rolls back with the failing txn; the real guarantee is error PROPAGATION.
test_step6 test_07 rewritten to assert the provider error propagates (never silently
swallowed) rather than asserting non-durable persistence.
BUILD_STATUS.md updated: tests now verified green in live Odoo.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>