Skip to content

Android class 2: derived directions + conversation views for 6 chat artifacts#926

Merged
abrignoni merged 1 commit into
mainfrom
android-class2-views
Jul 3, 2026
Merged

Android class 2: derived directions + conversation views for 6 chat artifacts#926
abrignoni merged 1 commit into
mainfrom
android-class2-views

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Summary

Android counterpart to iLEAPP #1647/#1648: evidence-derived directions and LAVA conversation views, all validated against the 12-image Android test set before implementation.

Artifact Change Validation
WhatsApp One-To-One view only (Direction + partner column already emitted) ~5k rows, 'Outgoing' verified
WhatsApp Group view only ('Sending Party' = 'Self' on own messages) ~5k rows verified
Google Voice Messages view only Direction vocabulary verified in test data
Teleguard owner serverId from service table 'user' row (same db, same source as the iOS artifact) + chatId → Chat ID 42 msgs: 19 Out / 21 In / 2 blank (ownerless service rows stay blank)
FB Messenger (msys) local uid from threads_db2-uid (glob added to artifact paths); direction = sender_id == uid 3 images, e.g. 14 Out / 12 In; uid cross-checked against get_fb_user_id
IMO buid emitted as Chat Partner (real thread key); direction existed buid populated 22/22

When direction can't be established (missing uid file / ownerless rows), the column stays blank — never defaulted.

Testing

pylint 10.00/10 on all 5 files; byte-compile; PluginLoader 6/6 views registered; view column refs validated; derivation SQL/logic executed read-only against the real copied databases with the splits above.

Still on the Android backlog (need deeper source digging)

Google Messages RCS (Bugle self-participant), TikTok Android, Google Chat (owner row), Discord Android, Teams, GroupMe.

Validated against the 12-image Android test set:

- WhatsApp One-To-One and Group Messages: views only; both already emit
  Message Direction ('Outgoing') and a stable thread column (other
  participant / conversation name). ~10k real rows verified.
- Google Voice Messages: view only; Direction/Conversation ID verified in
  test data ('Outgoing'/'Incoming').
- Teleguard: owner serverId from the service table 'user' row (same db,
  same source as iOS); adds chatId as Chat ID. Validated 19/21 split with
  blanks on ownerless service rows.
- Facebook Messenger (msys): local uid read from the threads_db2-uid file
  (added to the artifact's paths); direction = sender_id == uid. Validated
  across 3 images (e.g. 14 Outgoing / 12 Incoming).
- IMO: emits buid as Chat Partner (thread was previously only derivable by
  From/To swap); direction already existed. buid populated 22/22 in test
  data.

New columns appended; existing column order unchanged.
@abrignoni abrignoni merged commit a2f913c into main Jul 3, 2026
2 checks passed
@abrignoni abrignoni deleted the android-class2-views branch July 3, 2026 05:11
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