• feat(web): context-injection panel — reconstruct the full hidden affect block (v0.20.2)

    vh released this 2026-07-06 23:12:16 -07:00 | 146 commits to main since this release

    The affect console now reconstructs + displays the complete affect-context block
    Worldtree assembles into the agent's system prompt — never on any wire, hidden from
    regular consumers, surfaced here as the reference-impl's privileged dev view.

    • extend build_persona_canon.py to emit mood_directive {occ_directives (15),
      pad_band_fallback, salience, pad_band_cutoff, full_only} into the browser canon
      (strings were already in the pinned d2-mood-render-canon; regen via Worldtree loader)
    • canonPadFallback(pad) + canonEmotionDirective(type): byte-exact mirrors of Worldtree
      core/persona/renderer._pad_band_fallback + derive_directive
    • renderDirective -> a "CONTEXT INJECTION · reconstructed · hidden from consumers" panel:
      mood descriptor [exact] + mood directive [candidate] + relationship directive [exact]
    • honest-partial (affect-egress-reference sec 3): affect.emit is type-only (no
      intensity), so the salience gate can't be evaluated -> show BOTH the OCC emotion
      directive AND the PAD-band fallback with the "injected if intensity >= 0.2" caveat,
      never asserting which fires; fallback alone is exact when no dominant_emotion
    • vendor + pin affect-egress-consumer-reference.md (tolerate_drift; worldtree-dev
      co-signs + pings on change). drift 6/6 green
    • contract amended for the new reconstruction fns + honest-partial provenance

    Verified: pytest tests/test_web_* (84) + node Playwright (sindra dominant_emotion=joy
    -> joy OCC directive candidate + PAD-band fallback both render with exact/candidate tags).

    Downloads