Releases: costr1024/costr
Release list
v0.8.4-beta
v0.8.4-beta(相对 v0.8.3-beta)
修复
发帖输入框里 URL 内的 npub 不再被当成 @提及
粘贴 blossom npub 子域名图床链接(https://npub1….blossom.band/<sha256>.jpg)时,输入框的提及 chip 正则把 URL 里面的 npub 也替换成 @昵称,把 URL 的显示拆坏(签名内容一直正常、发出去渲染也正常,仅编辑时显示错乱)。现 URL 内的实体按纯文本渲染;草稿恢复与发送时的提及 tag 推导同样跳过 URL 内实体,不会再为一条媒体链接生成多余的提及。
退出发帖页时的最后一次草稿保存修复
此前 _flushDraft 在 dispose 里调用 ref.read(Riverpod 在控件卸载后禁用 ref),每次退出发帖页都抛异常——退出前的最后一次草稿保存其实从未生效。现改为缓存数据库句柄,退出前草稿可靠落盘。
覆盖安装即可:versionCode 20、签名密钥不变(SHA-256 4851d3b7…95eeaa),直接升级安装,登录/关注/屏蔽/收藏/本地缓存全部保留。
v0.8.3-beta
v0.8.3-beta(相对 v0.8.2-beta)
修复
blossom npub 子域名图床的图/视频恢复加载,界面不再冒出 @npubxxx
blossom 图床把上传者的 npub 用作子域名(https://npub1….blossom.band/<sha256>.mp4,Amethyst 发的帖常见)。Costr 的提及 linkify 正则把 URL 里面的 npub 也当成 @提及替换,URL 被改写:界面冒出莫名其妙的 @npubxxx,图片/视频加载失败。现 URL 内的 npub/nprofile/nevent/note 一律跳过,帖子正文的图/视频恢复加载,引用卡/通知预览与个人简介里的同类问题一并修复;畸形 bech32 乱串也不再导致渲染崩溃。
覆盖安装即可:versionCode 19、签名密钥不变(SHA-256 4851d3b7…95eeaa),直接升级安装,登录/关注/屏蔽/收藏/本地缓存全部保留。
v0.8.2-beta
v0.8.2-beta(相对 v0.8.1-beta)
优化
横屏倍速弹层收窄,不再占大半个屏幕
v0.8.1-beta 横屏倍速弹层虽可滚动,但铺满整个屏幕宽度,六档短选项没必要这么宽。现横屏下弹层收窄为 320dp 的居中窄板,竖屏保持全宽不变,滚动选档不受影响。
v0.8.1-beta
v0.8.1-beta(相对 v0.8-beta)
修复
全屏横屏倍速弹层可滚动、不裁档
v0.8-beta 全屏横屏时,六档倍速的底部弹层比屏幕高,1.5x / 2.0x 被裁掉且无法滚动到。弹层内容改为可滚动:横屏上滑即可选到全部档位,竖屏不受影响。
v0.6.9-beta
v0.6.9-beta(相对 v0.6.8-beta)
修复
关注信息流可以一直向更早翻
此前内存事件仓库上限 5000 条、超限无差别淘汰最老事件:点赞事件数量最多先把上限占满,之后「加载更早」拉回来的旧帖子因为最老、刚进仓库就被立刻淘汰,信息流永远停在某个时间点(约几天前)、底部一直转圈。现改为分优先级淘汰(先最老的 kind-7 点赞 → kind-6 转发 → kind-1 帖子,kind-0 资料永不淘汰)、上限提到 20000,翻页游标得以持续向更早推进;「加载更早」也改为只拉帖子/转发(不再让点赞吃掉每页配额),冷启动首屏加载深度同步加深。
顶部黑色加载条不再永久转动
与上一条同根因:加载无进展时列表不变长、人停在底部,每一下滚动都立刻再次触发加载,顶部进度条与底部转圈永远在动;现加载若没让信息流变长,30 秒内不再重复触发。
覆盖升级后首次启动资料不再发旧
旧逻辑下 kind-0 资料(头像/昵称/背景)同样会被无差别淘汰、整个会话卡在旧资料;资料现在永不淘汰。
沉浸式浏览菜单不再偶尔弹出
此前任何一次微小的向上滚动都会立即恢复菜单,而真手指下滑时夹杂的 2~10px 回勾抖动会被误判为「上滑」,菜单时不时弹回;现恢复菜单需累计净上滑 ≥20px(与隐藏方向的 40px 阈值对称)。另经探针测试确认:图片加载把卡片撑高并不会发出任何滚动通知,与菜单弹出无关。
安装
覆盖安装即可(versionCode 14→15,签名密钥不变,登录/关注/缓存全部保留)。
验证:flutter analyze 0 问题;387 个测试全绿(新增 10 个回归测试);release 构建签名 SHA-256 4851d3b7…95eeaa 与既有版本一致。
v0.8-beta
v0.8-beta(相对 v0.6.9-beta)
新增:视频播放器控件
此前视频只有播放/暂停和全屏两个按钮,现在内联与全屏共用一整套常见播放器控件:
- 进度条:拖动时暂停、松手 seek 并恢复播放,两侧显示当前/总时长;
- 快进快退:±10 秒按钮,到头自动钳制;
- 倍速:0.5 / 0.75 / 1.0 / 1.25 / 1.5 / 2.0,底部弹层选择;
- 分享视频链接:走系统分享面板,桌面平台降级为复制链接 + 「已复制视频链接」提示;
- 自动隐藏:播放中 3 秒无操作隐藏控件,暂停时常显,点视频表面切换显隐;缓冲时有转圈指示;
- 全屏入口收进控件栏(原右上角独立按钮移除),进全屏携带播放位置与倍速,方向锁定、保存相册不变;
- 视频表面恒黑底白字,不随浅色/深色主题变化。无新增依赖。
收藏页分组展示(关注页同款 UI)
- 顶部横滑 chip 行:全部 / 公开书签 / 私人书签 / 各自定义分组;选「全部」按组分段展示(组头 + 计数),选某个 chip 只平铺该组;搜索框按当前 chip 过滤;
- 自定义分组读自 NIP-51 kind-30003 命名书签列表(Amethyst 等客户端建的组也能看到),本批只读展示,分组管理下一批;
- 修复组标题「公开书签 · N」在白底上几乎不可见的问题;空收藏直接出页面(不再永久转圈)。
不可见文字修复
中继页 RTT 占位「…」、帖子详情「你打开的帖子」、NIP-05 未验证徽章——三处浅色文字在浅色主题下不可见,统一改为可见的三级文字色。
v0.6.8-beta
Costr 0.6.8-beta —— 沉浸式防乱跳 + 双击页签回顶 + 引用补全修复 + 昵称自定义表情 + 点赞表情扩充
修复
- 沉浸式浏览不再乱跳:帖子卡片里的作者状态行是横向可滚动单行文本,横滑它发出的横向滚动事件此前被当成竖向滚动,导致顶/底栏随横滑误隐藏/误恢复(关注 tab 上关注对象带状态时「菜单偶尔隐藏偶尔不隐藏」)。现沉浸式隐藏/恢复只响应竖向滚动;同一横滑还会误触发阅读冻结的「到顶/离顶」判定与信息流「加载更多」,一并修复。顶栏折叠动画中的 RenderFlex 溢出告警也一并消除。
- 引用不再永久「加载引用…」:引用/转发/线程补全的事件查询此前订阅了信息流事件仓库,仓库每 ~200ms 刷新一次就把整个查询推倒重来,信息流热闹时查询永远跑不完,引用卡死在「加载引用…」;现改为一次性查询,跑完即出结果(找不到显示「不可用·点击重试」,重试同样有效)。
新增
- 双击页签一键回顶部:信息流「全球/关注」、通知「全部/提及」页签行双击即平滑滚回最新帖子/通知(刷了几百条也不用一直往上划);阅读冻结的双击回顶会同时释放积压的「N 条新帖」。
- 昵称自定义表情(NIP-30):kind-0 资料里
:shortcode:昵称(如「科代 :winnie_kanahei_0:」)按事件 emoji 标签渲染成内联图片(对齐 Amethyst;此前显示原始 :shortcode: 文本),覆盖信息流/转发/引用/回复上下文/个人主页/关注列表/通知列表标题行。 - 点赞表情选择扩充:reaction 选择器从 2 排 10 个扩充到 50+ 个常用表情并可滚动,另按 NIP-30 增加「自定义表情」区:帖子自带的或被他人用来反应过的
:shortcode:表情可直接选用(带 emoji 标签发布 kind-7)。
安装:覆盖安装即可(versionCode 14,签名不变,登录/关注/屏蔽/收藏/本地缓存全部保留)。
测试 354 → 377(沉浸式回归 / 双击页签 / 引用稳定性 / 昵称表情 / 选择器),analyze 0 issue。
v0.6.6-beta
v0.6.6-beta
沉浸式浏览真正全屏 + 代理媒体大图继承。
1. 下滑隐藏顶栏时页签行一起折叠
此前首页「全球/关注」、通知「全部/提及」、搜索「全部/帖子/用户」的页签行
放在页面 body 里,沉浸式只折叠 AppBar,页签行钉在原地("topbar 不会隐藏")。
现 ImmersiveScaffold 新增 belowBar 槽位,页签行随 AppBar 一起 220ms
动画折叠/恢复,下滑进入真正的全屏阅读。
2. 个人主页 / 帖子详情也覆盖
个人主页的 pinned 页签条在沉浸隐藏时改为随内容滚走(上滑恢复固定);
帖子详情页新接入沉浸式(下滑隐藏顶栏+底栏+FAB,上滑恢复)。
3. 代理媒体:大图继承帖子的代理开关
帖子开了「代理媒体」后,点开九宫格/单图大图直接走代理加载。此前大图
查看器是独立路由、默认直连原站——缩略图能看、大图在死原站上一直转圈。
升级方式:签名不变(SHA-256 4851d3b7…95eeaa),直接覆盖安装即可,
登录 / 关注 / 收藏 / 本地缓存全部保留。
v0.6.5-beta
v0.6.5-beta
信息流引用/转发补全 + 重复关注通知 + 通知中心排版(对照用户截图逐项修)。
1. 引用卡片不再卡「加载引用…」
被引用的帖子常常只存在于作者自己的中继(例如 nostr.data.haus),
不在 Costr 默认连接的中继池里,旧实现只广播默认池 → 必 miss。
现在引用卡片沿 NIP-19 nevent1… 里自带的 relay hint 定向补拉
(Amethyst 同款做法)。解析失败也不再永久转圈,改显示
「引用内容不可用 · 点击重试」,点一下重新拉取。
2. Amethyst 转发不再「转发内容不可用」
Amethyst 的 kind-6 转发把被转帖作者 pubkey 塞进 e-tag 的 marker 位
(["e", <id>, <relay>, <pubkey>]),旧解析只认 root/reply/空 marker →
解析为 null → 直接判「不可用」。现与点赞通知同一规则:未识别的非
mention marker 一律按直接引用;且只要转发 content 里带 NIP-18 嵌入
JSON(Amethyst 都带),无需解析 e-tag 直接渲染原帖。
3. 老关注者更新关注列表不再弹「开始关注你」
关注者每关注别人一次就重发一次 kind-3 联系人列表,旧实现把每个新版本
都当新关注。现只对作者最新版本判定,且拉取其上一版联系人列表:
上一版已含我 → 老关注者更新列表 → 不弹通知;真正的新关注照常通知。
4. 通知中心排版改信息流式
头像与标题同一行(头像不再悬在多行文本旁边),预览与时间移到头像行
下方、从头像左缘起排——消除此前多行通知头像下方的大块空白。
升级方式:签名不变(SHA-256 4851d3b7…95eeaa),直接覆盖安装即可,
登录 / 关注 / 收藏 / 本地缓存全部保留。
v0.6.4-beta
通知中心头像堆叠改为 50% 重叠窄条(64 宽),修正 0.6.3 固定宽条在单头像行留下的空隙;1/2/3 头像行文本列保持对齐。签名不变,直接覆盖安装。