* fix(frontend): guard message copy clipboard access * fix(frontend): reuse clipboard guard across copy actions