Documentation
¶
Index ¶
- Constants
- Variables
- func CountSeparatorTokens(entries []jsonl.Entry) int
- func IsIdle(path string, threshold time.Duration) (bool, time.Time, error)
- type CleanAllResult
- type CleanLiveOpts
- type CleanLiveResult
- type DedupResult
- type DeleteResult
- type RepairResult
- type ReplaceImagesResult
- type RetryCleanResult
- type SplitResult
- type StripResult
- type TruncateResult
Constants ¶
const DefaultIdleThreshold = 2 * time.Second
DefaultIdleThreshold is the minimum time since last modification before a live edit is considered safe.
const TransparentPNG1x1 = "" /* 152-byte string literal not displayed */
TransparentPNG1x1 is a 1x1 transparent PNG encoded as base64.
Variables ¶
var ErrRaceDetected = errors.New("race detected: file modified during live edit")
ErrRaceDetected is returned when the JSONL file changes during a live edit, indicating Claude Code wrote between operations.
var ErrSessionNotIdle = errors.New("session not idle: mtime too recent")
ErrSessionNotIdle is returned when the session mtime is too recent to safely edit.
Functions ¶
func CountSeparatorTokens ¶ added in v0.3.0
CountSeparatorTokens estimates the token cost of separators in entries.
Types ¶
type CleanAllResult ¶ added in v0.3.0
type CleanAllResult struct {
ProgressRemoved int
SnapshotsRemoved int
SidechainsRemoved int
TangentsRemoved int
FailedRetries int
StaleReadsRemoved int
ImagesReplaced int
SeparatorsStripped int
OutputsTruncated int
TotalTokensSaved int
BytesBefore int64
BytesAfter int64
}
CleanAllResult holds the combined results of all cleanup operations.
func CleanAll ¶ added in v0.3.0
func CleanAll(path string) (*CleanAllResult, error)
CleanAll runs all cleanup operations in optimal order with a single backup. Order: entry deletions first, then content surgery.
type CleanLiveOpts ¶ added in v0.3.0
type CleanLiveOpts struct {
Aggressive bool // include Tier 4-5 (images, separators, truncation)
Threshold time.Duration // idle threshold (default: DefaultIdleThreshold)
}
CleanLiveOpts configures a live cleanup pass.
type CleanLiveResult ¶ added in v0.3.0
type CleanLiveResult struct {
ProgressRemoved int
SnapshotsRemoved int
ImagesReplaced int // Tier 4, only with Aggressive
SeparatorsStripped int // Tier 4, only with Aggressive
OutputsTruncated int // Tier 5, only with Aggressive
TotalTokensSaved int
BytesBefore int64
BytesAfter int64
}
CleanLiveResult holds the combined results of live cleanup operations.
func CleanLive ¶ added in v0.3.0
func CleanLive(path string, opts CleanLiveOpts) (*CleanLiveResult, error)
CleanLive runs safe cleanup operations on a potentially active session.
Tier 1: progress removal Tier 2: snapshot removal With Aggressive: Tier 4: image replacement, separator stripping Tier 5: bash output truncation
Between each sub-operation, the file mtime is checked. If it changed (meaning Claude Code wrote to it), the operation aborts and restores from the original backup.
Tier 6-7 operations (sidechains, tangents, retries, dedup) are NEVER available in live mode regardless of flags.
type DedupResult ¶ added in v0.3.0
type DedupResult struct {
StaleReadsRemoved int
EntriesRemoved int
BlocksRemoved int
ChainRepairs int
BytesBefore int64
BytesAfter int64
}
DedupResult holds the result of a duplicate read deduplication operation.
func DeduplicateReads ¶ added in v0.3.0
func DeduplicateReads(path string, dupResult *analyzer.DuplicateReadResult) (*DedupResult, error)
DeduplicateReads removes stale file read tool_use/tool_result pairs. For each stale read:
- If assistant message has only that tool_use → delete entire entry
- If assistant message has other blocks → remove just that tool_use block
- Remove the corresponding tool_result block from user message
- If user message only has that tool_result → delete entire entry
Always creates a backup before modifying.
type DeleteResult ¶
DeleteResult holds the result of a delete operation.
func Delete ¶
func Delete(path string, toDelete map[int]bool) (*DeleteResult, error)
Delete removes selected entries from a JSONL file, repairing parentUuid chains. Always creates a backup before modifying.
func RemoveProgress ¶
func RemoveProgress(path string) (*DeleteResult, error)
RemoveProgress removes all progress messages from a JSONL file. Always creates a backup before modifying.
type RepairResult ¶ added in v0.3.0
RepairResult holds the outcome of a repair operation.
type ReplaceImagesResult ¶
ReplaceImagesResult holds the result of an image replacement operation.
func ReplaceImages ¶
func ReplaceImages(path string) (*ReplaceImagesResult, error)
ReplaceImages replaces all base64 images with 1x1 transparent PNG placeholders. Always creates a backup before modifying.
type RetryCleanResult ¶ added in v0.3.0
type RetryCleanResult struct {
FailedRemoved int
EntriesRemoved int
BlocksRemoved int
ChainRepairs int
BytesBefore int64
BytesAfter int64
}
RetryCleanResult holds the result of a failed retry cleanup operation.
func RemoveFailedRetries ¶ added in v0.3.0
func RemoveFailedRetries(path string, retryResult *analyzer.RetryResult) (*RetryCleanResult, error)
RemoveFailedRetries removes failed tool attempts that were superseded by retries. For each failed sequence:
- Remove the tool_use block from the assistant message (or whole entry if only block)
- Remove the error tool_result block from the user message (or whole entry)
Always creates a backup before modifying.
type SplitResult ¶ added in v0.4.3
type SplitResult struct {
EntriesExtracted int
TokenCost int
DollarCost float64
TargetRepo string
ReExplFiles []string
OutputPath string
}
SplitResult holds the result of a split-to-markdown operation.
func SplitToMarkdown ¶ added in v0.4.3
func SplitToMarkdown(entries []jsonl.Entry, from, to int, meta *analyzer.RangeMetadata, sessionID, outputPath string) (*SplitResult, error)
SplitToMarkdown extracts entries[from:to+1] into a markdown file.
type StripResult ¶ added in v0.3.0
StripResult holds the outcome of separator stripping.
func StripSeparators ¶ added in v0.3.0
func StripSeparators(path string) (*StripResult, error)
StripSeparators removes decorative separator lines from assistant messages. Only modifies assistant entries. Creates a backup before writing.
type TruncateResult ¶ added in v0.3.0
type TruncateResult struct {
OutputsTruncated int
TokensSaved int
BytesBefore int64
BytesAfter int64
}
TruncateResult holds the result of an output truncation operation.
func TruncateOutputs ¶ added in v0.3.0
func TruncateOutputs(path string, threshold, keepLines int) (*TruncateResult, error)
TruncateOutputs truncates large Bash tool_result content to first+last keepLines lines. threshold is the minimum byte size to trigger truncation. keepLines is the number of lines to keep at the start and end.