JuliusBrussee/caveman · error

token_budget must be a non-negative integer

Error message

token_budget must be a non-negative integer

What it means

Error "token_budget must be a non-negative integer" thrown in JuliusBrussee/caveman.

Source

Thrown at mem/cmd/cavemem/main.go:307

	}
	hits, err := store.Recall(args[0], mem.RecallOptions{Limit: limit, TokenBudget: tokenBudget})
	if err != nil {
		fmt.Fprintf(stderr, "recall: %v\n", err)
		return 1
	}
	writeJSON(stdout, map[string]any{"hits": hits, "basis": "inferred"})
	return 0
}

// externalTokenBudget distinguishes an omitted public option (safe default)
// from its explicit zero sentinel (unlimited). Negative public values fail
// closed instead of accidentally selecting an internal sentinel.
func externalTokenBudget(value *int) (int, error) {
	if value == nil {
		return 0, nil
	}
	if *value < 0 {
		return 0, fmt.Errorf("token_budget must be a non-negative integer")
	}
	if *value == 0 {
		return mem.UnlimitedTokenBudget, nil
	}
	return *value, nil
}

func cmdSupersede(store *mem.Store, args []string, stdout, stderr io.Writer) int {
	if len(args) < 2 {
		fmt.Fprintln(stderr, "usage: cavemem supersede <id> <text>")
		return 1
	}
	memory, err := store.Supersede(args[0], args[1])
	if err != nil {
		fmt.Fprintf(stderr, "supersede: %v\n", err)
		return 1
	}
	writeJSON(stdout, map[string]any{

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Set token_budget to a non-negative integer.

When it happens

Trigger: Thrown at mem/cmd/cavemem/main.go:307 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/95a68b63a40d4604. Report an issue: GitHub.