v-va*

VA.2026.011 · Floor 01 · hall 11

VA-Chat

collection Exnest VA Collection
accession VA.2026.011
classification Chat Runtime · Persona Compose · LLM Orchestration · TypeScript Library
floor Floor 01
status in development
condition proven · 7/7 live probes · ~35/35 long-convo clean
acquired 2026
revision Rev. A
drawing DWG-011
room 01 curator sheet 01 / 09 · rev Rev. A

“anyone can speak; staying in character for thirty-five turns is the exhibit.”

VA-Chat is the how of speech, nothing else. Who is meant arrives from an identity bridge, what happened stays in memory, how things connect lives in the graph — this room only turns a definition seed into a composed persona, runs it through a language model, and enforces that the reply stays in character. No persona is hardcoded here; every quirk — address terms, occupation, lore — is pulled dynamically per turn, so registering a new identity needs no change to the runtime.

The composition splits the persona into canon and improvisation: the canon declares personality, lore, and history that later replies may embody but never contradict, while improvisation is allowed only its momentary feeling. A scene string, opaque to this library, grounds every claim about place or activity — without it, the voice is forbidden from inventing a life. Speech-act hints steer gratitude, farewell, venting, and identity probes toward the last thing the visitor actually said.

Guarantees are preventive, not detective. Dynamic patterns built from the resolved name catch identity misses and force a retry; greeting and support-bot closings are rejected and recomposed; a two-detector taxonomy flags drift, collapse, and topic jumps across long conversations. The subject's voice is withheld from every seed in this hall — probes run against anonymized masks — because the exhibit studies how a voice holds, not whose voice it is.

VA.2026.011

VA-Chat

Chat Runtime · Persona Compose · LLM Orchestration · TypeScript Library


artist / curator
v-va
date
2026 — present (v0.1.0 · 17 commits · 22 Sep – 27 Oct 2026 · HTTP + persist planned)
status
in development
condition
proven · 7/7 live probes · ~35/35 long-convo clean
medium
persona compose · identity bridge adapters · speech-act hints · auto-mustMatch retry · turn-flag detectors · live + long-convo harness
phases
04 core + 02 planned
contract guards
A1–F2
live probes
7/7
long-convo
~35/35 clean
cross-persona leak
0
acquired
2026
revision
Rev. A
origin
split off where replies kept slipping into helpdesk tone, 2026
room 02 evolution of this work sheet 02 / 09
2026

Phase 01–02 — Scaffold & Compose

Library shell plus validated shapes; persona composed as natural prose where traits never glue themselves to job titles.

2026

Phase 03 — Service & Runtime

Chat service over a model client reads keys from environment; production compose body becomes the primary contract.

2026

Phase 04 — Proven Voice

Unit, smoke, and gated live suites green; seven probes pass and thirty-five-turn conversations hold character with zero cross-mask leakage.

2026

Revision 01–03 — Stability

Long-conversation and grounding revisions land scene contracts, speech-act handling, and frozen compose boundaries — shipped as documented proof.

2026

Phase 05–06 — Route & Persist (planned)

HTTP adapter and persistence wait as plan documents; the library stays framework-free until then.

2026

Revision 04 — Memory Bridge

An isolated memory bridge and composer layer let recall arrive as context without the chat library ever importing the memory engine.

2026

Revision 05 — Model Chores

Reasoning blocks are stripped from replies, and a compose path returning an error or non-JSON now falls back instead of surfacing a broken turn.

2026

Revision 06 — Backbone

Assertiveness became structural: the persona may push back, complain, or refuse, with provoke and defend as declared speech acts rather than accidents of tone.

2026

Revision 07 — Time Awareness

A shared time describer plus time-pattern guards, so a greeting at the wrong hour is caught before it leaves the room. Exported as part of the library barrel.

concepts — kept & discarded

kept — persona-agnostic runtime; zero hardcoded identity in the library

rejected — direct imports of identity or memory; only opaque bridges cross

held — HTTP route and persistence wait for phases 05–06

archive ref — VA.2026.011/CON

cross ref — timeline fig. 01

room 03 original sketches sheet 03 / 09

curator annotations

on masks

a runtime that names its personas has already failed — pull them, never keep them.

on scenes

without a scene the voice may feel; it may not claim to have been anywhere.

on retries

detect the miss cheaply, pay for the retry gladly — vagueness costs more.

fig. 01 — VA.2026.011.a the composed mask prompt· canon + improvisation · live what is true versus what is merely felt — the split every reply obeys.
fig. 02 — VA.2026.011.b the bridge, not the import adapter· 3 adapters · live in-process, http, noop — identity arrives without the library ever touching it.
fig. 03 — VA.2026.011.c the must-match mechanism· retry on miss · active a missed name is not answered vaguely — it is recomposed until it lands.
fig. 04 — VA.2026.011.d the flag taxonomy detector set· A1–F2 · tuned cheap universal guards plus costly dynamic ones — prevention priced per turn.
room 04 interface reviews sheet 04 / 09
fig. 05 — VA.2026.011.e speak as someone render chatAsCharacter — resolve, compose, speak, all from one bridge lookup
fig. 06 — VA.2026.011.f seven probes render live:eval — identity, occupation, address, and tone under live fire
fig. 07 — VA.2026.011.g thirty-five turns render long:convo — the voice thirty turns later, still itself
room 05 catalog record sheet 05 / 09
materialspersona compose · identity bridge adapters · speech-act hints · auto-mustMatch retry · turn-flag detectors · live + long-convo harnessdimensionsphases — 04 core + 02 planned · contract guards — A1–F2 · live probes — 7/7 · long-convo — ~35/35 clean · cross-persona leak — 0
conditionproven · 7/7 live probes · ~35/35 long-convo cleanacquired2026
revisionRev. Aarchive locationDWG-011 · floor Floor 01
internal referenceVA.2026.011/Moriginsplit off where replies kept slipping into helpdesk tone, 2026
room 06 the archive sheet 06 / 09

failed experiments

✕ 2026

the invented afternoon

without scene grounding the voice claimed places and activities it never had. scenes are now mandatory for physical claims.

✕ 2026

the helpdesk slip

replies decayed into assistant closings over long runs. in-character asserts now reject and recompose them.

✕ 2026

the unfair judge

the evaluator punished echoed visitor facts as leaks. user-facts and subject-facts are now judged apart.

draft concepts

  • compose contract sketch
  • bridge adapter matrix
  • flag taxonomy table
  • revision freeze checklist

research notes

— canon versus improvisation is the only split that stops invented life facts without flattening tone.

— exact patterns beat blended scores for names — let the certain short-circuit first.

— evaluators need the same fairness as models: visitor facts are not leaks, only subject facts are.

room 07 architecture · technical drawing DWG-011 · rev Rev. A
DWG-011 · Rev. A · floor plan — VA-Chat curator annotation — zones 03–05 are load-bearing; the presence layer must remain unshaded.
room 08 design statement sheet 08 / 09

I. Pull, never keep

The runtime owns no persona. Every turn resolves its mask fresh from the bridge — that is why a new identity costs the library nothing.

II. Prevent, don't detect

A guard that only reports drift is a critic; this room retries instead. The reply the visitor sees has already survived its own correction.

III. Feel without inventing

Emotion is always allowed its moment; facts are never allowed invention. The scene decides which claims the voice may make.

room 09 related works & future vision sheet 09 / 09

future vision

VA-Chat stays a library until phases five and six: an HTTP adapter for consumers that want a route, persistence for those that want a record. Until then it keeps proving the same thing nightly — that a voice with a contract can hold itself for thirty-five turns without becoming anyone else.