Add author_node_id:8 to GUI_EVT_MSG_RECEIVED data format. Callback now includes uint64_t author parameter. SoundManager::play('msg_incoming') only when author != myNodeId.
chat_core.c (236 lines): init/destroy, getters, g_cc, helpers, si-registry chat_msg.c (223 lines): submit_message, count, chain_hash, list_*, load_nodeinfo chat_channel.c (197 lines): ensure_ready, create_channel, connect_channel, sign_join helper chat_profile.c (189 lines): update_my_name, sync_my_addresses, save_ui_state chat_status.c (118 lines): collect_status (NTP + ETCP connections) chat_core_priv.h: shared g_cc extern + helpers chat_conn_mgr.c/h: dead code (never compiled, never called) CMakeLists.txt: add 4 new .c files to build