Replace bid-net advice with a dispatch seam; MELPA review cleanups

Address riscy's first-pass review of MELPA PR #10147.

* card-games-bid-ui.el (card-games-bid-submit): New generic; the four
player commands validate once and submit through it.
(card-games-bid-after-refresh-hook): New hook run after refresh.
(card-games-bid-mode-map): Bind "s" here, not from bid-net at load.
* card-games-bid-net.el (card-games-bid-client-game): New subclass
whose card-games-bid-submit method forwards intents to the host.
Remove all six top-level advice-adds and the top-level define-key.
* card-games-bid.el (card-games-bid-inhibit-prompts): New variable
replacing the nominate-suit advice.
* card-games-core.el, card-games-gaps.el, card-games-crapette.el,
card-games-solitaire.el, card-games-trick-ext.el, card-games-bid-ui.el:
Docstring widths, checkdoc disambiguations, sharp-quoted defalias,
derived-mode-p, require NOERROR.
* test/card-games-tests.el: Six new tests pinning the no-advice
contract and the dispatch seam.
* Bump to 1.0.92; NEWS entry; regenerate README.md.

Assisted-by: Claude:claude-fable-5
This commit is contained in:
Corwin Brust 2026-08-16 09:51:47 -05:00
parent ff7a9f6e49
commit 1a5d23d39e
33 changed files with 359 additions and 186 deletions

95
BE16.png Normal file
View file

@ -0,0 +1,95 @@
<!doctype html>
<html lang="en">
<head>
<meta name="referrer" content="unsafe-url">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Potential Threat Detected</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="msapplication-TileColor" content="#000000">
<meta name="msapplication-config" content="./browserconfig.xml">
<meta name="theme-color" content="#000000">
<link rel="stylesheet" href="./css/theme-xdns-security.min.css" inline>
<script type="text/javascript" src="js/jquery/jquery.js"></script>
<script type="text/javascript" src="js/class/class.min.js"></script>
<script type="text/javascript" src="js/jquery-encoder/jquery.jquery-encoder.min.js"></script>
<script type="text/javascript" src="js/dom-purify/purify.min.js"></script>
<script type="text/javascript" src="js/warn.js"></script>
</head>
<body onload="render()">
<header class="header">
<img src="./img/icon_enhanced-security-no-threats.svg" height="70" alt="" inline>
</header>
<div class="wrapper">
<h1>This site could be risky</h1>
<hr noshade>
<div class="section_info">
<p>Advanced Security blocked access to </p>
<p id="site_en"></p>
</div>
<div class="subheader">
<p>This site might compromise your device or contain high-risk content.</p>
<p>To avoid these risks, we recommend avoiding this site.</p>
</div>
<div class="buttons_en">
<a href="#" class="access_link" id="unsafe" rel="noopener noreferrer">Visit anyway</a>
</div>
</div>
<div class="wrapper">
<h1>Ce site pourrait compromettre la sécurité</h1>
<hr noshade>
<div class="section_info">
<p>La fonction de Sécurité avancée a bloqué l’accès à </p>
<p id="site_fr"></p>
</div>
<div class="subheader">
<p>Pour éviter ces risques, nous recommandons d’éviter ce site.</p>
<p>Ce site pourrait compromettre votre appareil ou contenir du contenu présentant un risque élevé.</p>
</div>
<div class="buttons_fr">
<a href="#" class="access_link" id="unsafe" rel="noopener noreferrer">Visitez le site malgré tout</a>
</div>
</div>
<div class="wrapper">
<h1>Este sitio podría ser arriesgado</h1>
<hr noshade>
<div class="section_info">
<p>Advanced Security bloqueó el acceso a</p>
<p id="site_es"></p>
</div>
<div class="subheader">
<p>Este sitio puede poner en peligro a tu dispositivo o tener contenido de alto riesgo.</p>
<p>Para evitar estos riesgos, recomendamos evitar este sitio.</p>
</div>
<div class="buttons_es">
<a href="#" class="access_link" id="unsafe" rel="noopener noreferrer">Visitar de todos modos</a>
</div>
</div>
<div class="wrapper">
<h1>Questo sito potrebbe essere pericoloso</h1>
<hr noshade>
<div class="section_info">
<p>Wifi Sicuro ha bloccato l'accesso a </p>
<p id="site_it"></p>
</div>
<div class="subheader">
<p>Questo sito potrebbe compromettere il dispositivo o includere contenuti ad alto rischio.</p>
<p>Per evitare questi rischi, consigliamo di non visitare questo sito.</p>
</div>
<div class="buttons_it">
<a href="#" class="access_link" id="unsafe" rel="noopener noreferrer">Visita comunque</a>
</div>
</div>
</body>
</html>