diff --git a/docs/changelog.rst b/docs/changelog.rst index dddb3e462..aa8a10fa9 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -217,6 +217,9 @@ Detailed list of changes - Fix a packaging bug that could cause pipeline files to be omitted from some kitty builds +- :ac:`save_as_session`: Show an error instead of saving next to the directory + when the specified path is an existing directory (:iss:`10520`) + 0.49.0 [2026-09-21] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/kitty/session.py b/kitty/session.py index e108d4e7d..6a7d877fc 100644 --- a/kitty/session.py +++ b/kitty/session.py @@ -701,6 +701,9 @@ def save_as_session_part2(boss: BossType, opts: SaveAsSessionOptions, path: str, base_dir = os.path.abspath(os.path.expanduser(opts.base_dir)) path = os.path.join(base_dir, path) path = os.path.abspath(os.path.expanduser(path)) + if os.path.isdir(path): + boss.show_error(_('Invalid session path'), _('{} is a directory, specify a file name for the session').format(path)) + return if path_input_by_user and '.' not in os.path.basename(path): path += '.kitty-session' session = '\n'.join(boss.serialize_state_as_session(path, opts))