Repository navigation
client: a link in a chat opens the host's right panel behind FlyBot's own fixed panel, so the page looks blank until the panel is closed - #2313
Conversation
|
Written-by: Dev2 New tip for the two review findings.
6 files, +1442/−1242 (hand edits 88 lines; the rest regenerated).
|
…idebar The host handled a Markdown link in a chat bubble itself and opened it in its own right sidebar, a browser tab FlyBot's fixed panel covers, so the content area looked blank with no error (ThinkFlowLab#2201). The bubble now scopes MarkdownText in a MarkdownDelegateProvider whose openExternalLink opens a tab in the panel's own browser view carrying the URL, and opens the page in the window when there is no Desktop bridge.
|
@Birfy — one review request at tip What it does: a link clicked in a chat bubble now opens inside FlyBot's own browser panel instead of the host's right sidebar, which the panel's fixed layer covered. A room bubble targets the Bot that spoke ( Where to look: Readouts at this tip (my own reads, not a verdict): 15 check runs = 13 success + 2 cancelled ( Team advisories at this same tip, for context only: QA PASS and Security PASS (the Security review notes that the Known limitation declared in the body: the host's node-slot |
|
Verdict: PASS at fe72fd4 Ran at this tip: Red first, at this tree: with the base blob of the one changed source file the same command fails 7/7; with the tip it passes 7/7, and the file was restored and re-run green (7/7/0) after the swap. Review points (T1, 8 files):
|
…idebar The host handled a Markdown link in a chat bubble itself and opened it in its own right sidebar, a browser tab FlyBot's fixed panel covers, so the content area looked blank with no error (ThinkFlowLab#2201). The bubble now scopes MarkdownText in a MarkdownDelegateProvider whose openExternalLink opens a tab in the panel's own browser view carrying the URL. The provider replaces the enclosing Markdown scope, so it also carries the host's openFile and fileImages on: a local file link keeps its chip and a local image keeps previewing. A room bubble targets the Bot that spoke rather than the room id, and when there is no tab at all the page opens in the window once instead of the click going nowhere.
Fixes #2201
Written-by: Dev2
Owner: Dev2
Reviewer: Birfy
Claim-Id: c88053daa3e948418ffb0dc0ad63122b
Branch: dev/2-chat-link-delegate
Base: a11983c
Tree: ae7d1f2a34b3e401924627aec1ede474a35818ab
Tier: T1
What changed
A link in a chat bubble was handled by the host, which opened it in its own right sidebar — a browser tab FlyBot's fixed panel covers, so the content area looked blank and no error explained it (#2201). After: the page opens in the panel's own browser view (the globe button's view), carrying the URL.
The bubble's
MarkdownDelegateProviderreplaces the enclosing Markdown scope (.../dsh-client-ui-primitives/lib/index.js:11040-11056), so it now carries the host'sopenFileandfileImagesalongsideopenExternalLink; a local[x](path#L12)link keeps its chip and a local image keeps its resolver. A room bubble (GroupMessage) targets the Bot that spoke, not the room id, becausebrowserNewTab(roomId)answersnullfor anything that is not a Bot. With no tab — room id, Bot outside the roster, no Desktop bridge, or nobrowserNavigate— the page opens in the window exactly once instead of the click silently doing nothing.Known limitation, not fixed here: the host hands
openFile(andcwd,loadImage) to a plugin node view but notfileImages(dsh-client-ui-chat/lib/client.js:1727-1743, the node-slotownerobject), so in the shipped host the pass-through has nothing to carry for images yet: a local image destination inside a bubble still renders as alt text, as it did after the first tip. TheopenFilehalf — the file-link chip — is restored at this tip. Rebuilding the host's image resolver inside the plugin would duplicate host path/URL logic, so it needs either a host prop or a follow-up.Verification at the tip
Tip SHA:
fe72fd4ab46808a4d76fe605a450b72cd38df39dRan:
a11983c5with the wholecore/test/chat-link-open.test.js: 7 tests / 0 pass / 7 fail.TZ=UTC ARCH_DOCS_BASE=a11983c5bf8cfbe8da391c201e520750ac2b48eb npm run verify→ exit 0, 8 suites 4711/4711/0 (core 2734, social 570, tree 132, timeline 140, workflow 411,.github/scripts661, interop 37, live-e2e 26);arch-docs: OK (8 changed file(s)); lint 74/36/9/2/16 warnings, 0 errors.a11983c5:build-client,ds-bot-patches generatetwice (second run rewrites the files in place but the content is unchanged —git statusclean,canonicalreports a no-op, same treeae7d1f2a),patches check(10 patches apply;core/equalsds-bot/+ patches),canonicalno-op,build-client --checkexit 0.Not run (and why): the Electron desktop host itself — the suite covers the panel-side contract with a stubbed host call, and no Electron host runs in this checkout.
Checkpoint
{ "pr": 2313, "claim": "Dev2", "issue": 2201, "summary": "A link picked in a chat bubble now opens inside FlyBot's own browser panel instead of the host's right sidebar, which the panel's fixed layer covered and left blank. The bubble's delegate replaces the enclosing Markdown scope, so it now also carries the host's openFile and fileImages, keeping local file-link chips. A room bubble targets the Bot that spoke rather than the room id, and when no tab is available the page opens in the window exactly once instead of the click going nowhere.", "files": [ "core/src/client/cells.js", "core/test/chat-link-open.test.js" ], "checks": { "ran": "node --test core/test/chat-link-open.test.js (7/0/7 red on clean base, 7/7/0 at tip); TZ=UTC npm run verify; build-client + ds-bot-patches generate/check/canonical", "result": "green", "at": "fe72fd4ab46808a4d76fe605a450b72cd38df39d" }, "next": "none — ready for review at this tip (both advisories passed at fe72fd4a); the Lead owns the review call" }