feat: expose inbound mini-app content - #4
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
📜 Recent review details🧰 Additional context used📓 Path-based instructions (3)**/*.{go,md}📄 CodeRabbit inference engine (AGENTS.md)
Files:
**/*.go📄 CodeRabbit inference engine (AGENTS.md)
Files:
go.mod📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧠 Learnings (4)📚 Learning: 2026-06-24T07:58:36.513ZApplied to files:
📚 Learning: 2026-06-24T07:58:36.513ZApplied to files:
📚 Learning: 2026-06-24T07:58:36.513ZApplied to files:
📚 Learning: 2026-06-24T07:58:36.513ZApplied to files:
🔇 Additional comments (7)
📝 WalkthroughWalkthroughThe PR adds optional MiniApp data to decoded messages, maps protobuf metadata and layout fields, adds end-to-end coverage, and updates the project’s minimum Go version and dependency set to Go 1.25. ChangesMiniApp message support
Estimated code review effort: 3 (Moderate) | ~20 minutes Mergeability Score: ⚪ Minimal · up to The PR adds inbound mini-app content mapping and updates the supported Go toolchain, with validation covering the stated behavior; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant CatchUpFixture
participant Unmarshaller as proto.Unmarshal
participant MessageConverter as messageContentFromProto
participant MiniAppConverter as miniAppContentFromProto
CatchUpFixture->>Unmarshaller: serialized catch-up event
Unmarshaller->>MessageConverter: decoded message payload
MessageConverter->>MiniAppConverter: optional MiniApp payload
MiniAppConverter->>MessageConverter: converted MiniAppContent
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Summary
Message.content.mini_appas stable Go domain types onMessageContent.MiniAppWhy
advanced-imessage-server v11.3.0 emits decoded public mini-app card fields, but the Go client was pinned to a pre-v11.3 schema and its domain conversion discarded that content. Consumers therefore could not recognize inbound mini-app messages.
This mirrors the generated TypeScript client update in advanced-imessage-ts#52 and enables the Spectrum receive mapping in spectrum-ts#236.
API impact
MessageContentgains an optionalMiniApp *MiniAppContentfield. The new domain structs contain only public semantic fields; generated protobuf types do not escape the conversion layer.The latest generated Connect module requires Go 1.25, so the documented minimum and CI matrix now cover Go 1.25 and 1.26.
Validation
GOTOOLCHAIN=go1.25.7 go test ./...GOTOOLCHAIN=go1.26.0 go test ./...make check— tidy, vet, and race tests pass; golangci-lint was not installed and the repository target skipped itmake test-interopCatchUpEventsResponsewire fixture maps all mini-app identity, URL, session, App Store, live-state, and visible layout fieldsSummary by CodeRabbit
New Features
Compatibility
Bug Fixes