08e7987033d0f4d563b4a99bdd7d4e261225ba51
PersonService now emits a domain event whenever Person.getDisplayName() flips during an update. The snapshot is taken before the setter chain so we compare like-for-like against the post-save value, and the event only publishes when the two strings differ. The test captures the published event via ArgumentCaptor and asserts the title flip from "Herr" to "Frau" reaches the publisher with the correct personId, oldDisplayName, and newDisplayName. Title participates in DisplayNameFormatter, so this is the canonical case for "rename triggered by something other than first/last name." Implements PR-A tasks 9 and 10 as one red→green cycle (the test drove the production change). Subsequent commits cover the negative cases (alias / notes only) and the propagation listener that consumes the event. Refs #362 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
No description provided
Languages
Python
73.2%
TypeScript
11.5%
Java
10.8%
Svelte
4.2%
Shell
0.1%