Commit Graph
467 Commits
Author SHA1 Message Date
Your NameandClaude Opus 5 5a07bb4e3b 修复全页面走查发现的 P0 前端问题(第一批)
八个 agent 对 11 章逐页对照设计稿+后端源码后,先修其中"功能不可用/崩溃/谎报成功"级别的:

崩溃与数据错误
- content-library-view: Highlight 按 [start,len] 数组解构后端返回的 {start,end} 对象,
  对象不可迭代会直接抛 TypeError,任何文本搜索命中都让整个结果区渲染崩掉。服务端偏移还叠加
  两个问题(Go 字节下标 vs JS UTF-16;偏移基准是全文但 snippet 会被开窗截断),改为在展示
  文本上本地匹配关键词。
- content-library-view: firstAttachment 用 Drafty.attachments,SDK 里硬过滤 tp=='EX'
  只认文件附件,图片(IM)/视频(VD)/语音(AU) 一个都取不到——收藏缩略图、语音播放源、聊天记录
  图片视频宫格全部拿不到资源。改用 Drafty.entities 按类型分派(chat-message.jsx 已有先例)。
- message-center-view: 系统通知的机器码兜底会把真实数据吞掉(日报提醒的 summary 就是日期
  字符串 "2026-08-20",会议通知的 summary 是标题),改为查表命中才替换。
- message-center-view: 会话列表漏了 avatar 字段,每行都只能落到兜底图标;同文件
  frequentContacts() 本来就是对的,照它补上。

功能不可用
- auth-onboarding-view: 首次开启青少年模式是死路——设完密码丢弃了服务端返回的
  enable_action_token,从不调 enableYouthMode,用户走完短信验证+设密码后模式仍是关的。
  现在拿着这个 token 把最后一步做完。
- group-management-view: "投诉/举报"是个 onToast('暂未开放') 死桩,而 target_type='group'
  这条链路早就通了。接上真实举报页。
- tinode-web: 刷新/深链会被弹回首页。两个原因叠加:初始化白名单还是上游 Tinode 的
  ['cred','reset','register'];handleLoginSuccessful 无条件把 hash 改写成 workbench,
  刷新触发的自动登录也走这条。抽出 SIDE_PANEL_VIEWS 常量复用,并区分登录流程与自动登录。
- widgets/meta-message: deleted 分支从未实现,撤回一条消息后时间线上什么都不剩。

谎报成功 / 判定错误
- tinode-web + personal-settings-view: 改密码不返回 Promise,服务端拒绝时照样弹"密码已更新"。
- group-management-view: 禁言批量读 result.succeeded,但该接口返回的是 {topic, items},
  succeeded 恒为 undefined,不管成没成都弹"设置成功"。两个接口结构不同,分开判定。
- workplace-collaboration-view: 会议取消状态写成 'cancelled',后端是 'canceled' 单 l,
  会议取消后"取消会议"按钮还挂着。

样式与显示
- base.css: 删掉旧版 .organization-department 的 padding-left !important,它压过按层级算出的
  内联缩进,导致部门行全平、只有人员行缩进。
- base.css: 补 .youth-password-gate(原来 0 条规则),PIN 框缺 position:relative 和居中。
- security-support-view: shield_lock 不在经典 Material Icons 里(只有 Symbols),会显示成
  字面文本;.risk-info-page 也是 0 条规则,整页渲染成裸项目符号列表。改用 verified_user 并
  补上 .risk-dialog。
- contact-management-view: 好友资料页性别直接输出后端枚举,显示成 "male"。
- workplace-collaboration-view: 层级标注两条路径两种格式(树形深三层变"3级"、搜索硬传"三"),
  统一成一个 helper。

已记录不在前端修的后端缺口:recallMessage 的 version 只能传 1,因为所有消息读取接口
(messagePayload/messageSearchPayload/mediaMessagePayload/favoriteSnapshot)都不下发 version,
冲突错误里也不回传真实值,被编辑过的消息撤回必然失败。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 18:31:26 +08:00
Your NameandClaude Sonnet 5 251c9de87c Convert im_webapp from static mock prototypes to real backend integration
Implements all 11 product chapters (auth, messaging, contacts, groups,
files/favorites, calls, workplace/reports, settings, security) against the
real /v1/im REST API and native Tinode WS protocol, replacing the hardcoded
mock data the ba8f48ee prototype commit shipped with. Adds src/lib/im-api.js
as the REST client, plus supporting fixes across messages-view.jsx and the
attachment/upload/download pipeline (wrong SDK auth headers, group topic
naming, seq/timezone edge cases) found via live end-to-end testing against
the real backend.

