Has probably been discussed before, but here goes, since none of the existing clients (AFAICT) support that:
Embedding client wallet update information into the blockchainCurrently updating the client wallets means manually checking news, downloading a client wallet from some website, trusting that the website hasn't been hacked, trusting that the client is okay, hasn't been tempered with, etc. Even when compiling from source, there is a degree of trust involved (since you can't manually check everything).
So the idea would be that client wallets would check for transactions from a special address in the blockchain (hardcoded into the client for each version), and those transactions would encode in their outputs (either via vanitygen'ed destination addresses and/or special amounts) information about new versions
- hash of the updated/upgrade binary (so you don't just have to trust a website or a download)
- basic update info (minor upgrade, compulsory major upgrade, hard fork coming, etc.)
This would allow a safe update notification and a safe signed upgrade mechanisms that doesn't rely on how the update binary is delivered. And only the devs (or rather whoever holds the private key to the special address) would be able to both announce and certify the update.
This wouldn't involve any protocol updates, and other/custom clients would be unaffected by what they would see as regular transaction.