- Shipped
- August 7, 2026 at 7:56 AM UTC
- Author
- Kamo
- Commit
- 2ce09f2
SharedLibBeanSafetyTest can only police the library: it knows a bean requires a repository from some package, and nothing about whether the ~40 services scan it. That gap is where the four outages came from, and it is why UNIVERSALLY_SCANNED lists packages on trust. This checks the other half. It reads every service's @ComponentScan and @EnableJpaRepositories, works out which library beans each one actually constructs, and reports any whose repositories it cannot supply. Run it after changing a bean's dependencies, and to re-earn an entry in UNIVERSALLY_SCANNED rather than assuming it. Three details it has to get right, each of which gave a wrong answer first: scan packages match by prefix; a service only builds beans its component scan reaches, which is why ChatService is not simply every-bean; and a @ConditionalOn* bean is not required at all -- ignoring that reported 20 broken services, several of them running healthily at the time. Today it prints OK for all 31. Verified it is not vacuous by dropping in a probe @Service with a hard MailboxRepository dependency, which is the shape that CrashLooped MediaService: the script names every affected service and exits 1.