fix: CommandStart(deep_link=False) now rejects deep-link arguments

Previously the deep_link parameter only had two effective states:
False (default) accepted any /start command regardless of arguments,
and True required arguments to be present.

Change the default to None (accept both, backward compatible) so that
False can mean "reject if deep-link arguments are present", which is
the intuitive expectation when explicitly passing deep_link=False.

Closes #1713

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Temrjan 2026-03-24 13:25:12 +05:00
parent 00c1130938
commit 79f92af746
3 changed files with 12 additions and 3 deletions

View file

@ -85,6 +85,9 @@ class TestCommandFilter:
False,
],
["/start test", CommandStart(), True],
["/start", CommandStart(), True],
["/start", CommandStart(deep_link=False), True],
["/start test", CommandStart(deep_link=False), False],
["/start", CommandStart(deep_link=True), False],
["/start test", CommandStart(deep_link=True), True],
["/start test", CommandStart(deep_link=True, deep_link_encoded=True), False],
@ -175,7 +178,7 @@ class TestCommandStart:
cmd = CommandStart()
assert (
str(cmd)
== "CommandStart(ignore_case=False, ignore_mention=False, deep_link=False, deep_link_encoded=False)"
== "CommandStart(ignore_case=False, ignore_mention=False, deep_link_encoded=False)"
)