[package] name = "jouleclaw-stuck" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Stuck-pattern detector over a JouleClaw run journal. Reads jouleclaw-graph::Journal entries and emits typed StuckSignal events: repeat-intent (same node fails twice), explicit-complaint (user message tagged 'frustrated'), session-abandonment (no further activity after a failure), clustered-tool-failures (≥N failures on one tool inside a window). Pluggable StuckDetector trait so callers add domain-specific detectors; in-tree bundle is the four reference detectors. The high-signal sampler that feeds jouleclaw-experiment: a stuck→resolved transition is what tells the experiment system which knowledge entries actually helped." [dependencies] jouleclaw-graph = { path = "../jouleclaw-graph" } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } [dev-dependencies] jouleclaw-energy = { path = "../jouleclaw-energy" }