Add full shell, replaceable Omics adapter and bilingual interaction

Implement approved specification #32 and tickets #33-#37. Keep host authentication server-verified and pin session interaction language. Compile scoped base selectors for browser compatibility and retain full gutters during CSS pruning.
This commit is contained in:
Codex
2026-09-13 14:26:39 +02:00
parent 2d1b714ebe
commit d8a29bfbdd
207 changed files with 8570 additions and 2164 deletions
+9 -1
View File
@@ -8,7 +8,7 @@ from typing import Literal, Self
import portalocker
import yaml
from pydantic import BaseModel, ConfigDict, Field
from pydantic import BaseModel, ConfigDict, Field, field_validator
from tht.decisions import DecisionRecord
@@ -119,10 +119,18 @@ class SessionManifest(_YamlModel):
thinking: str | None = None
workspace_id: str | None = None
workspace_revision: str | None = None
interaction_language: str | None = None
name: str | None = None
archived: bool = False
group: str | None = None
@field_validator("interaction_language")
@classmethod
def valid_interaction_language(cls, value: str | None) -> str | None:
from tht.session.language import validate_language_tag
return validate_language_tag(value) if value is not None else None
class SessionSnapshot(BaseModel):
"""The current persisted session state, excluding the non-persistent chat stream."""