diff --git a/src/cmdforge/gui/pages/tools_page.py b/src/cmdforge/gui/pages/tools_page.py index f4fb928..b74c51f 100644 --- a/src/cmdforge/gui/pages/tools_page.py +++ b/src/cmdforge/gui/pages/tools_page.py @@ -118,14 +118,9 @@ def get_tool_publish_state(tool_name: str) -> Tuple[str, Optional[str]]: if not registry_hash: return ("local", None) - # Compute hash the same way as publish: load Tool object and use to_dict() - # This ensures we compare the same normalized representation - tool = load_tool(tool_name) - if tool: - current_hash = compute_config_hash(tool.to_dict()) - else: - # Fallback to raw config if Tool can't be loaded - current_hash = compute_config_hash(config) + # Compute hash from raw config, same as server does during publish + # Don't use to_dict() as it may add/remove fields (e.g., empty arguments: []) + current_hash = compute_config_hash(config) if current_hash != registry_hash: return ("modified", registry_hash)