Chat+ link previews: a link in a chat shows its page's title, text and picture, YouTube playable in place
X's web chat shows a link as a bare card. An X tab on a chat page may now ask native code (link_preview, x-capture only, chat pages only) for one link's preview. Native code fetches it: https and public hosts only (addresses checked and pinned), never X's hosts, no cookies or referrer, redirects re-checked, page head <= 512 KB, images <= 1.5 MB by magic bytes as data:, 30 fetches a minute, memory-only cache. Only the link leaves the page. On by default (owner, 2026-10-10).
This commit is contained in:
parent
96f909c110
commit
328264bfe1
21 changed files with 1455 additions and 519 deletions
|
|
@ -25,6 +25,8 @@ desktop = [
|
|||
"waybetter-host/app",
|
||||
"waybetter-host/net",
|
||||
"waybetter-host/macos-private-api",
|
||||
"dep:reqwest",
|
||||
"dep:rustls",
|
||||
]
|
||||
|
||||
[build-dependencies]
|
||||
|
|
@ -52,6 +54,9 @@ url = "2"
|
|||
tauri-plugin-deep-link = { version = "2", optional = true }
|
||||
# Gallery folder picker, driven from Rust only (no JS capability grants the dialog plugin).
|
||||
tauri-plugin-dialog = { version = "2", optional = true }
|
||||
# Chat+ link previews (src/link_preview.rs): the same client the host's store uses, no cookies.
|
||||
reqwest = { version = "0.13", default-features = false, features = ["rustls-no-provider"], optional = true }
|
||||
rustls = { version = "0.23", default-features = false, features = ["ring"], optional = true }
|
||||
sha2 = "0.10"
|
||||
base64 = "0.22"
|
||||
# Encrypted settings sync (a folder the owner picks): Argon2id key from the passphrase,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue