fix: persona_state SET body → canonical {pad:{pleasure,arousal,dominance}} + re-vendor Tier-3 prose (v0.19.7)
worldtree-dev landed the Tier-3 persona/memory/persona_state prose docs
(c9e59ec) — shapes that serialize as freeform Any in the OpenAPI, so the
prose markdown is their source of truth. Re-vendored docs/conversation-api-spec.md
(tolerate_drift markdown pin; worldtree-spec-rev 879cefe→c9e59ec).
Consumer alignment: --set-persona-pad / _set_persona_probe was building
{pad:[list]}, but the canonical POST /sessions/{id}/persona_state body (#317)
is {pad:{pleasure,arousal,dominance}} (named dict). Aligned the probe to the
named dict + a len!=3 guard; updated contract #2's note, the set_persona_state
docstring, and the tests. The set_persona_state wrapper was already correct
(freeform pass-through) — only the CLI probe's body construction drifted.
Suite 602 green. (Also this session: heid-code-review on the #347 slice
returned unanimous zero drift across all three panel arms.)
This commit is contained in:
+12
-1
@@ -1692,7 +1692,18 @@ class TestTier2Probes:
|
||||
)
|
||||
assert rc == 0
|
||||
assert "persona_state set" in capsys.readouterr().out
|
||||
assert _json.loads(route.calls[0].request.content) == {"pad": [0.4, 0.1, -0.2]}
|
||||
# canonical POST /sessions/{id}/persona_state body: named-key dict, NOT a list
|
||||
assert _json.loads(route.calls[0].request.content) == {
|
||||
"pad": {"pleasure": 0.4, "arousal": 0.1, "dominance": -0.2}
|
||||
}
|
||||
|
||||
def test_set_persona_wrong_count(self) -> None:
|
||||
"""set_persona_wrong_count [adversarial]: not exactly 3 floats → exit 10, no HTTP."""
|
||||
rc = main(
|
||||
["--set-persona-pad", "0.4,0.1", "--session", "s1",
|
||||
"--api-key", "k", "--server", "https://w.example"]
|
||||
)
|
||||
assert rc == 10
|
||||
|
||||
|
||||
class TestSeedFirstMessageProbe:
|
||||
|
||||
Reference in New Issue
Block a user