thzxx
|
ec0722170e
|
fix: apiContentForModel 累积所有内容——文字+文件+视频帧+图片,不再只发视频
|
2026-06-18 13:59:08 +08:00 |
|
thzxx
|
f2a7198118
|
fix: SQLite 持久化 files 和 _videos,历史记录不再丢失视频指示牌和文件
- ALTER TABLE 新增 attachments TEXT 列
- saveMessage 序列化 files/_videos 为 JSON
- getMessages 反序列化还原
|
2026-06-18 13:42:47 +08:00 |
|
thzxx
|
5e043e5fbb
|
fix: 每个视频独立指示牌,不合并——_videos 数组逐个渲染
|
2026-06-18 13:30:36 +08:00 |
|
thzxx
|
0b2d8414a6
|
fix: 视频指示牌显示文件名,多视频显示'2个视频'
|
2026-06-18 13:29:06 +08:00 |
|
thzxx
|
0aa33d590c
|
fix: _videoFrames 改用 allVids 总帧数,修复多个视频时指示牌不显示
|
2026-06-18 13:23:10 +08:00 |
|
thzxx
|
96bf48aaf5
|
fix: 视频提取完成后立即清除 pending 状态,避免预览重复显示
|
2026-06-18 13:16:40 +08:00 |
|
thzxx
|
bec111444e
|
fix: 视频预览区同时渲染 pending 和 completedVideos,不再互相覆盖
|
2026-06-18 13:09:15 +08:00 |
|
thzxx
|
c7e1ba0ac5
|
fix: 恢复视频多选循环
|
2026-06-18 13:02:33 +08:00 |
|
thzxx
|
18d0a39aa8
|
feat: completedVideos 数组支持多视频,轮询提取后累积发送
- 每个视频提取完成后 push 到 completedVideos
- 发送时 pending + completed 帧合并为一个 images 数组
- 聊天卡片和 API 内容均遍历全部视频
|
2026-06-18 13:02:14 +08:00 |
|
thzxx
|
fed1e6d1c2
|
refactor: 视频/图片/文件组合发送,各走各的渲染通道
- ChatMessage 新增 _videoFrames/_videoMeta 独立字段
- msg.images 只放图片,视频帧走 _videoFrames
- 聊天卡片:图片缩略图 + 视频指示牌 + 文件 chips 可同时显示
- Ollama API 仍合并全部帧到 images 数组
|
2026-06-18 12:45:06 +08:00 |
|
thzxx
|
5251319efb
|
fix: startsWith → includes,修复用户输入文字后视频内容检测失效
|
2026-06-18 12:41:56 +08:00 |
|
thzxx
|
b0eb2a29c3
|
fix: 视频消息卡片不显示30张缩略图和完整帧列表
- 视频帧序列 → 显示视频指示牌而非逐帧缩略图
- 内容折叠:只显示标题行,隐藏帧时间线
|
2026-06-18 12:35:11 +08:00 |
|
thzxx
|
1246e5c86f
|
fix: 聊天区系统消息也原地更新进度,不复用 appendSystemMessage 刷屏
通过 sysmsg-video-progress class 标记,进度回调中 querySelector 原地更新 textContent
|
2026-06-18 11:56:38 +08:00 |
|
thzxx
|
a25ce068f9
|
fix: 恢复聊天区系统消息提示(开始/完成/失败)
|
2026-06-18 11:55:36 +08:00 |
|
thzxx
|
ab1fb88dc4
|
fix: 日志三段式——开始+进度(原地更新)+完成,各一条
- logInfo 开始 → resetVideoProgress 进度 → updateVideoProgress 更新 → logSuccess 完成
- 进度条目保留最后帧数不动,完成后新加 success 条目
|
2026-06-18 11:50:11 +08:00 |
|
thzxx
|
37189dafa8
|
refactor: 视频提取日志原地更新,复用 logStreamProgress 模式
- 新增 resetVideoProgress/updateVideoProgress/finishVideoProgress
- 日志面板中视频提取只占一条,实时更新帧数和状态
- 主进程只通过 video:progress IPC 推送原始帧数,不写日志
|
2026-06-18 11:48:35 +08:00 |
|
thzxx
|
abd3dfde72
|
refactor: 视频提取进度实时更新卡片,不再刷日志面板
- 主进程通过 video:progress IPC 推送当前帧数
- 前端监听进度事件,直接更新视频芯片的 meta 文本
- 日志面板只保留开始和完成两条记录
|
2026-06-18 11:45:31 +08:00 |
|
thzxx
|
52c0c3aff5
|
feat: 视频提取增加开始日志和实时进度推送
- 提取开始时发送 '开始提取视频帧' 日志
- ffmpeg 执行中每秒解析 stderr 的 frame=N 输出并推送进度
- 完成日志从 info 改为 success 级别
|
2026-06-18 11:42:42 +08:00 |
|
thzxx
|
389e42874a
|
refactor: 视频帧独立预览区,只显示视频卡片不逐帧展示
- 新增 #videoPreview 独立区域,金色 video-chip 卡片
- 视频帧存入 pendingVideoFrames,与 pendingImages 完全分离
- 发送时自动合并为 images 数组
|
2026-06-18 11:33:32 +08:00 |
|
thzxx
|
d5a8592317
|
fix: 去掉 ffprobe 依赖,改用 ffmpeg stderr 解析视频信息
ffmpeg-static 不含 ffprobe.exe,改为从 ffmpeg -i 的 stderr 输出中正则解析时长和分辨率。
解析失败则从 1fps 帧数反推时长。
|
2026-06-18 11:22:35 +08:00 |
|
thzxx
|
0d710ca0ec
|
fix: asar.unpack → asarUnpack (electron-builder 25 兼容)
|
2026-06-18 11:14:20 +08:00 |
|
thzxx
|
3d656c2d8e
|
fix: 打包 ffmpeg-static 解决 Windows 无 ffmpeg 问题
- 新增 ffmpeg-static 依赖,自动解析 ffmpeg/ffprobe 路径
- 优先使用内置二进制,回退系统 PATH
- ASAR 解包配置确保二进制可执行
|
2026-06-18 11:08:59 +08:00 |
|
thzxx
|
5ed9a1f9f6
|
feat: 视频上传支持 (v0.11.7)
- 新增视频上传按钮,支持 mp4/avi/mov/mkv/webm (≤10MB)
- ffmpeg 1fps 提取帧序列,自动缩放至512px,带时序标注
- 消息中注入帧序列时间线,多模态模型原生理解视频时序
- 视频按钮与 vision 模型能力自动联动
- 版本号 0.11.6 → 0.11.7,同步更新 README/帮助面板/菜单
|
2026-06-18 10:58:55 +08:00 |
|
thzxx
|
a74fca741d
|
fix: 修复 Think 模式开关无效 — toggleThink 缺少 change 事件导致 state 未同步
- model-bar.ts: 新增 toggleThink change 事件监听,同步 state.thinkEnabled
- setThinkAvailable(true) 保留自动开启行为(模型支持时强制开启)
- 版本号 0.11.5 → 0.11.6,同步7个文件13处
|
2026-06-17 12:34:23 +08:00 |
|
thzxx
|
a336a66516
|
v0.11.5: 搜索抓取增强 + 流式进度修复 + 超时/写入容错
feat: 搜索面板新增认证类型 Bearer/Basic,自动抓取条数/类型(顺序/随机)
feat: 随机抓取失败自动从未抓取池补1条,上限移除
fix: write_file 缺 path 时返回引导性报错(含工作空间路径+平台示例)
fix: Ollama tool_calls arguments JSON字符串解析
fix: 流式进度日志不再删除,改为完整时间线记录
fix: 进度日志同步appendChild确保排在工具日志之前
fix: 超时设置面板/主进程 remove max上限
chore: 版本号 0.11.4 → 0.11.5
|
2026-06-13 21:35:22 +08:00 |
|
thzxx
|
5fdcab444c
|
fix: logStreamProgress 防重复条目
- addLog 支持 customId 参数
- _progressCreated 标记防止 addLog 在 DOM 未渲染前重复调用
- 已渲染后直接更新 DOM 文本
|
2026-06-13 09:27:14 +08:00 |
|
thzxx
|
ad5b67ea3e
|
fix: 工具页签滚动彻底重写
- 统一 scrollToolsToBottom:scrollTop=scrollHeight + 双重rAF
- appendToolCardDOM/updateToolCardDOM/renderToolCalls 全部调用
- 废弃 scrollIntoView(overflow-y:auto 容器中不稳定)
- 卡片更新后也跟随滚动(结果内容可能导致高度变化)
|
2026-06-13 09:24:21 +08:00 |
|
thzxx
|
41ee21ccb3
|
fix: startNewSession 不切命令行,保留工具页签
|
2026-06-13 09:20:49 +08:00 |
|
thzxx
|
0b58639295
|
chore: 0.11.3 -> 0.11.4
|
2026-06-13 08:17:44 +08:00 |
|
thzxx
|
5bad82336d
|
fix: initWorkspacePanel 强制重置默认工具页签
Electron窗口关闭再打开时渲染进程不销毁,模块级activeTab
保留用户上次切换的值。initWorkspacePanel启动时强制重置。
|
2026-06-13 08:17:01 +08:00 |
|
thzxx
|
52026dbdd6
|
fix: 流式日志原地更新 + 滚动用scrollIntoView
- 新增 logStreamProgress:同一ID日志更新不追加
- 定时器15s间隔,无新内容用累积闲置时长
- appendToolCardDOM 用 scrollIntoView + rAF
- renderToolCalls 用双重 rAF 等布局稳定
|
2026-06-13 08:15:06 +08:00 |
|
thzxx
|
87d3364886
|
fix: 定时器15秒间隔 + 滚动rAF + 闲置追踪
- 流式进度定时器改为15秒间隔
- lastContentTime 追踪真正的无新内容时长
- appendToolCardDOM/renderToolCalls 用 rAF 确保布局后滚动
|
2026-06-13 07:42:40 +08:00 |
|
thzxx
|
45777a5945
|
feat: v0.11.3 - 工具卡片三态转换 + 流式进度监控 + 默认工具页签
- 工具卡片完整生命周期: 准备中 -> 执行中 -> 完成
- onToolCallPrepare 流式阶段提前显示工具意图
- 工作空间监控定时器: AI处理中提示
- 日志面板流式进度: 每5秒输出, 15秒无新内容警告
- 提示栏按状态分组显示所有工具
- write_file 写入前增加开始日志
- 工具页签新卡片始终自动滚动到底部
- 默认页签切换为工具页签
|
2026-06-12 22:28:16 +08:00 |
|
thzxx
|
cf52568947
|
fix: 在appendAssistantPlaceholder前再次enableAutoScroll,防止renderMessages的DOM事件重置滚动状态
|
2026-06-12 15:07:35 +08:00 |
|
thzxx
|
8b50ae323f
|
fix: 发送消息时强制resetAutoScroll,解决手动上滑后新消息不自动滚动的问题
|
2026-06-12 14:57:08 +08:00 |
|
thzxx
|
5cf961df84
|
fix: 修复buildFetchHeaders参数类型错误,useMobile→UA#索引
|
2026-06-12 14:47:13 +08:00 |
|
thzxx
|
a1f06a4c27
|
feat: 全面增强反爬虫——5个UA轮换、语言轮换、随机抖动词、拦截页检测、Cloudflare识别、重试次数3次
|
2026-06-12 14:43:21 +08:00 |
|
thzxx
|
e05f175a3b
|
fix: 加强AGENT.md和工具描述,明确每次搜索必须重新调用工具,不依赖历史结果或训练数据
|
2026-06-12 14:40:01 +08:00 |
|
thzxx
|
0f20540666
|
fix: 单独的web_fetch调用也不再截断内容,返回完整网页
|
2026-06-12 14:31:22 +08:00 |
|
thzxx
|
1000a6b525
|
fix: 自动抓取不再截断,保留完整网页内容
|
2026-06-12 14:30:42 +08:00 |
|
thzxx
|
38a8ae90d2
|
fix: 重建tool-handlers-system.ts,fetch_top必传最低3条,SearXNG和内置引擎统一自动抓取
|
2026-06-12 14:29:14 +08:00 |
|
thzxx
|
f0d7986947
|
fix: 修复tool-registry.ts语法错误,required字段放入parameters内
|
2026-06-12 14:21:57 +08:00 |
|
thzxx
|
de54aba1e2
|
fix: fetch_top改为必传,最低3条,SearXNG和内置引擎统一自动抓取
|
2026-06-12 14:18:58 +08:00 |
|
thzxx
|
c7a184bfa9
|
feat: web_search新增fetch_top参数,搜索后自动抓取前N条完整内容,无需AI手动调web_fetch
|
2026-06-12 14:16:08 +08:00 |
|
thzxx
|
b5c7cf93f7
|
fix: 启动时根据已保存配置更新SearXNG按钮小绿点状态
|
2026-06-12 14:05:34 +08:00 |
|
thzxx
|
00ef0de5ea
|
fix: 搜索结果抓取提示改为明文前置警告,top5→top10,让AI无法忽略
|
2026-06-12 14:00:26 +08:00 |
|
thzxx
|
53cc86d14f
|
docs: 丰富AGENT.md,详述能力概览、工具联动模式、重要约束
|
2026-06-12 13:46:31 +08:00 |
|
thzxx
|
c191906fb5
|
fix: web_search和web_fetch工具定义中加入联动说明,引导AI搜索后批量抓取
|
2026-06-12 13:43:52 +08:00 |
|
thzxx
|
56ead1f11d
|
fix: web_search结果注入批量抓取引导,AGENT.md加强链式调用描述,避免AI只抓一条
|
2026-06-12 13:41:30 +08:00 |
|
thzxx
|
16dd877860
|
fix: SearXNG 搜索引擎参数去掉默认值,留空使用实例默认引擎
|
2026-06-12 13:18:23 +08:00 |
|
thzxx
|
366824c00a
|
feat: 日志面板显示搜索模式(SearXNG/内置),结果带_mode标记
|
2026-06-12 13:15:21 +08:00 |
|
thzxx
|
ce4eea40ee
|
docs: 更新帮助面板和README中搜索相关描述,反映SearXNG双模式集成
|
2026-06-12 13:07:17 +08:00 |
|
thzxx
|
ff786f50c5
|
fix: SearXNG max_results 面板配了以面板为准,未配(0)用AI传入默认值
|
2026-06-12 13:05:31 +08:00 |
|
thzxx
|
d495b96f4b
|
chore: web_search 默认结果数 15→30
|
2026-06-12 13:03:42 +08:00 |
|
thzxx
|
25678bf866
|
fix: SearXNG max_results 以面板配置为准,不再与AI传入比较
|
2026-06-12 13:02:32 +08:00 |
|
thzxx
|
016c96c565
|
fix: SearXNG max_results 面板配置未生效,现读取面板值作为上限(与AI传入取较小值)
|
2026-06-12 12:57:57 +08:00 |
|
thzxx
|
9a547849eb
|
feat: SearXNG 添加 format 参数,支持 json/html 两种模式。html 模式提取网页纯文本交由 AI 自行分析
|
2026-06-12 12:55:14 +08:00 |
|
thzxx
|
cadb597b36
|
fix: 移除 SearXNG 地址 placeholder 中的默认域名
|
2026-06-12 12:49:16 +08:00 |
|
thzxx
|
f16d0238f7
|
fix: SearXNG API 地址改为必填,保存时校验格式
|
2026-06-12 12:48:05 +08:00 |
|
thzxx
|
2bdcb2735f
|
chore: bump version to 0.11.2
|
2026-06-12 12:45:57 +08:00 |
|
thzxx
|
7030e69234
|
feat: 集成 SearXNG 元搜索引擎,支持 JSON API 搜索替代四引擎 HTML 解析
- 新增 SearXNG 配置模态框,支持 API 地址、引擎列表、语言、安全搜索等参数
- 顶部添加独立 🔍 搜索按钮,带启用状态小绿点
- 启用后 web_search 走 SearXNG JSON API(70+ 引擎聚合)
- 禁用时回退原有 Bing+百度+搜狗+360 四引擎 HTML 解析方案
- 认证 Key 通过 HTTP Header Authorization: Bearer 传递,非必填
- 配置持久化到 SQLite settings 表
|
2026-06-12 12:44:41 +08:00 |
|
thzxx
|
fe6de8e30e
|
fix: 架构图Tool Registry 39→44
|
2026-06-11 22:13:14 +08:00 |
|
thzxx
|
42eadaccc9
|
fix: README系统工具数量2→6
|
2026-06-11 22:11:50 +08:00 |
|
thzxx
|
933ce7a082
|
v0.11.1: Agent Loop稳定性增强 + 6个系统工具 + 搜索引擎替换
【Agent Loop 稳定性】
- P0-1: 工具消息硬限制40条,超出自动删旧
- P0-2: 截断周期从5轮缩短为3轮
- P1-1: 增量记忆提取改为fire-and-forget
- P1-2: TOOLS_WITH_DATA_DEPS精简为仅web_fetch
- P2: 重复检测改为注入警告而非强制终止
- Final Answer检测增强: >300字自动放行 + 收紧反过早停止
【新增工具】(40→44)
- datetime: 系统精确时间(中文日期+时段+人性化)
- calculator: 安全数学计算(递归下降解析器)
- random: 随机数/随机选择(int/float/pick/string)
- uuid: UUID v4生成(crypto.randomUUID)
- json_format: JSON格式化+验证+键排序
- hash: MD5/SHA1/SHA256/SHA384/SHA512
【搜索引擎替换】
- Google+DuckDuckGo → 搜狗+360搜索
- 四引擎变为: Bing+百度+搜狗+360搜索
【删除】
- 联网搜索代理全部代码(search-proxy/ + 7文件代理逻辑)
- https-proxy-agent依赖
【UI】
- 模型栏: 上下文总长(蓝色)+剩余上下文(绿色)实时显示
- 设置面板上下文长度移至模型栏
- SOUL.md/AGENT.md精简为纯抽象定义
【系统提示词】
- OS环境信息改为从preload同步获取真实值(os.homedir/os.arch/os.userInfo)
|
2026-06-11 22:07:46 +08:00 |
|
thzxx
|
b5d8d08986
|
fix: Google引擎改用StartPage — Google直连反爬需要JS验证
|
2026-06-10 18:23:59 +08:00 |
|
thzxx
|
718cd98e00
|
feat: 加 /debug 端点查看搜索引擎原始 HTML
|
2026-06-10 18:20:47 +08:00 |
|
thzxx
|
68fffb4ce4
|
docs: README编译命令加 GO111MODULE=off 兼容说明
|
2026-06-10 18:17:31 +08:00 |
|
thzxx
|
aba8cbcb54
|
fix: 百度正则也移除前瞻(?=)
|
2026-06-10 18:15:13 +08:00 |
|
thzxx
|
9c8f2c9ac4
|
fix: 移除正则前瞻断言(?=) — Go regexp不支持
|
2026-06-10 18:13:16 +08:00 |
|
thzxx
|
753bd41167
|
Revert "fix: 兼容旧版Go — atomic.Int64→int64+atomic, any→interface{}, os→ioutil"
This reverts commit f68863e49b.
|
2026-06-10 18:08:53 +08:00 |
|
thzxx
|
f68863e49b
|
fix: 兼容旧版Go — atomic.Int64→int64+atomic, any→interface{}, os→ioutil
|
2026-06-10 18:06:44 +08:00 |
|
thzxx
|
9bbfff7e38
|
feat: metona-search-proxy v2.2 — Google新版解析+正则预编译+缓存清理+/stats端点+状态码日志
|
2026-06-10 17:46:05 +08:00 |
|
thzxx
|
2e4041a354
|
docs: README加 -start 带参数示例
|
2026-06-10 17:42:48 +08:00 |
|
thzxx
|
e4c903557d
|
feat: metona-search-proxy v2.1 — CLI管理(start/stop/status/restart)+PID文件+端口占用检测+两种部署方式
|
2026-06-10 17:34:20 +08:00 |
|
thzxx
|
b8266fd495
|
feat: metona-search-proxy v2 — CLI命令/端口7899/百度引擎/详细README
|
2026-06-10 17:21:19 +08:00 |
|
thzxx
|
87f80dd11e
|
feat: search-proxy v2 — 加百度引擎+限流(30rps)+优雅关闭+panic恢复+连接池+端口18080
|
2026-06-10 17:15:38 +08:00 |
|
thzxx
|
74a5a5609b
|
feat: 香港服务器搜索代理 search-proxy (Go) — Google/Bing/DDG直连API
|
2026-06-10 17:06:36 +08:00 |
|
thzxx
|
7f3f4d3914
|
fix: 代理改用 https.request+HttpsProxyAgent 直连,绕过 undici fetch 兼容问题
|
2026-06-10 16:22:13 +08:00 |
|
thzxx
|
c718d99108
|
fix: 代理失败日志增强 + undici ProxyAgent参数修正
|
2026-06-10 16:09:47 +08:00 |
|
thzxx
|
25809c1532
|
fix: 添加 https-proxy-agent 依赖,解决代理DNS解析问题
|
2026-06-10 16:00:46 +08:00 |
|
thzxx
|
53dec75528
|
fix: 代理改用undici ProxyAgent显式指定,不再依赖环境变量(更可靠)
|
2026-06-10 15:50:52 +08:00 |
|
thzxx
|
3f11e7c3cd
|
feat: 设置面板添加代理配置 — web_search/web_fetch走HTTP代理(Clash等)
|
2026-06-10 15:38:56 +08:00 |
|
thzxx
|
3c54f15218
|
fix: git卡片描述过长超出边界,精简为一行
|
2026-06-10 15:18:13 +08:00 |
|
thzxx
|
f7e2843d4c
|
fix: 修复编译错误 — handleAppendFile残留引用 + _enhanced类型断言
|
2026-06-10 15:08:20 +08:00 |
|
thzxx
|
463071254d
|
fix: README web_search表格格式修复(多出的|),中英文两处
|
2026-06-10 15:00:08 +08:00 |
|
thzxx
|
80c5f40f2a
|
docs: 图标改回相对路径
|
2026-06-10 14:59:01 +08:00 |
|
thzxx
|
480272598c
|
fix: README图标改用Gitee raw URL,修复相对路径不显示问题
|
2026-06-10 14:55:13 +08:00 |
|
thzxx
|
7c35da4900
|
docs: README修复 — 文件系统17→16/删除append_file/修复表格格式/更新英文部分/工具描述同步
|
2026-06-10 14:53:03 +08:00 |
|
thzxx
|
c8cafbe58e
|
fix: 修复Agent Loop过早停止 — 无tool_calls时检测是否任务未完成+注入继续提示+AGENT.md加强规则
|
2026-06-10 14:48:12 +08:00 |
|
thzxx
|
5bbd8b720c
|
chore: 版本号 v0.10.3 → v0.11.0
|
2026-06-10 14:44:28 +08:00 |
|
thzxx
|
e2bd511489
|
refactor: 删除append_file工具,功能合并入write_file(mode=append),工具数39→38
|
2026-06-10 14:42:25 +08:00 |
|
thzxx
|
1e89f52d42
|
docs: 工具面板卡片全面更新 — 28个卡片描述反映实际能力+新增browser_wait卡片
|
2026-06-10 14:38:41 +08:00 |
|
thzxx
|
632470a26d
|
docs: 更新README/帮助面板/工具面板 — 38→39个工具/browser_wait/v0.10.3/增强特性描述
|
2026-06-10 14:36:24 +08:00 |
|
thzxx
|
5a38acce03
|
feat: 系统提示词注入OS环境信息(不可压缩)+日期标记不可压缩+run_command返回cwd信息
|
2026-06-10 14:31:47 +08:00 |
|
thzxx
|
06fdb9c457
|
refactor: 删除工具面板开关,Tool Calling 代码写死永久开启
|
2026-06-10 14:26:57 +08:00 |
|
thzxx
|
b3de861faf
|
feat: 浏览器控制工具全面增强 — browser_open(wait_selector)/screenshot(full_page+selector)/extract(selector+max_chars)/click(wait滚动到视图)/type(clear+submit)/scroll(selector)/新增browser_wait
|
2026-06-10 14:23:56 +08:00 |
|
thzxx
|
d6cf7d846f
|
feat: 5个文件系统工具增强 — list_directory(2000)/edit_file(regex)/delete_file(返回大小)/read_multiple(50文件10KB)/tree(深度5)
|
2026-06-10 14:19:03 +08:00 |
|
thzxx
|
04f2446337
|
feat: write_file 全面增强 — base64写二进制/mode(overwrite+append)/覆盖提示/10MB/返回行数+文件大小
|
2026-06-10 14:15:26 +08:00 |
|
thzxx
|
da249d43de
|
chore: read_file 默认行数 500→2000
|
2026-06-10 14:12:55 +08:00 |
|
thzxx
|
751f548b0c
|
feat: read_file 全面增强 — binary模式/字节分页/5MB限制/截断提示hint/offset_bytes+limit_bytes
|
2026-06-10 14:11:08 +08:00 |
|