forked from unom/punktfunk
The core logs through tracing; the desktop and Android shells install a subscriber/logger and see those lines, the Swift client installed none and saw nothing — every transport warning, quinn connection event and rustls handshake note vanished, and a client log bundle sent to the host carried the shell's half only. - punktfunk_set_log_callback(max_level, cb, user): a log::Log backend behind a C callback (level, target, message, user), level-gated by log::set_max_level so anything above the ceiling costs no formatting; NULL detaches; Unsupported when another log backend already owns the process (android_logger). tracing's `log` feature declared explicitly by the core — it was on transitively via quinn, which an ABI promise must not rest on. ABI_VERSION 24 → 25, header regenerated, embedding doc §2.6. - Apple: CoreLog.install() at app start routes the lines into ClientLog under core.<crate> (os_log + the send-to-host ring), info ceiling by default (PUNKTFUNK_CORE_LOG_LEVEL raises it). - Test: a log record and a tracing event both reach the callback with level/target/message, interior NUL dropped not truncated, ceiling honoured, detach silences.