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
@@ -106,6 +106,19 @@ class FilesystemSessionRepository:
path = self._artifact_path(session_dir, key)
return path.read_text() if path.exists() else None
def ensure_interaction_language(
self, session_id: str, workspace_language: str
) -> SessionSnapshot:
from tht.session.store import pin_interaction_language
session_dir = self._session_dir(session_id)
with self._lock(session_dir):
self._require_existing(session_dir, session_id)
manifest = SessionManifest.from_yaml(session_dir / MANIFEST)
if pin_interaction_language(manifest, workspace_language):
self._write_manifest(session_dir, manifest)
return self.get(session_id)
def write_artifact(self, session_id: str, key: str, content: str) -> None:
session_dir = self._session_dir(session_id)
with self._lock(session_dir):