{"record":{"id":"16331ba876a69906","repo":"HKUDS/nanobot","slug":"model-preset-name-default-is-reserved-for-agents","errorCode":null,"errorMessage":"model_preset name 'default' is reserved for agents.defaults","messagePattern":"model_preset name 'default' is reserved for agents\\.defaults","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"nanobot/config/schema.py","lineNumber":469,"sourceCode":"            _resolve_tool_config_refs()\n        super().__init__(**values)\n\n    def bind_source_path(self, path: Path) -> None:\n        \"\"\"Record the config file that owns instance-level runtime data.\"\"\"\n        self._source_path = path.expanduser().resolve(strict=False)\n\n    @property\n    def runtime_data_dir(self) -> Path | None:\n        \"\"\"Return the active instance data directory when loaded from a config path.\"\"\"\n        return self._source_path.parent if self._source_path is not None else None\n\n    @model_validator(mode=\"after\")\n    def _validate_model_preset(self) -> \"Config\":\n        # Keep persisted names accepted by previous releases loadable. New\n        # names are normalized and checked case-insensitively at mutation\n        # boundaries, where conflicts can be reported without breaking startup.\n        if \"default\" in self.model_presets:\n            raise ValueError(\"model_preset name 'default' is reserved for agents.defaults\")\n        name = self.agents.defaults.model_preset\n        if name and name != \"default\" and name not in self.model_presets:\n            raise ValueError(f\"model_preset {name!r} not found in model_presets\")\n        dream_name = self.agents.defaults.dream.model_override\n        if dream_name and dream_name != \"default\" and dream_name not in self.model_presets:\n            raise ValueError(f\"Dream model preset {dream_name!r} not found in model_presets\")\n        for fallback in self.agents.defaults.fallback_models:\n            if isinstance(fallback, str) and fallback not in self.model_presets:\n                raise ValueError(f\"fallback_models entry {fallback!r} not found in model_presets\")\n        return self\n\n    def resolve_default_preset(self) -> ModelPresetConfig:\n        \"\"\"Return the implicit `default` preset from agents.defaults fields.\"\"\"\n        d = self.agents.defaults\n        return ModelPresetConfig(\n            model=d.model, provider=d.provider, max_tokens=d.max_tokens,\n            context_window_tokens=d.context_window_tokens,\n            temperature=d.temperature, reasoning_effort=d.reasoning_effort,","sourceCodeStart":451,"sourceCodeEnd":487,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/config/schema.py#L451-L487","documentation":"Error \"model_preset name 'default' is reserved for agents.defaults\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/config/schema.py:469 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}