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

19
NEWS
View file

@ -1,6 +1,25 @@
card-games NEWS -- user-visible changes
========================================
* Version 1.0.92 (pretest3: MELPA review)
** Packaging and internals
- The networked 500 client no longer patches game commands with
advice. Player commands submit their action through the new
~card-games-bid-submit~ generic; a joining Emacs plays a
~card-games-bid-client-game~, whose method forwards each intent to
the host. Behaviour is unchanged, and the client now shares the
solo game's turn and legality checks exactly.
- The host broadcasts from the new ~card-games-bid-after-refresh-hook~
instead of advising the refresh loop, and prompts that cannot reach
a remote player are suppressed with ~card-games-bid-inhibit-prompts~.
- The lobby start key ~s~ is defined in ~card-games-bid-mode-map~
itself rather than pushed in when the network layer loads.
- Byte-compile and checkdoc are warning-clean across the package
(docstring widths, ambiguous doc references, ~derived-mode-p~, a
sharp-quoted ~defalias~, and ~require~'s NOERROR argument), from
MELPA review feedback (thanks riscy).
* Version 1.0.91 (pretest2: playtest)
** Documentation