git: 9c8637b20815 - main - misc/crush: Update to 0.96.1

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Wed, 23 Sep 2026 04:19:19 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9c8637b20815a2db3e3b1f7a2846afc95556e3dc

commit 9c8637b20815a2db3e3b1f7a2846afc95556e3dc
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-09-23 04:18:30 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-09-23 04:18:30 +0000

    misc/crush: Update to 0.96.1
    
    Changelog:
    - https://github.com/charmbracelet/crush/releases/tag/v0.96.0
    - https://github.com/charmbracelet/crush/releases/tag/v0.96.1
    
    Reported by:    GitHub (watch releases)
---
 misc/crush/Makefile                                |  2 +-
 misc/crush/distinfo                                | 10 +++----
 .../files/extra-patch-disable-command-blocking     | 34 +++++++++++-----------
 3 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/misc/crush/Makefile b/misc/crush/Makefile
index 315ac4a2b0e7..82c961937d9d 100644
--- a/misc/crush/Makefile
+++ b/misc/crush/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	crush
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.95.0
+DISTVERSION=	0.96.1
 CATEGORIES=	misc devel
 
 MAINTAINER=	tagattie@FreeBSD.org
diff --git a/misc/crush/distinfo b/misc/crush/distinfo
index 663f04d2c2e2..a5098ff0cece 100644
--- a/misc/crush/distinfo
+++ b/misc/crush/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1789598617
-SHA256 (go/misc_crush/crush-v0.95.0/v0.95.0.mod) = 8e02b123b73a5400355a9dcdcb1526b6136a2f3534b64763803e82af5f1644ca
-SIZE (go/misc_crush/crush-v0.95.0/v0.95.0.mod) = 9730
-SHA256 (go/misc_crush/crush-v0.95.0/v0.95.0.zip) = 222cc710b8fef79718171977fc087ff7349031e0a020f8f0fd8c8fa717820a30
-SIZE (go/misc_crush/crush-v0.95.0/v0.95.0.zip) = 2889019
+TIMESTAMP = 1790135840
+SHA256 (go/misc_crush/crush-v0.96.1/v0.96.1.mod) = 81bc8cfa758a9ef035c611c723a18a233f583a816e55696d28f9cd5db3ce8f9a
+SIZE (go/misc_crush/crush-v0.96.1/v0.96.1.mod) = 9730
+SHA256 (go/misc_crush/crush-v0.96.1/v0.96.1.zip) = 79c6caf10c3df9cfef2b8a5b86337a39a4a39dd4632c298be886f81f9d209359
+SIZE (go/misc_crush/crush-v0.96.1/v0.96.1.zip) = 2932953
diff --git a/misc/crush/files/extra-patch-disable-command-blocking b/misc/crush/files/extra-patch-disable-command-blocking
index 137710e44507..b97a13188ea4 100644
--- a/misc/crush/files/extra-patch-disable-command-blocking
+++ b/misc/crush/files/extra-patch-disable-command-blocking
@@ -4,8 +4,8 @@
  	}
  
  	allTools := []fantasy.AgentTool{
--		tools.NewBashTool(env.permissions, env.workingDir, cfg.Config().Options.Attribution, modelName),
-+		tools.NewBashTool(env.permissions, env.workingDir, cfg.Config().Options.Attribution, modelName, cfg.Config().Options.DisableCommandBlocking),
+-		tools.NewBashTool(env.permissions, env.workingDir, cfg.Config().Options.DataDirectory, cfg.Config().Options.Attribution, modelName),
++		tools.NewBashTool(env.permissions, env.workingDir, cfg.Config().Options.DataDirectory, cfg.Config().Options.Attribution, modelName, cfg.Config().Options.DisableCommandBlocking),
  		tools.NewDownloadTool(env.permissions, env.workingDir, r.GetDefaultClient()),
  		tools.NewEditTool(nil, env.permissions, env.history, *env.filetracker, env.workingDir),
  		tools.NewMultiEditTool(nil, env.permissions, env.history, *env.filetracker, env.workingDir),
@@ -15,14 +15,14 @@
  
  	allTools = append(
  		allTools,
--		tools.NewBashTool(c.permissions, c.cfg.WorkingDir(), c.cfg.Config().Options.Attribution, modelID),
-+		tools.NewBashTool(c.permissions, c.cfg.WorkingDir(), c.cfg.Config().Options.Attribution, modelID, c.cfg.Config().Options.DisableCommandBlocking),
+-		tools.NewBashTool(c.permissions, c.cfg.WorkingDir(), c.cfg.Config().Options.DataDirectory, c.cfg.Config().Options.Attribution, modelID),
++		tools.NewBashTool(c.permissions, c.cfg.WorkingDir(), c.cfg.Config().Options.DataDirectory, c.cfg.Config().Options.Attribution, modelID, c.cfg.Config().Options.DisableCommandBlocking),
  		tools.NewCrushInfoTool(c.cfg, c.lspManager, c.allSkills, c.activeSkills, c.skillTracker),
  		tools.NewCrushLogsTool(logFile),
- 		tools.NewJobOutputTool(),
+ 		tools.NewJobOutputTool(c.cfg.Config().Options.DataDirectory),
 --- internal/agent/tools/bash.go.orig	1979-11-29 15:00:00 UTC
 +++ internal/agent/tools/bash.go
-@@ -145,8 +145,11 @@ var bannedCommands = []string{
+@@ -146,8 +146,11 @@ var bannedCommands = []string{
  	"ufw",
  }
  
@@ -35,7 +35,7 @@
  	var out bytes.Buffer
  	if err := bashDescriptionTpl.Execute(&out, bashDescriptionData{
  		BannedCommands:  bannedCommandsStr,
-@@ -162,7 +165,10 @@ func bashDescription(attribution *config.Attribution, 
+@@ -163,7 +166,10 @@ func bashDescription(attribution *config.Attribution, 
  	return out.String()
  }
  
@@ -47,12 +47,12 @@
  	return []shell.BlockFunc{
  		shell.CommandsBlocker(bannedCommands),
  
-@@ -194,10 +200,10 @@ func blockFuncs() []shell.BlockFunc {
+@@ -195,10 +201,10 @@ func blockFuncs() []shell.BlockFunc {
  	}
  }
  
--func NewBashTool(permissions permission.Service, workingDir string, attribution *config.Attribution, modelID string) fantasy.AgentTool {
-+func NewBashTool(permissions permission.Service, workingDir string, attribution *config.Attribution, modelID string, disableBlocking bool) fantasy.AgentTool {
+-func NewBashTool(permissions permission.Service, workingDir, spillDir string, attribution *config.Attribution, modelID string) fantasy.AgentTool {
++func NewBashTool(permissions permission.Service, workingDir, spillDir string, attribution *config.Attribution, modelID string, disableBlocking bool) fantasy.AgentTool {
  	return fantasy.NewAgentTool(
  		BashToolName,
 -		string(bashDescription(attribution, modelID)),
@@ -60,7 +60,7 @@
  		func(ctx context.Context, params BashParams, call fantasy.ToolCall) (fantasy.ToolResponse, error) {
  			if params.Command == "" {
  				return fantasy.NewTextErrorResponse("missing command"), nil
-@@ -251,7 +257,7 @@ func NewBashTool(permissions permission.Service, worki
+@@ -252,7 +258,7 @@ func NewBashTool(permissions permission.Service, worki
  				bgManager := shell.GetBackgroundShellManager()
  				bgManager.Cleanup()
  				// Use background context so it continues after tool returns
@@ -69,7 +69,7 @@
  				if err != nil {
  					return fantasy.ToolResponse{}, fmt.Errorf("error starting background shell: %w", err)
  				}
-@@ -306,7 +312,7 @@ func NewBashTool(permissions permission.Service, worki
+@@ -307,7 +313,7 @@ func NewBashTool(permissions permission.Service, worki
  			// Start with detached context so it can survive if moved to background
  			bgManager := shell.GetBackgroundShellManager()
  			bgManager.Cleanup()
@@ -84,8 +84,8 @@
  func newBashToolForTest(workingDir string) fantasy.AgentTool {
  	permissions := &mockBashPermissionService{Broker: pubsub.NewBroker[permission.PermissionRequest]()}
  	attribution := &config.Attribution{TrailerStyle: config.TrailerStyleNone}
--	return NewBashTool(permissions, workingDir, attribution, "test-model")
-+	return NewBashTool(permissions, workingDir, attribution, "test-model", false)
+-	return NewBashTool(permissions, workingDir, workingDir, attribution, "test-model")
++	return NewBashTool(permissions, workingDir, workingDir, attribution, "test-model", false)
  }
  
  func newBashToolWithRecordingPerms(workingDir string, allow bool) (fantasy.AgentTool, *recordingPermissionService) {
@@ -93,14 +93,14 @@
  		allow:  allow,
  	}
  	attribution := &config.Attribution{TrailerStyle: config.TrailerStyleNone}
--	return NewBashTool(perms, workingDir, attribution, "test-model"), perms
-+	return NewBashTool(perms, workingDir, attribution, "test-model", false), perms
+-	return NewBashTool(perms, workingDir, workingDir, attribution, "test-model"), perms
++	return NewBashTool(perms, workingDir, workingDir, attribution, "test-model", false), perms
  }
  
  func TestBashTool_ChainedCommandsRequirePermission(t *testing.T) {
 --- internal/config/config.go.orig	1979-11-29 15:00:00 UTC
 +++ internal/config/config.go
-@@ -382,6 +382,7 @@ type Options struct {
+@@ -412,6 +412,7 @@ type Options struct {
  	Debug                bool        `json:"debug,omitempty" jsonschema:"description=Enable debug logging,default=false"`
  	DebugLSP             bool        `json:"debug_lsp,omitempty" jsonschema:"description=Enable debug logging for LSP servers,default=false"`
  	DisableAutoSummarize bool        `json:"disable_auto_summarize,omitempty" jsonschema:"description=Disable automatic conversation summarization,default=false"`