Backup checkpoint before reconciling with origin/dev's parallel rewrite.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 11:40:53 +08:00
or-else 389ef305ab cleanup 2026-03-01 14:03:18 +03:00
or-else 2aa1b731ee fix for #140, fix for some UI breakage, cosmetic changes 2026-03-01 13:59:59 +03:00
or-else 234fb48b93 cleanup 2026-01-20 12:58:58 +03:00
or-else a54ae70746 split out a few modules, handle esc key 2026-01-19 15:41:33 +03:00
or-else 5b7565c8f8 debug logging removed 2026-01-17 12:58:36 +03:00
or-else dea781b423 adding TheCard preview 2026-01-17 12:55:45 +03:00
or-else 930f4f0656 TheCard handling in messages 2026-01-16 20:51:57 +03:00
or-else ad3c6f5d36 fixed position of controls in incoming call 2025-11-06 13:15:57 +03:00
or-else 89c1cc7add minor UI tweak, screenshots updated 2025-10-27 19:07:25 +03:00
or-else 0f8d94ac2f wallpapers 2025-10-18 15:32:14 +03:00
or-else 1085d1caf6 allow messaging while call is in progress (same topic only for now) 2025-10-08 16:49:45 +03:00
or-else 5faacc1f53 pinning topics work as expected 2025-09-23 17:08:34 +03:00
or-else 4818ee7a25 support for pinning topics; truncate text with support for RTL languages 2025-09-20 18:18:01 +03:00
or-else ed6be52228 merge master 2025-09-05 16:36:03 +03:00
or-else 1dc5ea1655 ux improvemnt: use contact name as title in alert dialog 2025-09-05 16:34:27 +03:00
or-else 6e04638441 make min image zoom non-zero 2025-09-01 14:51:09 +03:00
or-else 89e9b85551 cropper: fix incorrect image positioning after zoom-out 2025-08-21 10:13:43 +03:00
or-else 5bb829a6bc fix slow panning in image cropper 2025-08-20 20:58:07 +03:00
or-else 79a1bc98b2 add config option to send on Enter vs send on CTRL-Enter 2025-08-10 15:25:05 +03:00
or-else 3a4794bacb merge master 2025-08-10 10:33:20 +03:00
or-else 56790262f3 rename drafty form response content type to text/x-drafy-fr 2025-08-10 10:30:47 +03:00
or-else bb1a3f4cea some colors fixed in doc preview 2025-08-09 09:43:40 +03:00
or-else 290571f305 transition to application/json+drafty as mime type for form responses 2025-08-07 15:39:43 +03:00
or-else 8535da995f disable tag editing for user profiles 2025-06-03 19:30:53 +03:00
or-else 6fdc208ca7 crash due to incorrect reference to topic 2025-05-28 12:55:59 +03:00
or-else 837013e97c alias cleanup and fixes 2025-05-09 19:19:02 +03:00
or-else 8288ad4733 fix alias regex: allow only alphanum as the first char 2025-05-06 10:43:59 +03:00
or-else 04279395bc clean up alias validator timer 2025-04-23 21:09:47 +03:00
or-else b1acfecd4f fixing translations 2025-03-12 19:40:33 +03:00
or-else 5448f10b1a cosmetic alias-related bugs 2025-03-09 10:28:35 +03:00
or-else 11436a80ee support fro unique aliases, https://github.com/tinode/chat/issues/446 2025-03-04 13:05:51 +03:00
or-else 5e92189b97 ability to hard-delete p2p messages, debugged pinned messages 2025-02-22 18:55:53 +03:00
or-else 30bf77d4ba sending messages to self works 2025-02-16 22:06:02 +03:00
or-else 6c1c8cf336 removed incomplete video conferences 2025-02-14 21:40:44 +03:00
or-else f91d8a979d implement touch swiping pinned messages 2025-02-14 17:38:49 +03:00
or-else 17b91c4bb8 prevent accidental clicks from tiggering scroll 2025-02-09 18:46:36 +03:00
or-else 02e8bd2f74 merge devel 2025-02-08 19:50:34 +03:00
or-else ed34a46865 make emoji-only messages larger for 1-5 emojis 2024-05-08 13:39:10 -07:00
or-else a4befc4cd3 make font larger for emoji-only messages 2024-05-01 14:36:18 -07:00
or-else 9eaa172030 add QR code display 2024-02-02 16:26:49 -08:00
or-else f932b973f8 ensure asatt=1 is aded to image download URL to set Content-Disposition: attachment 2023-12-21 16:06:19 -08:00
aforge 338e0f6023 Merge branch 'vc' of https://github.com/tinode/webapp into vc 2023-06-29 03:57:12 -07:00
or-else 685a1cd2a4 remove this.participants, clone object instead 2023-06-15 15:20:39 -07:00
or-else 8f9f41efe5 removed unnecessary React component <> 2023-06-15 14:03:04 -07:00
or-else 3bf822170c clean up scrolling of carousel 2023-06-15 12:06:39 -07:00
or-else deca04ed3e visual style fixes for video confs 2023-06-14 18:46:49 -07:00
or-else 97908ec84b move refs from state to object, bug fix 2023-06-14 10:11:24 -07:00
or-else 7bad07f717 UI work on conference calls, translations 2023-06-10 19:00:52 -07:00