Skip to content

Class 2: derived directions + conversation views for Slack, Life360, TikTok - #1647

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

Class 2: derived directions + conversation views for Slack, Life360, TikTok#1647
abrignoni merged 1 commit into
mainfrom
class2-conversation-views

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Summary

Adds evidence-derived Direction columns and LAVA conversation views to three artifacts whose databases record the account owner. Every derivation was validated against real test extractions (11-image validation set) before implementation.

Artifact Direction source Thread added Validation result
Slack (ModelDatabase) ZCOREDATAUSER.ZISME — join already present (Conversation ID existed) 61 msgs: 28 Sent, all from the ZISME user; 33 Received
Life360 Chat ZCHATMEMBER.ZISLOGGEDINUSER — join already present ZTHREAD → Thread ID Cross-device proof: same CTF conversation on two phones — owner's device shows Outgoing, counterpart's device shows those messages Incoming
TikTok Messages sender == account id (account already derived from the ChatFiles/<account>/ path) belongingConversationIdentifier → Conversation ID 44 msgs: 25/19 split across 17 conversations

Notes

  • Life360's existing Sent Status column is delivery state, not direction — it reads 'Sent' on incoming messages (verified in CTF data). It's retained as-is; the new Direction column is the direction truth.
  • All new columns appended at the end; existing column order unchanged.
  • No external/analyst input used — every derivation comes from data inside the evidence.

Testing

pylint 10.00/10 (3 files); byte-compile; PluginLoader 3/3 views registered; view column refs validated against data_headers; the exact new SQL executed read-only against the real copied databases from the validation runs with the splits shown above.

Each direction comes from data already in the evidence, validated against
real test extractions:

- Slack (ModelDatabase): CASE on ZCOREDATAUSER.ZISME via the join the query
  already performs. Validated: 61 msgs split 28 Sent (all from the ZISME
  user) / 33 Received.
- Life360: CASE on ZCHATMEMBER.ZISLOGGEDINUSER via the existing sender join,
  plus ZTHREAD as Thread ID. Validated on two devices of the same CTF
  conversation: owner's phone shows Outgoing, counterpart's phone shows the
  same messages Incoming. (The existing Sent Status column is delivery
  state, not direction - it reads 'Sent' for incoming messages.)
- TikTok: direction by comparing sender to the account id (already derived
  from the ChatFiles/<account>/ path), plus belongingConversationIdentifier
  as Conversation ID. Validated: 44 msgs split 25/19 across 17 conversations.

New columns appended; existing column order unchanged. Conversation views
wired for all three.
@abrignoni
abrignoni merged commit a0cc9d6 into main Jul 3, 2026
1 check passed
@abrignoni
abrignoni deleted the class2-conversation-views branch July 3, 2026 04:20
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