Add the config option "keep responses"

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-05-18 23:12:01 +02:00
parent 7e1b7d3b5a
commit 615093bd8b
4 changed files with 14 additions and 1 deletions
+1
View File
@@ -45,6 +45,7 @@ type Config struct {
History struct {
SkipDuplicates bool `mapstructure:"skip_duplicates"`
KeepResponses bool `mapstructure:"keep_responses"`
} `mapstructure:"history"`
Keybindings Keybindings `mapstructure:"keybindings"`
+1
View File
@@ -17,6 +17,7 @@ replay:
history:
skip_duplicates: true # if true, skip saving entries with the same method, host, path and body
keep_responses: false # if true, response body and headers are stored in history
tui:
use_nerdfont_icons: false
+6 -1
View File
@@ -177,7 +177,12 @@ func (b *Broker) SaveEntry(f *proxy.Flow) {
Path: path,
StatusCode: status,
RequestRaw: FormatRawRequest(f),
ResponseRaw: FormatRawResponse(f),
ResponseRaw: func() string {
if config.Global.History.KeepResponses {
return FormatRawResponse(f)
}
return ""
}(),
}
if cb := b.onBeforeNewEntry; cb != nil {
if !cb(pending) {
+6
View File
@@ -6,6 +6,7 @@ import (
"charm.land/bubbles/v2/key"
tea "charm.land/bubbletea/v2"
"charm.land/lipgloss/v2"
"github.com/anotherhadi/spilltea/internal/db"
"github.com/anotherhadi/spilltea/internal/keys"
"github.com/anotherhadi/spilltea/internal/style"
@@ -299,5 +300,10 @@ func (m *Model) refreshBody() {
} else {
raw = e.RequestRaw
}
if raw == "" {
w, h := m.bodyViewport.Width(), m.bodyViewport.Height()
m.bodyViewport.SetContent(lipgloss.Place(w, h, lipgloss.Center, lipgloss.Center, style.S.Faint.Render(" (˘・_・˘)\nno response stored")))
return
}
m.bodyViewport.SetContent(style.HighlightHTTP(raw))
}