JuliusBrussee/caveman · error

session-value promotion artifact has no actions

Error message

session-value promotion artifact has no actions

What it means

Error "session-value promotion artifact has no actions" thrown in JuliusBrussee/caveman.

Source

Thrown at proxy/routing/session_value.go:29

	"strings"
	"time"
)

const (
	SessionValueArtifactSchema               = "caveman.router.session-value-policy.v1"
	SessionValueStateSchema                  = "router-state-metadata-v1"
	SessionValueRouterVersion                = "session-value-v1"
	SessionValuePromotionMinEffectiveSamples = 100
	SessionValuePromotionMaxCalibrationError = 0.10
	SessionValuePromotionMaxBrierScore       = 0.25
)

// ValidateSessionValuePromotionEvidence applies evidence floors beyond
// structural artifact validity. Runtime may evaluate a structurally valid
// shadow artifact; traffic promotion requires calibrated sample floors.
func ValidateSessionValuePromotionEvidence(artifact SessionValuePolicyArtifact) error {
	if len(artifact.Actions) == 0 {
		return errors.New("session-value promotion artifact has no actions")
	}
	for _, action := range artifact.Actions {
		if action.RewardEffectiveSampleSize < SessionValuePromotionMinEffectiveSamples ||
			action.CostEffectiveSampleSize < SessionValuePromotionMinEffectiveSamples ||
			action.QualityCalibrationError > SessionValuePromotionMaxCalibrationError ||
			action.RewardBrierScore > SessionValuePromotionMaxBrierScore {
			return fmt.Errorf("session-value action %s lacks promotion evidence", action.ActionID)
		}
	}
	return nil
}

var sessionValueFeatureVocabulary = map[string]struct{}{
	"turn_index": {}, "user_turns": {}, "subagent_turns": {}, "tool_calls": {},
	"corrective_turns": {}, "input_tokens_estimate": {}, "tools_count": {},
	"stream": {}, "json_mode": {}, "vision": {}, "audio": {},
	"cache_read_tokens": {}, "cache_write_tokens": {}, "uncached_tokens": {},
	"cache_age_ms": {}, "spent_session_usd": {}, "budget_remaining_usd": {},

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Include at least one action in the session-value promotion artifact.

When it happens

Trigger: Thrown at proxy/routing/session_value.go:29 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/a2b0c4e04c9a8046. Report an issue: GitHub.