Skip to content

Add is_unmessagable to User#667

Merged
thebentern merged 6 commits intomasterfrom
attended-state
May 14, 2025
Merged

Add is_unmessagable to User#667
thebentern merged 6 commits intomasterfrom
attended-state

Conversation

@thebentern
Copy link
Contributor

@thebentern thebentern commented Mar 26, 2025

Some discussions of potential functionality around this field, albeit in some cases more complex proposals:
#586
meshtastic/firmware#6191

@GUVWAF
Copy link
Member

GUVWAF commented Mar 26, 2025

Since NodeInfo is not sent very often and this might not be a static setting, maybe we could add a uint32 to DeviceTelemetry instead? That could indicate the last connection to the API, and we could possibly define some magic numbers for if you want the permanent "is_attended" flag.

@garthvh
Copy link
Member

garthvh commented Mar 26, 2025

I think the last connected logic should not be something managed by the clients, a simple bool is much easier to deal with. While this data may be used in the firmware the clients just need to know if a node is available for messaging.

@GUVWAF
Copy link
Member

GUVWAF commented Mar 26, 2025

Yes, I also don't mean that this should be set by the client. The firmware can determine when a client was last detected.
If people are setting this initially but later forget to unset it when they no longer are connected to it, the bool has no value.
For me, I often only connect like once per day to my node. Do I then set it to true or not?

@thebentern
Copy link
Contributor Author

"Attended" is probably not the best term when we consider node usage like bots that are technically unattended but available for messaging. Perhaps "is_messageable"?

@GUVWAF
Copy link
Member

GUVWAF commented Mar 26, 2025

What about an enum with multiple states for "attendance"? E.g. never, always, daily, weekly, monthly or even "bot"? It would maybe not even take up more than a bool on the wire.

@garthvh
Copy link
Member

garthvh commented Mar 26, 2025

I am not really sure what advantage there is to more states, I just want to know if it should show in the user list and if you should be able to get to the dm screen from the node list. I think this should be binary, monitored or not.

the main goal is to stop people from using the 📵

@GUVWAF
Copy link
Member

GUVWAF commented Mar 26, 2025

When I'm in a new city for a couple hours, it doesn't really make sense to DM someone if they're only monitoring weekly. However, when it's my main node at home I can send a message and see if they respond within a week.

@GUVWAF
Copy link
Member

GUVWAF commented Mar 26, 2025

This is also more or less what was proposed by @NomDeTom and @caveman99 in #586.

@garthvh
Copy link
Member

garthvh commented Mar 26, 2025

When I'm in a new city for a couple hours, it doesn't really make sense to DM someone if they're only monitoring weekly. However, when it's my main node at home I can send a message and see if they respond within a week.

Weekly or monthly is no better than unattended for a messaging app. I really don't see much value in this. The primary complaint from users is they don't get a response when messaging local nodes, for a constantly changing ad hoc mesh network weekly or monthly is the same issue.

@GUVWAF
Copy link
Member

GUVWAF commented Mar 26, 2025

It's not (always) an instant messaging app. When I check in on my node at work every once in a while, if the other side is permanently monitored we can have a conversation when I'm there. If I would set the attended bool to true, they would expect an answer within a couple hours, but if I would set it to false we'd never had the conversation.

It's free information while you can still filter on node.attendance == NEVER, or make separate filters for each state.
I also generally don't want to talk to a bot, but it would be "messagable" just like a person that's permanently connected to the node.

Copy link
Member

@garthvh garthvh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, I do think is_messageable might be cleaner

@NomDeTom
Copy link

If these are optional fields, they don't add any additional overhead unless they're set, right? Is there any value in adding the other states that have been discussed since #586 ?

  • Static/mobile
  • Human/automated
  • attended/afk (in addition to is_messageable)

@thebentern thebentern changed the title Add is_attended to User Add is_unmessagable to User May 14, 2025
@thebentern thebentern requested a review from garthvh May 14, 2025 15:44
Copy link
Member

@garthvh garthvh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect, this will be a huge improvement

@thebentern thebentern merged commit 62f8677 into master May 14, 2025
2 checks passed
@thebentern thebentern deleted the attended-state branch May 14, 2025 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants