Skip to content

Unify messaging delivery and native chat history - #169

Open
fmhall wants to merge 4 commits into
mainfrom
mason/migrate-reaction-delivery
Open

fmhall wants to merge 4 commits into
mainfrom
mason/migrate-reaction-delivery

Conversation

@fmhall

@fmhall fmhall commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Replying to an older iMessage now supplies its message ID and part index in durable history. Reactions use an explicit target, one validated Unicode emoji, and an add/remove operation.

All messaging tools share one awaited delivery function. It checks the authenticated destination, validates reaction conversation membership, preserves scoped private images and reply fallback, and uses stable tool-call, contact, or scheduled-report delivery keys. Provider errors fail the tool; channel callbacks retain inbound/authentication and lifecycle handling without posting completed messaging-tool results again.

The browser transcript is projected once from ordered Eve events, preserving overlapping-input order, quoted-part previews, targeted reactions, attachments, and literal annotation text. Full trace uses Eve's reduced messages. The separate delivery map, presentation map, suppression set, and content-override prop are removed. The ingress formatter and UI parser share their annotation contract.

Validation:

  • pnpm check: six tasks passed; 956 tests across 100 files.
  • pnpm build: passed.
  • pnpm test:runtime: two cases and 13 gates passed.
  • Real-model reaction/history evals: five cases and 33 gates passed in the final run. The pre-cleanup baseline missed the quoted-reaction case; the passing final sample does not establish causality.
  • Local Chrome desktop/mobile testing with structured history fixtures in the production UI: history loading, quoted second image, reaction add/remove, legacy/custom emoji, delivered messages, literal annotations with uploads, trace metadata, thumbnail loading, and layout passed. Temporary fixture removed and task services stopped.
  • Independent review and one fresh re-review: clean after restoring the awaited browser scheduled-report finalization regression.

The cleanup removes 276 lines of application code from the previous PR revision. Live Linq phone delivery remains unverified.

@fmhall fmhall changed the title Migrate reactions to explicit targets and awaited delivery Persist message references and migrate reaction delivery Oct 5, 2026
@fmhall fmhall changed the title Persist message references and migrate reaction delivery Persist message references and render reactions on their targets Oct 5, 2026
@fmhall fmhall changed the title Persist message references and render reactions on their targets Unify messaging delivery and native chat history Oct 5, 2026

This branch was successfully deployed

1 active deployment
Preview — a4524323 Deployed Oct 5, 2026 by vercel[bot]
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