{"id":18563189,"url":"https://github.com/compulim/webchat-loader","last_synced_at":"2026-03-05T09:01:17.650Z","repository":{"id":39716022,"uuid":"184536374","full_name":"compulim/webchat-loader","owner":"compulim","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-14T11:41:46.000Z","size":6191,"stargazers_count":6,"open_issues_count":5,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-14T15:49:51.253Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://compulim.github.io/webchat-loader/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/compulim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-05-02T07:06:53.000Z","updated_at":"2026-01-14T11:41:52.000Z","dependencies_parsed_at":"2023-12-13T20:16:46.999Z","dependency_job_id":"e1dd8e4e-3c75-4c4a-879d-d0d56a7b438f","html_url":"https://github.com/compulim/webchat-loader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/compulim/webchat-loader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fwebchat-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fwebchat-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fwebchat-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fwebchat-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/compulim","download_url":"https://codeload.github.com/compulim/webchat-loader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fwebchat-loader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30117469,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T08:19:04.902Z","status":"ssl_error","status_checked_at":"2026-03-05T08:17:37.148Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T22:12:03.440Z","updated_at":"2026-03-05T09:01:17.579Z","avatar_url":"https://github.com/compulim.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webchat-loader\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eVersion\u003c/th\u003e\n      \u003cth\u003eToday\u003c/th\u003e\n      \u003cth\u003eNo `contentUrl`\u003c/th\u003e\n      \u003cth\u003e`contentUrl` of 401\u003c/th\u003e\n      \u003cth\u003eA placeholder `contentUrl`\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAll versions of v4\u003c/td\u003e\n      \u003ctd\u003eWorking until \u003ckbd\u003eF5\u003c/kbd\u003e, turns into broken image from https://bcdirectlineeastus3.blob.core.windows.net/at12345/a1b2c3d-original.\u003c/td\u003e\n      \u003ctd\u003eShortly after upload, turns into broken image. \u003ckbd\u003eF5\u003c/kbd\u003e will continue to show broken image.\u003c/td\u003e\n      \u003ctd\u003eShortly after upload, turns into broken image. \u003ckbd\u003eF5\u003c/kbd\u003e will continue to show broken image.\u003c/td\u003e\n      \u003ctd\u003eShortly after upload, turns into placeholder image. \u003ckbd\u003eF5\u003c/kbd\u003e will continue to show placeholder image.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eLatest v3 and Scorpio\u003c/td\u003e\n      \u003ctd\u003eWorking until \u003ckbd\u003eF5\u003c/kbd\u003e, turns into broken image from https://bcdirectlineeastus3.blob.core.windows.net/at12345/a1b2c3d-original.\u003c/td\u003e\n      \u003ctd\u003eShow uploaded photo. After \u003ckbd\u003eF5\u003c/kbd\u003e, turns into broken image.\u003c/td\u003e\n      \u003ctd\u003eShow uploaded photo. After \u003ckbd\u003eF5\u003c/kbd\u003e, turns into broken image.\u003c/td\u003e\n      \u003ctd\u003eShow uploaded photo. After \u003ckbd\u003eF5\u003c/kbd\u003e, turns into placeholder image.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eAries\u003c/td\u003e\n      \u003ctd\u003eWorking.\u003c/td\u003e\n      \u003ctd\u003eShortly after upload, turns into broken image.\u003c/td\u003e\n      \u003ctd\u003eShortly after upload, turns into broken image.\u003c/td\u003e\n      \u003ctd\u003eShortly after upload, turns into placeholder image.\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Conclusion\n\nAll uploaded images will be echoed back from Direct Line.\n\n- v4: Initially, Web Chat show the uploading image. After the activity is echoed, Web Chat will use the image in the echoed activity.\n   - Empty content URL will eventually show a broken image icon.\n   - URL with erroneous respond will eventually show a broken image icon.\n   - Placeholder image will eventually show up correctly.\n- v3: Web Chat will always show the uploading image even after activity is echoed. I.e. image not getting replaced until \u003ckbd\u003eF5\u003c/kbd\u003e.\n   - Empty content URL will show an empty bubble only after \u003ckbd\u003eF5\u003c/kbd\u003e.\n   - URL with erroneous respond will show a broken image icon only after \u003ckbd\u003eF5\u003c/kbd\u003e.\n   - Placeholder image will show up correctly only after \u003ckbd\u003eF5\u003c/kbd\u003e.\n- v1: Very similar to v4. But will not show anything while uploading image. It will show the image in the echoed activity.\n   - Empty content URL will eventually show a broken image icon.\n   - URL with erroneous respond will eventually show a broken image icon.\n   - Placeholder image will eventually show up correctly.\n\nAfter \u003ckbd\u003eF5\u003c/kbd\u003e, all of them will show the replaced image (broken, empty, or placeholder). This is because chat history is being resent from Direct Line.\n\n## Notes\n\n### Buggy Direct Line resend history over Web Socket\n\nDirect Line exhibits very strange behavior for v3/v4 but not Aries. It only bugged in Web Socket, but not thru polling.\n\nWhen the photo is uploaded, the echoed message has attachment of https://webchat.botframework.com/attachments/H7i...X-j/0000001/0/12345.png?t=token. This is also true if there are two Web Chat loaded at the time the file is uploaded.\n\nAfter \u003ckbd\u003eF5\u003c/kbd\u003e, the message history is being resent from Direct Line. But on resend, the attachment URL become https://bcdirectlineeastus3.blob.core.windows.net/at12345/ABCDE-original. And the content of this file is encrypted with an unknown key.\n\nLooks like Direct Line resend history is broken today for Web Socket.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompulim%2Fwebchat-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompulim%2Fwebchat-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompulim%2Fwebchat-loader/lists"}