Repository navigation
feat: add Dia tab title manager with sync and Alfred workflow - #22
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dia 的标签显示名可能不能反映网页原始标题。新增独立 MV3 扩展,从已加载网页的顶层
document.title记录标题;控制页支持按真实 tabId 切换已有标签、搜索、Ctrl/Cmd/Shift 多选,以及逐行复制 URL 或 Markdown。关闭标签即移除记录。自动采集只处理 active、加载完成的 HTTP(S) 标签。真实 URL 变化或正常重载使旧标题失效;重复上报相同 URL 不清空标题,同 URL 的冻结、释放和 unloaded 保留已采集内容。DOM title 变化立即通知,150 毫秒内后续变化合并;导航版本、采样序号和初始化事件队列拒绝过期结果。浏览器标签名不作为标题来源,不监听用户输入推断标题变化的原因。
Dia 1.55.1 实测会对可交互的前台页面持续报告
frozen:true。对此只允许当前聚焦窗口内 active、complete、未 discarded 的页面进行有界 DOM 探测;结果必须同 URL、complete、visible,返回后仍在前台。切走、失焦、失败或超时不会覆盖已有标题,自动采集仍跳过后台冻结页;窗口恢复焦点时补采。界面标为“浏览器标记冻结”,避免把 API 标记解释为页面一定无法交互。“同步已打开标签”会尝试读取当前 profile 已加载网页,包括后台和被浏览器标记 frozen 的标签,不要求窗口聚焦或 DOM visible,不激活、创建、加载或重载标签。已释放、加载中和尚未加载的页面仍跳过。读取失败或超时保留同 URL 已采集标题,并如实统计本轮结果。手动最多占 3 个实际未结束执行,与自动前台探测合计最多 4 个,为前台更新保留名额;同标签去重,每次最多等待 5 秒。超时执行直到实际结束才释放额度,迟到结果不写缓存;额度不足时跳过其余页面,不保证每个标签都会实际注入或读取成功。控制页显示成功、无法读取、跳过数量及原因,保留有效选择。普通自动采集保持原语义。
同 URL 已记录的具体标题若退化成完整域名或完整域名段,自动采集与手动同步均保留旧标题。匹配忽略大小写、边缘空白、单个 www. 前缀和末尾点,支持完整 DNS labels 组成的连续片段,不按任意字符 substring 判断;IP/IDN 仅整体匹配。首次域名标题可保存,正常标题升级及导航/重载后重新采集仍允许。手动同步将被拦截的结果计为跳过,并显示“标题退化,已保留”。这是启发式保护,同 URL SPA 合法切回站点名时也可能保留旧标题。
控制页支持浅色/深色、固定表头、长标题与 URL 省略及完整值复制、窄窗口横向滚动,以及同步和复制反馈。连接错误详情在恢复后清除;Alfred 连接不可用不影响本页列表和复制。
配套 Alfred Workflow 提供
dia list搜索、回车激活、Cmd+回车复制 URL、Alt+回车复制 Markdown。Python 标准库 Native Messaging host 使用私有 Unix socket,按 connectionId + sessionId + tabId 定位,没有 TCP 服务、launchd 或浏览历史文件。安装到稳定用户目录并固定扩展 ID,不依赖 worktree 存续。本机 native host 注册目录采用实际连通的Google/Chrome/NativeMessagingHosts,支持显式覆盖。验证:
Dia Tabs Demo Alpha改为主机名127.0.0.1后,控制页和桥接均保留原标题;随后改为Alpha [changed] 中文时正常更新。关闭演示标签后筛选结果变为 0,临时服务已停止,已恢复原用户标签。尚未完整实机验收:手动重命名后的动态标题、跨窗口/最小化、浏览器退出清理,以及 Alfred Enter/Cmd/Alt 的实际动作。相关边界已记录在使用说明;冻结/释放异常事件序列由回归覆盖,没有强制回收用户页面。
修改限定为独立插件、文档及 CI,现有 Go 工具与构建入口未改动。