mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-12 14:15:14 +00:00
Type documentation now transitively includes the declared types a type's members reference, such that e.g. LspSymbolCollection's documentation includes LanguageServerSymbol. To avoid repeating widely shared types, the REPL tracks per session which types have been documented: a contained type documented earlier in the session is only pointed to (an explicit request always yields it in full). Since MCP provides no reliable session identification and clients keep a stdio server across conversations, the REPL's session identity is supplied by the LLM: the instructions (system prompt) establish a SerenaSession and state its id, and the REPL tool takes a required session_id parameter. Sessions are managed by a SessionRegistry (creation on demand, LRU eviction). Tools which may be called before the instructions have been read (activate_project, initial_instructions) are unchanged.