summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChris Covington <[email protected]>2025-09-11 12:21:08 -0700
committerGitHub <[email protected]>2025-09-11 14:21:08 -0500
commit53f1f161229a5da0ccee92653a13fa0af9656a2d (patch)
tree272bc32862c84c50b7ee2878093b38959532a805
parent4614e4983ec667c3ab188516793c458fc9ee246b (diff)
downloadopencode-53f1f161229a5da0ccee92653a13fa0af9656a2d.tar.gz
opencode-53f1f161229a5da0ccee92653a13fa0af9656a2d.zip
feat: Add an experimental option to disable paste summaries (#2552)
Co-authored-by: rekram1-node <[email protected]>
-rw-r--r--packages/opencode/src/config/config.ts1
-rw-r--r--packages/sdk/go/config.go22
-rw-r--r--packages/tui/internal/components/chat/editor.go5
3 files changed, 18 insertions, 10 deletions
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index 786ddcc65..f4b8608d8 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -499,6 +499,7 @@ export namespace Config {
.optional(),
})
.optional(),
+ disable_paste_summary: z.boolean().optional(),
})
.optional(),
})
diff --git a/packages/sdk/go/config.go b/packages/sdk/go/config.go
index b0473f844..b79bcb2ef 100644
--- a/packages/sdk/go/config.go
+++ b/packages/sdk/go/config.go
@@ -698,16 +698,18 @@ func (r configCommandJSON) RawJSON() string {
}
type ConfigExperimental struct {
- Hook ConfigExperimentalHook `json:"hook"`
- JSON configExperimentalJSON `json:"-"`
+ Hook ConfigExperimentalHook `json:"hook"`
+ DisablePasteSummary bool `json:"disable_paste_summary"`
+ JSON configExperimentalJSON `json:"-"`
}
// configExperimentalJSON contains the JSON metadata for the struct
// [ConfigExperimental]
type configExperimentalJSON struct {
- Hook apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
+ Hook apijson.Field
+ SummarizePaste apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
}
func (r *ConfigExperimental) UnmarshalJSON(data []byte) (err error) {
@@ -1751,15 +1753,15 @@ func (r ConfigShare) IsKnown() bool {
// TUI specific settings
type ConfigTui struct {
// TUI scroll speed
- ScrollSpeed float64 `json:"scroll_speed,required"`
- JSON configTuiJSON `json:"-"`
+ ScrollSpeed float64 `json:"scroll_speed,required"`
+ JSON configTuiJSON `json:"-"`
}
// configTuiJSON contains the JSON metadata for the struct [ConfigTui]
type configTuiJSON struct {
- ScrollSpeed apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
+ ScrollSpeed apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
}
func (r *ConfigTui) UnmarshalJSON(data []byte) (err error) {
diff --git a/packages/tui/internal/components/chat/editor.go b/packages/tui/internal/components/chat/editor.go
index 31de346f5..2841e2cc8 100644
--- a/packages/tui/internal/components/chat/editor.go
+++ b/packages/tui/internal/components/chat/editor.go
@@ -668,6 +668,11 @@ func (m *editorComponent) shouldSummarizePastedText(text string) bool {
if m.app.IsBashMode {
return false
}
+
+ if m.app.Config != nil && m.app.Config.Experimental.DisablePasteSummary {
+ return false
+ }
+
lines := strings.Split(text, "\n")
lineCount := len(lines)
charCount := len(text)