From 0c061e37ab051485169ae3cb74d118f916fb6960 Mon Sep 17 00:00:00 2001 From: Wong Ding Feng Date: Sat, 21 Mar 2026 12:23:07 +0800 Subject: [PATCH] fix(ai): unset CLAUDECODE to allow nested sessions + add justl.el --- ai.el | 38 ++++++++++++++++++++------------------ development.el | 5 +++++ packages.el | 3 +++ 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/ai.el b/ai.el index c89267b..813177b 100644 --- a/ai.el +++ b/ai.el @@ -9,7 +9,7 @@ :defer t :config ;; Default backend: OpenRouter - (setq gptel-model 'google/gemini-2.5-flash + (setq gptel-model 'google/gemini-3.flash-preview gptel-backend (gptel-make-openai "OpenRouter" :host "openrouter.ai" @@ -48,32 +48,32 @@ (after! gptel ;; Coding assistant preset (gptel-make-preset 'coder - :description "Expert coding assistant" - :backend "OpenRouter" - :model 'anthropic/claude-sonnet-4.5 - :system "You are an expert coding assistant. Provide high-quality code solutions, refactorings, and explanations. Be concise but thorough. Include error handling and follow best practices.") + :description "Expert coding assistant" + :backend "OpenRouter" + :model 'anthropic/claude-sonnet-4.5 + :system "You are an expert coding assistant. Provide high-quality code solutions, refactorings, and explanations. Be concise but thorough. Include error handling and follow best practices.") ;; Code explainer preset (gptel-make-preset 'explain - :description "Explain code to beginners" - :system "Explain this code to a novice programmer. Use simple language and break down complex concepts.") + :description "Explain code to beginners" + :system "Explain this code to a novice programmer. Use simple language and break down complex concepts.") ;; Refactoring preset (gptel-make-preset 'refactor - :description "Code refactoring expert" - :model 'anthropic/claude-sonnet-4.5 - :system "You are a code refactoring expert. Improve code quality, readability, and performance while maintaining functionality. Explain your changes.") + :description "Code refactoring expert" + :model 'anthropic/claude-sonnet-4.5 + :system "You are a code refactoring expert. Improve code quality, readability, and performance while maintaining functionality. Explain your changes.") ;; Quick answers preset (gptel-make-preset 'quick - :description "Quick, concise answers" - :model 'google/gemini-2.5-flash - :system "Provide quick, concise answers. Be direct and to the point.") + :description "Quick, concise answers" + :model 'google/gemini-2.5-flash + :system "Provide quick, concise answers. Be direct and to the point.") ;; Documentation writer preset (gptel-make-preset 'docs - :description "Documentation writer" - :system "Write clear, comprehensive documentation. Include examples and explain edge cases.")) + :description "Documentation writer" + :system "Write clear, comprehensive documentation. Include examples and explain edge cases.")) ;;; ============================================================================ ;;; gptel-quick - Quick lookups and explanations @@ -161,9 +161,9 @@ (when (use-region-p) (let ((code (buffer-substring-no-properties (region-beginning) (region-end)))) (gptel-request code - :system "Explain this code concisely in 2-3 sentences." - :callback (lambda (response info) - (message "Explanation: %s" response)))))) + :system "Explain this code concisely in 2-3 sentences." + :callback (lambda (response info) + (message "Explanation: %s" response)))))) (defun my/gptel-proofread-region () "Proofread and improve selected text." @@ -183,6 +183,8 @@ (use-package! claude-code :defer t :config + ;; Unset CLAUDECODE to allow running Claude Code inside Emacs sub-processes + (setenv "CLAUDECODE" nil) (setq claude-code-program "ccr" claude-code-program-switches '("code" "--dangerously-skip-permissions")) diff --git a/development.el b/development.el index 546393f..33617b6 100644 --- a/development.el +++ b/development.el @@ -144,3 +144,8 @@ (setq lsp-clients-clangd-executable "clangd") (setq lsp-clients--clangd-default-executable "clangd") (setq lsp-clangd-binary-path "clangd")) + +;; Justfile mode (psibi/justl.el) +(use-package! justl + :config + (map! :n "e" 'justl-exec-recipe)) diff --git a/packages.el b/packages.el index 33068fd..02dd5a3 100644 --- a/packages.el +++ b/packages.el @@ -64,6 +64,9 @@ ("integration" "integration/*") (:exclude ".dir-locals.el" "*-tests.el")))) +;; Justfile mode +(package! justl :recipe (:host github :repo "psibi/justl.el")) + ;; Usage metrics and key tracking (package! keyfreq) (package! command-log-mode)