Skip to content

fix: Crash in transient submenus and stale dependency version#94

Merged
dnouri merged 1 commit intomasterfrom
fix/transient-empty-key-and-version-check
Feb 6, 2026
Merged

fix: Crash in transient submenus and stale dependency version#94
dnouri merged 1 commit intomasterfrom
fix/transient-empty-key-and-version-check

Conversation

@dnouri
Copy link
Owner

@dnouri dnouri commented Feb 6, 2026

Three crashes fixed:

  • Empty key: Submenus with no commands used fallback key "", causing (lookup-key keymap "") to return the keymap itself → wrong-type-argument: command
  • Edit columns: :setup-children returned 4-element vectors [level class args children] instead of expected [class args children]wrong-type-argument: listp, transient-column
  • Version mismatch: Package-Requires declared transient 0.3.7 but code uses transient-parse-suffixes (introduced in 0.4.0). Added load-time warning.

Tests added for all three submenu types (empty and populated states).

Three issues fixed:

1. Submenu crash with empty key: fallback suffix used key "" which
   causes (lookup-key keymap "") to return the keymap itself.
   Fix: return nil from :setup-children.

2. Edit columns crash: returned [level class args children] vectors
   but :setup-children expects [class args children] (transient 0.7+).
   Fix: drop the level element.

3. Bump transient minimum from 0.3.7 to 0.7.0 (Emacs 30 builtin).
   Older transient used a different internal vector format that is
   incompatible with :setup-children returns. The deps target now
   installs MELPA transient for Emacs 28 and 29.
@dnouri dnouri force-pushed the fix/transient-empty-key-and-version-check branch from 4d4a623 to a8424b4 Compare February 6, 2026 12:43
@dnouri dnouri merged commit 3205b97 into master Feb 6, 2026
6 checks passed
@dnouri dnouri deleted the fix/transient-empty-key-and-version-check branch February 6, 2026 12:49
dnouri added a commit that referenced this pull request Feb 25, 2026
Three issues fixed:

1. Submenu crash with empty key: fallback suffix used key "" which
   causes (lookup-key keymap "") to return the keymap itself.
   Fix: return nil from :setup-children.

2. Edit columns crash: returned [level class args children] vectors
   but :setup-children expects [class args children] (transient 0.7+).
   Fix: drop the level element.

3. Bump transient minimum from 0.3.7 to 0.7.0 (Emacs 30 builtin).
   Older transient used a different internal vector format that is
   incompatible with :setup-children returns. The deps target now
   installs MELPA transient for Emacs 28 and 29.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant