Skip to content

feat: add thread_originator_guid to message output#39

Merged
steipete merged 2 commits intosteipete:mainfrom
ruthmade:feat/reply-context-output
Feb 15, 2026
Merged

feat: add thread_originator_guid to message output#39
steipete merged 2 commits intosteipete:mainfrom
ruthmade:feat/reply-context-output

Conversation

@ruthmade
Copy link
Contributor

@ruthmade ruthmade commented Feb 4, 2026

Closes #30

Adds thread_originator_guid to message JSON output (history, watch, RPC). This is the field that correctly identifies which message an inline reply is responding to.

Why thread_originator_guid instead of reply_to_guid?

The database has multiple reply-related fields:

  • reply_to_guid — unreliable; often points to most recent message in conversation rather than actual reply target
  • thread_originator_guid — correct field; matches what iMessage UI shows as the reply target

Tested with real iMessage replies — the field correctly identifies the original message.

Changes:

  • MessageRepository.swift — query thread_originator_guid column
  • Message.swift — add threadOriginatorGUID property
  • MessageOutput.swift — include in JSON serialization

Adds thread_originator_guid field to JSON output for history, watch, and RPC.
This field contains the GUID of the message being replied to when users
use iMessage's inline reply feature.

This is the correct field for reply detection - it matches the UI's reply
target, unlike reply_to_guid which can point to different messages.

Closes steipete#30

Co-Authored-By: Claude <noreply@anthropic.com>
@steipete steipete merged commit f925847 into steipete:main Feb 15, 2026
1 check passed
@steipete
Copy link
Owner

Landed via temp rebase onto main.

  • Gate: make lint && make test
  • Land commit: ab8855a
  • Merge commit: f925847

Thanks @ruthmade!

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.

Feature request: Include reply_to_guid and thread_originator_guid in JSON output

2 participants