Skip to content

Add conversation views to 12 SMS/chat artifacts (Tier 1 + safe Tier 2)#925

Merged
abrignoni merged 2 commits into
mainfrom
tier1-conversation-views
Jul 3, 2026
Merged

Add conversation views to 12 SMS/chat artifacts (Tier 1 + safe Tier 2)#925
abrignoni merged 2 commits into
mainfrom
tier1-conversation-views

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Summary

Adds the LAVA threaded conversation data_view to the 9 chat artifacts whose existing columns already support it (metadata-only diffs, no parsing/schema changes):

Artifact Thread Direction sent-value Sender
SMS Messages (native mmssms.db) Thread ID Sent (from type CASE) Address + static 'Local User'
MeWe - Chat Thread Id (label: Thread Name) Sent User Name
Skype - Messages Thread ID Outgoing From ID
Line - Messages Thread ID Outgoing From ID
Viber - Messages Thread ID Outgoing From Phone Number
Bumble - Chat Messages Conversation ID Outgoing Sender Name
kleinanzeigen.de - Messages Counterparty Outgoing Counterparty + static 'Local User'
Burner - Communications Other Party Number Outgoing Contact Name + static 'Local User'
Life360 - Chat Messages Thread ID Yes (from message.sent) Sender Name

Every directionSentValue was verified against the literal value each query produces — not assumed from the header name. Artifacts with no sender column use sentMessageStaticLabel: 'Local User' (same pattern as burnerMessages #923).

Deliberately deferred (need query/header work, not just metadata)

  • WhatsApp - Messages — the 'Message ID' header actually contains key_remote_jid (the chat JID); fixing that mislabel should come with the view
  • MMS Messages (no direction column in output), smsmmsBackup (unmapped raw Type), textnow (thread col in SQL but not in headers), googleVoice messages, imo (no single thread column), RandoChat (unverified direction values), meetme/blueskymessages/wireMessenger/kijiji (no direction column)

Testing

  • pylint --disable=C,R on all 9 files → 10.00/10
  • PluginLoader: 9/9 views registered
  • Automated check: every view column ref validated against each artifact's actual data_headers — all valid
  • mediaColumn intentionally omitted this pass; can follow once media-typed columns are confirmed per artifact

abrignoni added 2 commits July 2, 2026 21:32
Wire the LAVA conversation data_view onto existing columns for: SMS Messages
(native mmssms.db), MeWe - Chat, Skype - Messages, Line - Messages,
Viber - Messages, Bumble - Chat Messages, kleinanzeigen.de - Messages,
Burner - Communications, and Life360 - Chat Messages.

Every directionSentValue was verified against the value each query actually
produces (e.g. SMS 'Sent' from the type CASE, Life360 'Yes' from message.sent,
'Outgoing' for the rest). Artifacts without a sender column use the
sentMessageStaticLabel 'Local User' pattern. Metadata-only; no parsing or
schema changes. last_update_date bumped on the touched artifacts.
- MMS Messages: select pdu.msg_box and emit a Direction column mapped via
  the documented Telephony.Mms constants (1 Received / 2 Sent / 3 Draft /
  4 Outbox), wording mirroring the SMS type CASE; conversation view with
  the Media column wired as mediaColumn.
- SMS and MMS Backup: map the backup XML's raw Telephony.Sms type into a
  Direction column (raw Type retained for fidelity); views for both SMS
  (thread=Address) and MMS (thread=Recipients, direction=mapped Message Box
  which already emits 'Sent').
@abrignoni abrignoni changed the title Add conversation views to 9 chat artifacts (Tier 1) Add conversation views to 12 SMS/chat artifacts (Tier 1 + safe Tier 2) Jul 3, 2026
@abrignoni abrignoni merged commit dcd8ec0 into main Jul 3, 2026
2 checks passed
@abrignoni abrignoni deleted the tier1-conversation-views branch July 3, 2026 04:08
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.

1 participant