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:
CRTkafa 2026-10-10 21:47:31 +08:00
parent 96f909c110
commit 328264bfe1
21 changed files with 1455 additions and 519 deletions

View file

@ -1,25 +1,26 @@
fn main() {
#[cfg(feature = "desktop")]
tauri_build::try_build(tauri_build::Attributes::new().app_manifest(
// X's own commands; `manifest` adds the ones the wayBetter host serves for every app
// (`waybetter_host::commands`: tab layout and actions, shell raise, profiles, language,
// the plugins folder and custom CSS, the tweak flags, the shell's settings).
tauri_build::AppManifest::new().commands(waybetter_host::commands::manifest(&[
"capture_draft",
"column_configure",
"tab_report",
"drafts_picker_open",
"tab_insert_text",
"drafts_popover_dismiss",
"drafts_hint",
"popover_state",
"popover_drafts",
"popover_insert",
"popover_close",
"popover_open_vault",
"keyword_alert",
"tab_attach_image",
])),
))
.expect("Tauri build configuration must be valid");
}
fn main() {
#[cfg(feature = "desktop")]
tauri_build::try_build(tauri_build::Attributes::new().app_manifest(
// X's own commands; `manifest` adds the ones the wayBetter host serves for every app
// (`waybetter_host::commands`: tab layout and actions, shell raise, profiles, language,
// the plugins folder and custom CSS, the tweak flags, the shell's settings).
tauri_build::AppManifest::new().commands(waybetter_host::commands::manifest(&[
"capture_draft",
"column_configure",
"tab_report",
"drafts_picker_open",
"tab_insert_text",
"drafts_popover_dismiss",
"drafts_hint",
"popover_state",
"popover_drafts",
"popover_insert",
"popover_close",
"popover_open_vault",
"keyword_alert",
"link_preview",
"tab_attach_image",
])),
))
.expect("Tauri build configuration must be valid");
}