Fix new-question landing and question-language HITL
Publish documentation / publish (push) Successful in 34s

Reset the activity panel when starting a new question so the landing navigation is restored. Detect and persist the original question language, pass it through runtime and widget descriptors, and scope HITL controls to that language.

Validated with gate, session, backend and frontend tests, TypeScript checks, Ruff and strict docs build. Rebuilt and restarted local core/frontend; both healthy and serving HTTP successfully.
This commit is contained in:
Codex
2026-09-21 19:47:22 +02:00
parent 23e52c80de
commit bd416f7327
22 changed files with 232 additions and 43 deletions
+9 -3
View File
@@ -17,19 +17,25 @@ confirmation and is persisted directly — an option without a payload only asks
Continue records the complete join set), `reviewer_confirm` (gate on an artifact / phase transition). Free text
arrives via the "Altro/Other" option or by prefixing `!` in chat.
**Language contract:** the session manifest's `interaction_language` controls all
**Language contract:** session creation detects the original question's language and
pins it as `interaction_language` (the UI/CLI preference is only a fallback for
short or ambiguous input). The session manifest's `interaction_language` controls all
new reviewer questions, explanations, option labels and rationales, including prose
you generate inside review artifacts. It remains authoritative throughout the session,
including resume and steering from a browser using a different UI locale. The gate
injects this persisted language into each model turn; the language of these instructions
and examples does not select the output language.
and examples does not select the output language. Before each reviewer tool call,
check that every generated title, intro, question, option label, rationale and
artifact explanation is in that language. Rewrite mismatched prose before calling
the tool; retain identifiers and quoted source values verbatim.
`workspace.language` controls workspace-owned documents, catalog descriptions, Evidence
and interpretation of domain terms. Preserve quoted source content and prior decisions
verbatim. Keep SQL, identifiers, literal values and workspace artifacts unchanged by
the interaction preference. Ask about ambiguous domain terms in the interaction language.
For a legacy manifest without the field, run `tht session ensure-interaction-language
<id> --json` before interacting: it pins workspace language once and accepts no override.
<id> --json` before interacting: it detects the original question's language with
workspace language as fallback, pins it once and accepts no override.
## Phase map (advance cheat-sheet)