Route devel plugin AI tooling through pkg/use, not raw :straight wiring - #2
Open
yottanami wants to merge 1 commit into
Open
Route devel plugin AI tooling through pkg/use, not raw :straight wiring#2yottanami wants to merge 1 commit into
yottanami wants to merge 1 commit into
Conversation
Owner
Author
|
Reviewed and went a bit further than static reading since I can't run Emacs/Nix either (same environment gap as the PR author): confirmed the core technical claim two ways.
Also verified: balanced parens on the edited file, no remaining Same situation as PR #1 though: no agent can actually load this in Emacs or run |
plugins/devel/core.el had leftover pre-Nix package wiring that never got migrated when straight.el was dropped (9822f0a): - copilot went through pkg/use (which strips :straight and forces :ensure nil) but ALSO carried an explicit :ensure t in its details. Since pkg/use expands to (use-package copilot :ensure nil ...details...), that explicit :ensure t comes after the macro's own :ensure nil and use-package's plist normalization takes the last occurrence of a keyword -- so :ensure t wins, silently defeating the wrapper. Combined with the (now-stripped) :straight recipe being the package's only real fetch source and copilot not being in nix/emacs.nix's package list at all, use-package would fall through to package.el's default install path, which requires refreshed package-archive-contents this build's pkg/initialize deliberately never sets up ("no network access, no package manager bootstrap", per its own doc comment) -- almost certainly broken today. - shell-maker and copilot-chat used bare use-package with :straight recipes referencing sources straight.el no longer fetches from, instead of pkg/use like every other package in the file. Both were already in nix/emacs.nix's package list, so they likely worked by accident via the global use-package-always-ensure nil default, not because the :straight recipe did anything. copilot.el is on MELPA, and nixpkgs auto-generates emacsPackages recipes for MELPA, so it's wired into nix/emacs.nix the same way copilot-chat already is, rather than dropped. I could not do a live check (no nix/emacs binary in my environment) to confirm copilot was actually broken before this change, as the issue asks for -- the above is static analysis of use-package's documented keyword-precedence behavior, not a confirmed runtime failure. Please verify with a real build.
yottanami
force-pushed
the
agent/19-devel-pkg-use
branch
from
July 29, 2026 11:59
1cd8ea9 to
9b6f4c3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
plugins/devel/core.elhad leftover pre-Nix package wiring that never got migrated when straight.el was dropped (9822f0a):copilotwent throughpkg/use(which strips:straightand forces:ensure nil) but also carried an explicit:ensure tin its details. Sincepkg/useexpands to(use-package copilot :ensure nil ...details...), that explicit:ensure tcomes after the macro's own:ensure nil, anduse-package's plist normalization takes the last occurrence of a keyword — so:ensure twins, silently defeating the wrapper.shell-makerandcopilot-chatused bareuse-packagewith:straightrecipes referencing sources straight.el no longer fetches from, instead ofpkg/uselike every other package in the file.What I could confirm, and what I couldn't (no
nix/emacsbinary in my environment):copilotis absent fromnix/emacs.nix's package list;shell-maker/copilot-chatare present.copilot.elis on MELPA, and nixpkgs auto-generatesemacsPackagesrecipes for MELPA, so it's addable the same waycopilot-chatalready is (not a from-source build likehelm-ag).copilotwas actually broken before this fix. My reasoning it likely was: with:ensure twinning and the:straightrecipe being its only real fetch source,use-packagewould fall through topackage.el's default install path, which needs refreshedpackage-archive-contents— and this build'spkg/initializedeliberately never sets that up ("no network access, no package manager bootstrap", per its own doc comment). That's static reasoning about documenteduse-package/package.elbehavior, not an observed failure — please verify with a real build.Changes
copilot: dropped the vestigial:straightrecipe and the harmful redundant:ensure t, lettingpkg/use's:ensure nilactually take effect.shell-maker/copilot-chat: converted topkg/use, dropped their:straightrecipes.nix/emacs.nix: addedcopilotto the package list.Out of scope, flagged for a possible follow-up
plugins/editor/core.el:52(smart-mode-line) has the same kind of leftover:straightrecipe, but it's a different file and wasn't named in this issue's acceptance criteria, so I left it alone — harmless today sincepkg/usestrips it regardless, just the same style inconsistency.Closes Men-in-Black-5/ideas#19
Test plan
grep -rn ":straight"— no more:straightrecipes inplugins/devel/core.elnix flake check/ a live build confirmingcopilot,copilot-chat,shell-makerall load — not possible in my environment, needs a real check