diff --git a/GramAddict/core/perception/screen_identity.py b/GramAddict/core/perception/screen_identity.py
index 9eb8f1e..a965197 100644
--- a/GramAddict/core/perception/screen_identity.py
+++ b/GramAddict/core/perception/screen_identity.py
@@ -178,6 +178,8 @@ class ScreenIdentity:
return ScreenType.FOLLOW_LIST
if "profile_header_container" in ids:
+ if selected_tab == "profile_tab":
+ return ScreenType.OWN_PROFILE
return ScreenType.OTHER_PROFILE
# Reels structural markers — present even when Instagram hides the tab bar
diff --git a/tests/unit/test_screen_identity_profile.py b/tests/unit/test_screen_identity_profile.py
new file mode 100644
index 0000000..c7ec089
--- /dev/null
+++ b/tests/unit/test_screen_identity_profile.py
@@ -0,0 +1,39 @@
+import pytest
+from GramAddict.core.perception.screen_identity import ScreenIdentity, ScreenType
+
+def test_screen_identity_own_profile_vs_other_profile():
+ identity = ScreenIdentity("marisaundmarc")
+
+ # When we are on our OWN profile, 'profile_tab' is selected,
+ # but 'profile_header_container' is ALSO present.
+ # The bug is that 'profile_header_container' shadows 'profile_tab' selected=True.
+
+ # Let's create an XML dump that mimics this scenario:
+ own_profile_xml = """
+
+
+
+
+ """
+
+ result = identity.identify(own_profile_xml)
+
+ assert result["screen_type"] == ScreenType.OWN_PROFILE, "Failed! own profile was classified as OTHER_PROFILE because profile_header_container shadowed it."
+
+def test_screen_identity_other_profile_vs_own_profile():
+ identity = ScreenIdentity("marisaundmarc")
+
+ # When we are on someone ELSE's profile, 'profile_tab' is NOT selected
+ # (or maybe 'feed_tab' or 'search_tab' is selected, or none).
+ # And 'profile_header_container' is present.
+
+ other_profile_xml = """
+
+
+
+
+ """
+
+ result = identity.identify(other_profile_xml)
+
+ assert result["screen_type"] == ScreenType.OTHER_PROFILE, "Failed! other profile was not classified as OTHER_PROFILE."