Skip to content

feat(links): add basic support for linking to messages#7623

Open
jrainville wants to merge 2 commits into
developfrom
feat/link-to-message
Open

feat(links): add basic support for linking to messages#7623
jrainville wants to merge 2 commits into
developfrom
feat/link-to-message

Conversation

@jrainville

Copy link
Copy Markdown
Member

Part of status-im/status-app#21457

status-app PR: status-im/status-app#21485

Implemented status-go support for message deep links end to end by adding new shared URL APIs to create and parse message links with chat ID and message ID payloads, extending shared URL type handling and tests for the new message-link format, and updating shared URL detection so message links are recognized consistently across the backend; we also updated link preview behavior to treat message links as navigational links (not unfurl targets) to avoid false preview failures, and finalized link generation to keep chat IDs readable in the URL path while preserving parser compatibility with previously generated encoded links.

@github-actions

github-actions Bot commented Jul 13, 2026

Copy link
Copy Markdown

⚠️ Companion PR Needs Update

#21485 is not using the latest status-go commit (f2f311edfd5658f944f0eceb3ff12cc13f126800).

Update vendor/status-go in the companion PR.

@status-im-auto

status-im-auto commented Jul 13, 2026

Copy link
Copy Markdown
Member

Jenkins Builds

Click to see older builds (12)
Commit #️⃣ Finished (UTC) Duration Platform Result
✖️ d3aaeee 1 2026-07-13 20:27:24 ~1 min tests-rpc-compat 📄log
✔️ d3aaeee 1 2026-07-13 20:29:01 ~3 min linux/status-go 📦zip
✔️ d3aaeee 1 2026-07-13 20:30:31 ~4 min macos/status-go 📦zip
✔️ d3aaeee 1 2026-07-13 20:33:40 ~7 min windows/status-go 📦zip
✔️ d3aaeee 1 2026-07-13 20:35:35 ~9 min tests 📄log
✔️ d3aaeee 1 2026-07-13 20:44:18 ~18 min tests-rpc 📄log
✖️ 14a5645 2 2026-07-14 16:04:11 ~1 min tests 📄log
✔️ 14a5645 2 2026-07-14 16:06:38 ~4 min linux/status-go 📦zip
✔️ 14a5645 2 2026-07-14 16:07:39 ~5 min windows/status-go 📦zip
✔️ 14a5645 2 2026-07-14 16:13:26 ~11 min macos/status-go 📦zip
✔️ 14a5645 2 2026-07-14 16:25:45 ~23 min tests-rpc 📄log
✔️ 14a5645 2 2026-07-14 16:39:05 ~36 min tests-rpc-compat 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ f6a0016 3 2026-07-17 14:27:15 ~23 min linux/status-go 📦zip
✔️ f6a0016 3 2026-07-17 14:27:15 ~23 min macos/status-go 📦zip
✔️ f6a0016 3 2026-07-17 14:27:59 ~24 min windows/status-go 📦zip
✖️ f6a0016 3 2026-07-17 14:31:09 ~27 min tests 📄log
✔️ f6a0016 3 2026-07-17 14:48:55 ~45 min tests-rpc 📄log
✔️ f6a0016 3 2026-07-17 15:10:56 ~1 hr 7 min tests-rpc-compat 📄log
✔️ f2f311e 4 2026-07-21 18:45:53 ~3 min linux/status-go 📦zip
✔️ f2f311e 4 2026-07-21 18:47:40 ~5 min windows/status-go 📦zip
✔️ f2f311e 4 2026-07-21 18:55:09 ~12 min macos/status-go 📦zip
✔️ f2f311e 4 2026-07-21 19:20:56 ~38 min tests-rpc-compat 📄log

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds end-to-end support in status-go for Status “message deep links” by introducing APIs to generate/parse message links (chat ID + message ID), ensuring shared URL detection recognizes these links, and preventing link preview unfurling from treating message links as preview targets.

Changes:

  • Added ShareMessageURL / ParseMessageURL utilities and MessageURLData type for message deep links.
  • Extended IsStatusSharedURL to recognize message-link prefixes (https/http/internal scheme).
  • Updated link preview unfurling to skip message links (treat as navigational, not unfurl targets), and added message-link tests.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
services/sharedurls/utils.go Implements message-link share/parse logic and expands shared URL detection.
services/sharedurls/types.go Adds MessageURLData payload type.
services/sharedurls/service_test.go Adds tests for sharing/parsing message links (legacy + internal scheme).
services/sharedurls/api.go Exposes message-link share/parse via the public RPC API.
services/linkpreview/link_preview.go Skips unfurling for message links to avoid false preview failures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread services/sharedurls/utils.go Outdated
Comment thread services/sharedurls/utils.go Outdated
Comment thread services/sharedurls/service_test.go
@codecov

codecov Bot commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.36036% with 44 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.14%. Comparing base (9a4e373) to head (d3aaeee).

Files with missing lines Patch % Lines
services/sharedurls/utils.go 65.04% 25 Missing and 11 partials ⚠️
services/linkpreview/link_preview.go 0.00% 3 Missing and 1 partial ⚠️
services/sharedurls/api.go 0.00% 4 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #7623      +/-   ##
===========================================
- Coverage    62.15%   62.14%   -0.01%     
===========================================
  Files          868      868              
  Lines       119785   119895     +110     
===========================================
+ Hits         74452    74509      +57     
- Misses       37714    37752      +38     
- Partials      7619     7634      +15     
Flag Coverage Δ
functional 42.07% <3.60%> (-0.02%) ⬇️
unit 55.90% <60.36%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
services/linkpreview/link_preview.go 83.05% <0.00%> (-2.92%) ⬇️
services/sharedurls/api.go 50.00% <0.00%> (-12.50%) ⬇️
services/sharedurls/utils.go 64.90% <65.04%> (-0.20%) ⬇️

... and 20 files with indirect coverage changes

@jrainville
jrainville force-pushed the feat/link-to-message branch 2 times, most recently from 14a5645 to f6a0016 Compare July 17, 2026 14:03

@noeliaSD noeliaSD left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general LGTM! I just added a couple of questions / comments!

Comment thread services/sharedurls/utils.go Outdated
for _, url := range urls {
logger.Debug("unfurling", zap.String("url", url))

if sharedurls.IsStatusSharedURL(url) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add a small test covering the intended link preview behavior for message links?

Comment thread services/sharedurls/utils.go Outdated
Part of status-im/status-app#21457

Implemented status-go support for message deep links end to end by adding new shared URL APIs to create and parse message links with chat ID and message ID payloads, extending shared URL type handling and tests for the new message-link format, and updating shared URL detection so message links are recognized consistently across the backend; we also updated link preview behavior to treat message links as navigational links (not unfurl targets) to avoid false preview failures, and finalized link generation to keep chat IDs readable in the URL path while preserving parser compatibility with previously generated encoded links.
@jrainville
jrainville force-pushed the feat/link-to-message branch from f6a0016 to f2f311e Compare July 21, 2026 18:41
@jrainville
jrainville requested a review from noeliaSD July 21, 2026 18:42

@noeliaSD noeliaSD left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

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.

5 participants