feat(web): persona pane renders the relation_edge/1 affect model + per-value trend (v0.19.4)
The persona/affect pane read snap.valence (the pre-#265 shape) while Worldtree now emits snap.relations (relation_edge/1) — so the whole trust/warmth model rendered as an empty "valence (0)". Now renders the real signal, self-labelled: - MOOD (PAD, transient): pleasure/arousal/dominance with a one-word descriptor each. - RELATION → <target> (stage: <relation_context>): trust·ability / benevolence / integrity + warmth, each as value + evidence_count (n=) — the durable social model. - Per-value TREND: Δ-vs-previous (▲/▼) + a unicode sparkline auto-scaled to the value's own observed range (flat when sub-0.01 stable, so noise isn't amplified). History accumulates client-side, one sample/turn (deduped by emitted_at), capped at 24. - Falls back to the legacy snap.valence for an older emitter; INV-001 (no fabricated Tier-1 fields) + INV-004 (every cell escaped) preserved. Supersedes the #18-D2 valence assumption + retires the stale "regard dead axis" note. Verified: render logic asserted in node against the REAL affect.db snapshot + a perturbed 2nd sample (relations rendered, no "valence (0)", Δ ▲ shown, 2-char sparkline builds, INV-004 holds). JS syntax clean. No server change (static served per-request) — refresh + drive turns to watch the trends build.
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "ratatoskr"
|
||||
version = "0.19.3"
|
||||
version = "0.19.4"
|
||||
description = "Worldtree Conversation API debug TUI — multi-pane observability dashboard"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
|
||||
Reference in New Issue
Block a user