更新日志¶
最新在前。简短,刻意不完整——main 分支上的 commit 才是真正的来源,这里只是给人看的汇总。
2026-10 — 来源暂停期间关闭 SentimentPulse¶
- Stocktwits、Reddit 和 YouTube 全部暂停期间,SentimentPulse 不再运行。 没有这些来源,它能读的只有另外四个智能体已经在读的文章。信号现在由四个智能体评分,卡片上的智能体详情显示四个(例如"4/4 成功")。用改动前三天的信号核对过:没有任何 ALERT 或 FLASH 信号的评分会降低。只要其中任一来源恢复,它就会重新运行。
2026-10 — "阅读原文"按钮,文章配图恢复¶
- 每张信号卡片和每条 Market Wire 都有了"阅读原文"按钮,在新标签页打开来源。旁边的小字来源名称保留,按钮在窄屏手机上也能完整显示。
- 登录后的应用里,信号卡片重新显示文章配图,以小缩略图呈现,点击打开原文。没有配图的卡片和以前一样。在线示例、Telegram、邮件和推送通知仍不显示文章配图。
- 美国政府统计数据现在链接到数据本身。 BLS 条目打开 data.bls.gov 上对应的序列(例如 CPI 或失业率),不再是 BLS 的开发者页面;BEA、Treasury、EIA、ECB、World Bank 和 Eurostat 条目打开对应的数据页面。旧条目也会用新链接。
2026-10 — 按股票的 Yahoo Finance 新闻恢复¶
- 自选列表中每只股票的 Yahoo Finance 新闻已恢复,登录后的应用和在线示例都是如此。截至 10 月 13 日,我们读取这些新闻的 Yahoo 地址已不再响应,所以没有收到按股票的 Yahoo 新闻;现在改为从 Yahoo 搜索读取同样的新闻,结果为空时会记录警告,不会再无声无息。此前漏掉的内容不会补回。
2026-10 — 市场面板默认显示自选列表的第一只股票¶
- 市场面板现在默认显示自选列表中的第一只股票(在线示例中为 NVDA),不再显示最新信号提到的股票,那只股票可能不在你的列表里。点击自选列表中的一行或打开一条信号仍会切换;刷新信号流不会。登录后的应用也是如此。
2026-10 — 在线示例加入 Yahoo Finance 新闻¶
- 在线示例现在包含 Yahoo Finance 新闻,覆盖五只示例股票和 Market Wire,显示方式与登录后的应用相同:我们的摘要、来源名称和原文链接。其中部分文章来自 Yahoo 转载的其他媒体,链接会显示出处。
- 新闻随新内容到达而出现,之前的 Yahoo 新闻不会补入示例。其他新闻媒体仍只对登录账户显示。参见 注册前能先看看效果吗?
2026-10 — 在线示例显示价格(来自 TradingView)¶
- 在线示例现在显示价格。 原来锁定的指数行换成了滚动行情条,包含五只示例股票以及标普 500、US 100 和道指 30;市场面板会为所选股票显示一个小型价格图。两者都是 TradingView 小部件:数据由 TradingView 在其自己的框架内提供,美股价格通常有延迟。StockClaw 不获取也不保存这些价格。
- 如果小部件无法加载(例如被内容拦截工具挡住),示例会像以前一样显示锁定的占位内容。自选股行、散户情绪和登录后的应用都没有变化。
2026-10 — 新账户的常见示例与简短导览¶
- 空自选股现在提供五个常见示例(NVDA、AAPL、MSFT、SPY、TSLA),点一下即可添加。不点就不会添加,添加后也能像其他股票一样移除。
- 新账户第一次打开仪表盘时会看到简短的功能导览:在哪里添加股票、信号流和级别、各个面板、Claw 和通知设置。每一步都可以跳过;每个账户只显示一次,网页版和 Android 应用通用。重新查看功能导览 在 设置 → 关于 和 帮助 里。已有账户下次打开仪表盘时也会看到一次。
2026-10 — 手机上的信号流工具栏不再被遮住¶
- 在手机上,信号流工具栏的按钮不再被屏幕边缘挡住。 “刷新”改为圆形箭头按钮,放在“信号流”标题同一行;工具栏和筛选行两侧留出更宽的边距,屏幕左右两侧用来切换面板的小标签不再盖住“刷新”、列表/网格按钮、“筛选”或筛选菜单。登录后的应用和实时示例都已更新。平板和电脑上的布局不变。
2026-10 — SEC 文件几分钟内到达,附公司自己的新闻稿¶
- 公司向 SEC 提交的文件现在大约 25 分钟内进入你的信号流。 美国申报时段内,我们每 5 分钟读一次 SEC 的最新文件 feed。对 8-K(业绩、交易、管理层变动等重大事件)和外国公司的 6-K,信号依据的是公司随文件提交的新闻稿,而不只是表格里的 item 列表。
- SEC 新闻稿、诉讼公告、行政程序和停牌公告,只要提到你自选股里的公司,也会收录。
- 内部人交易(Form 4)等 SEC 文件之前因为一个故障完全没有进入信号流,现已修复。
- SEC 记录是公开信息,所以也会出现在实时示例里。见你的信号从哪里来。
2026-10 — 美国政府关于制裁、出口管制和贸易的公告¶
- **新增美国联邦机构来源:**商务部工业与安全局(BIS)的出口管制规则、财政部 OFAC 的制裁行动、USTR 的贸易公告、白宫的总统行动、国防部新闻稿,以及 FTC、司法部反垄断和 NHTSA 安全相关条目。均直接从各机构自己的网站获取,属于公有领域。
- 制裁、出口管制和贸易行动会进入所有自选股,也可能出现在 Market Wire。FTC、司法部和 NHTSA 的条目只有点名你关注的公司时才出现。涉及特斯拉的 NHTSA 召回或调查关联 TSLA,涉及芯片的出口管制规则关联 NVDA 和 AMD。
- 实时示例也会显示这些内容,因此更常有内容可看。见注册前能先看看效果吗?
2026-10 — 暂停 Reddit、Stocktwits 和 YouTube;不再显示文章配图¶
- 我们停止读取 Reddit、Stocktwits 和 YouTube。 它们的条款只允许通过获批的 API 或在签订协议后进行自动化访问,我们目前还没有。在此之前,不会再有来自它们的新信号,情绪 agent 改为从文章本身判断。10 月 14 日之前由它们生成的信号仍保留在你的信号流和历史记录里。上个月大约一半的信号来自 Stocktwits,所以你的信号流会安静一些,减少的主要是低紧急度的条目。见已暂停的来源。
- 信号卡片不再显示文章配图。 每张卡片仍然有我们的摘要和原文链接。(10 月 16 日起配图已恢复,见上文。)
- 摘要和推理不再提到我们的内部工具或它们的错误。 以前有些解释里会混进 "stocktwits_lookup failed (invalid API key)" 这样的文字。现在这些内容会被去掉,较早的信号也一样。
2026-10 — 首页关于来源和提醒的措辞¶
- 首页现在只列出我们使用的官方来源:SEC EDGAR 公告、美联储和欧洲央行、美国劳工统计局 (BLS) 和财政部的数据,以及世界银行和欧盟统计局的数据。其他新闻统称为公开的财经新闻,不再列出媒体名称。StockClaw 读取的内容没有变化。
- 不再写"几秒内推到 Telegram"。 免费版最多每 30 分钟把最重要的信号 (FLASH 和 ALERT) 推送到你的手机,新内容大约每 20 分钟检查一次。
2026-10 — 实时示例和应用界面一致¶
- 实时示例现在显示真正的仪表盘,不再是单独的页面:自选股、带 Market Wire 的信号流和行情栏,手机上是可以左右滑动的三个面板。仍然只读,无需账户。Claw、提醒推送、设置、添加股票、图表和情绪带锁显示,并提示“免费注册即可使用”。示例不包含价格和指数。见 注册前能先看看效果吗?
2026-10 — 实时示例加入美国经济数据¶
- 实时示例现在也显示美国政府统计数据:美国劳工统计局的通胀、就业和生产者价格数据,经济分析局的 GDP 数据,以及财政部的利率数据,都直接取自各机构自己的数据服务。在这些数据公布的日子里,示例会有更多内容。来自 Investing.com 等网站的经济新闻仍然只在登录后的账户里显示。参见注册前能先看看效果吗?
2026-10 — 市场快讯和每周观察支持日语和韩语¶
- 应用设为日本語或한국어时,市场快讯和每周观察的重点信号现在显示翻译后的摘要。 新的市场快讯条目通常在出现后几分钟内完成翻译;在此之前以及较早的条目,仍和以前一样显示英文。每周观察直接使用信号流里已有的翻译,缺少的部分在后台翻译,下次打开该页时显示。
- Telegram 和手机、浏览器通知里的市场快讯在翻译完成后也使用同一份译文,提醒和应用里的内容一致;未完成时仍和以前一样发送英文。
- 实时示例里的市场快讯也按同样方式翻译。
2026-10 — 市场快讯和每周观察支持繁体中文¶
- 应用设为繁體中文时,市场快讯和每周观察的重点信号现在显示繁体中文。 以前这两处显示简体,而信号卡、Telegram 和邮件早已是繁体。Telegram 和邮件里的市场快讯不变。实时示例里的市场快讯也显示繁体。
- 日本語和한국어下这两处仍显示英文,翻译会另行处理。
2026-10 — 注册前可以先看实时示例¶
- 无需账户就能看到 StockClaw 的实际效果。 首页和登录页上的 查看实时示例 会打开一个只读示例:Market Wire,以及固定自选股 NVDA、AAPL、MSFT、SPY 和 TSLA 最近 24 小时的信号,最新一小时暂不显示。这里只显示 SEC 文件和美联储的内容。Claw、提醒推送和你自己的自选股仍需免费账户。见 注册前能先看看效果吗?
2026-10 — 信号摘要只显示应用语言¶
- 信号卡只显示一条摘要,语言与应用设置一致。 以前应用设为英文时,卡片在英文摘要下面还会显示一段中文摘要。现在英文只显示英文,简体中文和繁體中文显示中文,日本語和한국어显示翻译后的摘要,暂时没有翻译时显示英文。"EN""ZH"标签已去掉。
- 第一句作为标题;完整摘要只在内容比标题多时显示在下方。"市场动态"栏、市场快讯和每周观察也用同一规则。推送通知和邮件摘要原本就是这样。
- 想看另一种语言的摘要,切换应用语言即可。
2026-10 — 摘要不再转述买入或卖出的号召¶
- 摘要和说明只描述发生了什么,不说应该怎么做。 应用里曾有一条摘要写着某条 StockTwits 贴文"呼吁抄底"某只股票。即使是转述别人的话,这也是我们自己文字里的买卖用语。现在会写成"一则 StockTwits 贴文讨论了 SNDK,该股下跌 5.97% 至 1487.33"。
- 五种语言都适用:信号摘要和说明、市场快讯、每周观察、Claw 回答、Telegram、手机和浏览器提醒以及邮件摘要,也包括改动之前已保存的信号。
- 分析师的动作仍会报道,但不写评级用语和目标价:写"花旗上调了对 NVDA 的评级",不写"花旗将 NVDA 上调至买入"。摘要里的"看涨""看跌"改为"乐观""悲观","bullish / bearish"改为"positive / negative"。抛售、回购、内部人士减持等市场描述照常保留。
- 现在也涵盖:不带货币符号的目标位("目标 130")、对读者喊话的"满仓""梭哈""上车"等说法,以及日文、韩文里表示看涨看跌观点的词。"资金转向防御板块"、"牛市"这类描述照常保留。
- 繁体中文里替换后的词也是繁体:"看跌"现在改为"悲觀",不再出现简体的"悲观"。"從買入下調至中性"这类评级变动在繁体中也会去掉评级用语,与简体一致。
2026-10 — 手机上的指数条不再重叠¶
- 在手机上,“市场动态”上方的指数条不再挤在一起。 每个指数分三行显示名称、点位和涨跌幅,放不下时可以左右滑动。上面的状态栏改用更短的文字,放不下时换到第二行,而不是逐字折行。平板和电脑上的布局不变。
2026-10 — 免费版限制¶
目前仍然没有需要付费的内容。免费版现在有一些限制,完整列表见费用多少?。
- 最多 5 只股票。 如果你的列表原本超过 5 只,不会删除任何股票:最先添加的 5 只会被监控,其余标为 未监控,直到你减到 5 只以内。自选股会显示计数,例如 3 / 5 只。
- FLASH 和 ALERT 推送到手机和浏览器,最多每 30 分钟一次。NOTE 和 FYI 仍会显示在信号流中,但不推送。推送频率和免打扰时段显示为锁定。
- 不提供 Telegram 推送和每日邮件摘要。 你的 Telegram 绑定和摘要设置会保留,但不会发送任何内容。
- 每天 5 次 Claw 提问(UTC 午夜重新计数),Claw 读取最近 7 天的信号。
- 信号流显示最近 7 天。 更早的信号不会被删除,下载数据时仍然包含。
- 开启了 FLASH 的用户,全市场事件的 Market Wire 提醒保持不变。
2026-10 — 部分信号改在低价时段分析¶
- Stocktwits 贴文和经济日历条目可能晚一些出现。 工作日 UTC 01:00–04:00 和 06:00–10:00,我们使用的语言模型服务按双倍价格计费。这两类来源在这些时段进来的条目,现在等时段结束后再分析,最多可能晚四小时出现。它们大多被评为 NOTE 或 FYI。其他来源的新闻照常立即分析。
- 开了免打扰时段,收到的时间不会更晚。 如果你的免打扰时段覆盖了这个时段剩下的部分,新条目都等它结束后再分析,然后和以前一样,随免打扰结束后的第一份摘要发出,只是在应用的信号流里出现得稍晚。见你的信号从哪里来。
2026-10 — 用邮箱和密码登录¶
- 现在可以用密码了。 在登录页点 邮箱登录,用邮箱和密码登录;或点 创建账户 用密码注册,我们会先发邮件请你确认邮箱。使用 Google 账户继续和一次性登录链接照常可用。
- 忘记密码? 会发送设置新密码的链接。也可以在 设置 → 账户 中设置或修改密码,用 Google 或登录链接开的账户也可以。
- 浏览器或手机可以提示保存密码。StockClaw 看不到你的密码:它直接发送给登录服务商 Supabase,以哈希形式保存。见隐私政策。
2026-10 — 居住国家或地区;香港暂不提供服务¶
- 需要填写居住地。 新账户首次登录时选择居住国家或地区,现有账户在下次登录时选择一次。之后可在 设置 → 账户 中修改。保存了什么、为什么保存,见隐私政策。
- StockClaw 暂不在香港提供服务。 来自香港的访问会看到说明页面。居住在香港的现有账户会保留,但不再收到通知,可以在应用内或发邮件至 support@stockclaw.co 下载或删除数据。
- 在澳大利亚,评分显示为高、中、低。 影响度和置信度(包括每只股票和每个智能体)以等级代替百分比显示,信号不再标注正面或负面影响,应用、Claw 和所有通知都一样。居住在澳大利亚或在澳大利亚使用时适用。见使用条款。
2026-10 — 信号改为显示"正面影响"或"负面影响"¶
- 不再显示看涨、看跌。 信号现在显示 正面影响 或 负面影响:这条新闻可能对相关股票产生的影响。它不是价格预测,也不是买入或卖出的建议。中性、不确定保持不变。详见 评分。
- 日文不再显示 買い / 売り(买 / 卖)。 日文通知和应用以前用这两个词表示正面和负面信号,现在改为 プラスの影響 / マイナスの影響。韩文每周观察里写着 매수 / 매도 的那一列,现在是 긍정 / 부정。
- Telegram、信号卡、信号流筛选、自选股概览(正面影响占比)、情绪条和每周观察,五种语言都用同样的说法。已保存的筛选条件照常有效。
- Telegram 不再在方向旁边显示 📈 / 📉。 这两个符号容易被理解成"会涨 / 会跌",现在正面和负面影响改用 ➕ / ➖。
- 发帖人自己标了 Bullish / Bearish 的 Stocktwits 贴文,开头改为 ➕ / ➖,不再是 📈 / 📉,旧贴文也一样。
2026-10 — 添加自选股时可以搜索任何股票¶
- 仪表盘的"添加股票"现在可以搜索。 以前它只给出同样的六个代码(SPY、QQQ 等),别的都加不了。现在可以输入代码或公司英文名,从结果里选。自选股 页也改用同一个搜索框,不再弹出对话框。详见 自选股。
- 仪表盘上的改动会保存。 以前在仪表盘上添加、移除或拖动排序的股票,刷新后就没了,新加的股票 StockClaw 也从没关注过。现在添加和移除会保存到你的账号;拖动排序保存在你操作的那台设备上。
- 不存在的代码会被拒绝。 以前输入不存在的代码也会被保存。现在会提示你,什么都不会保存。
- 搜索覆盖美国、香港、中国内地、台湾、日本和韩国的上市股票。暂时还搜不到中文、日文或韩文公司名。
2026-10 — 行情卡片和 Claw 页面去掉了示例数据¶
- 行情栏里的公司卡片不再显示示例数字。 以前它为大约 20 支股票显示虚构的基本面、涨跌幅和分析师评级(例如 2025 年 3 月的 "Strong Buy" 和 "Buy 42 · Hold 8 · Sell 2")。现在不再显示这张卡片;价格和涨跌仍在上方图表的标题行。
- Claw 页面的"历史查询"区块已移除。 它一直显示同一个示例回答,并不是在搜索你的信号。Claw 对话本身没有变化。
2026-10 — 所有设备和所有通知使用同一种语言¶
- 语言保存在你的账户里。 在任何设备上选择语言(页头语言菜单或 设置 → 显示),登录的每台设备都会切换过去。以前每台手机或浏览器各用各的语言。登录前,应用和以前一样使用设备的语言。
- 通知使用同一种语言。 Telegram、Market Wire、手机与浏览器通知和邮件摘要都用你的界面语言发送。提醒级别与频率 下单独的"新闻语言"选项已移除。
- 英文就是纯英文。 以前中文信源没有英文摘要时,英文消息会显示中文摘要或中文标题,以及中文信源名称。现在改为写明涉及的 ticker 和级别,并请你在应用中查看。Market Wire 以前对所有人都是英文,现在也跟随你的语言。
- 标签已翻译。 中文、日文和韩文的 Telegram 消息、推送标题和按钮以及测试消息不再带有"Affected tickers""View signal"之类的英文标签。
- 更新之后: 如果你在旧的选项里选过非英文语言,它会成为你所有设备上的账户语言;否则使用你当前的界面语言。切换一次即可在所有地方生效。
2026-10 — 仪表盘先显示上次的数据¶
- 再次打开仪表盘时不再先空等几秒。 上次看到的自选股、信号流和 Market Wire 会立即显示,状态栏有一个小的 正在更新… 提示,直到新数据到达。如果更新失败,提示会说明,上次的数据仍保留在屏幕上。这份副本最多在浏览器中保存一天,退出登录时删除。
- 加载时不再显示假的 0。 跟踪数、今日信号、紧急、看涨占比、自选股名称和"添加你的第一批代码"以前在数据还没到时会显示 0、0% 或空列表提示,现在改为占位块,直到数据到达。
- 加载卡片显示真实时间。 旧卡片会依次走过四个步骤,但这四步其实是同时完成的。现在它显示已经加载了多久,以及在你的设备上通常需要多久。
- 首次访问时 Market Wire 出现得更早,因为它不再等你的设置返回后才去请求新闻。
2026-10 — 每日邮件摘要¶
- 邮件摘要开关现在真的会发邮件了。 以前它只会保存设置,从未发送过任何邮件。在 设置 → 邮件与免打扰时段 中打开并选择发送时间,每天会收到一封邮件,汇总过去 24 小时与自选股相关的信号,沿用你的提醒级别和新闻语言。没有匹配信号的日子不发送。见 邮件摘要。
- 上线时对所有人关闭。 这个开关以前默认打开,却什么也不做,所以所有账户都已改为关闭,新账户也默认关闭。需要的话请重新打开。
- 只发送到你的登录邮箱。 每封邮件都有无需登录即可使用的退订链接。
2026-10 — 更新后停在加载画面¶
- 每次发布更新后,加载画面可能一直停着(显示"比平时慢……"),要再刷新一次才恢复。原因是 app 用了上一版的本地副本,而它指向的文件已经不存在。现在只要联网,就总会加载最新版本;如果文件仍然缺失,会自动清除本地副本并重新加载一次。
- 如果这次更新后还出现一次,刷新页面或关闭后重新打开 app 即可,之后不会再发生。
2026-10 — 免打扰时段生效¶
- 免打扰时段现在会暂缓通知。 之前设置里的开关只是保存,并不起作用。打开后,开始和结束时间之间手机和 Telegram 都不会收到推送(FLASH 也一样),暂缓的内容会在免打扰结束后随下一条摘要到达。免打扰期间的 Market Wire 提醒也会暂缓,结束后补发(最多最新 10 条)。
- 开关下方新增 开始/结束时间和时区。时区在你第一次打开设置时取自设备(之前所有人都是 UTC),可以在那里修改。
- 旧说明里"FLASH 仍会推送"并不属实,已删除。
2026-10 — 设置合并为一个页面¶
- ⚙ 快捷设置面板已移除。 设置 标签、顶栏 ⚙ 图标(电脑)和账户菜单都打开同一个设置页面。界面语言、手机与浏览器通知、提醒级别、Telegram 和关于都在这里。
- 提醒级别与频率。 原来叫"Telegram 推送设置"的区块现在注明同时适用于手机通知和 Telegram(自下方那次更新起就是如此)。Telegram 总开关移到了 Telegram 区块,只影响 Telegram。
- 账户按钮。 顶栏里的两个字母(例如"KA")换成了你的 Google 头像;用邮件链接登录的显示人形图标。按钮标注为"账户",更容易点,窄屏手机上也不会再被切到屏幕外。
- 旧面板里的日期格式和默认自选股选项已删除:两者都不会保存,日期格式也没有任何地方使用。
2026-10 — 手机通知与 Telegram 同步¶
- 手机与浏览器通知现在和 Telegram 摘要推送同样的内容。 级别相同(默认 FLASH 和 ALERT,打开后包括 NOTE/FYI),推送频率相同,自选股筛选相同(对自选股影响度 ≥ 0.60),语言也相同。每次摘要按级别各发一条通知,例如
3 ALERT signals · NVDA, TSLA, AMD。手机通知不再需要绑定 Telegram。 - FLASH 跟随你的频率设置。 以前一到达就推送;现在和 Telegram 一样,跟着下一次摘要到达。
- Market Wire 也会推送。 影响度 ≥ 0.80 的全市场事件现在也会推送给所有开了通知且启用了 FLASH 级别的用户。
- 应用内提示。 dashboard 会询问已登录用户 在这部手机上接收提醒?,可选 开启 / 暂不(隐藏 14 天)。Android 13+ 随后会弹出系统权限提示。
- 所有人都能发送测试。 设置里的分区改名为 手机与浏览器通知,每位用户都有 发送测试 按钮(30 秒冷却)。见 手机与浏览器通知。
2026-10 — 自选股新闻按股票均衡分配¶
- 推送几乎只剩一只股票。 上面的饥饿问题修复之后,每个来源每轮的唯一名额都给了最新的一条新闻。当时新闻最密集的自选股(MU)几乎在每个来源里都是最新的,于是占满了所有名额,其他自选股的新闻始终进不来。现在每轮会优先把名额分给本轮还没覆盖到的股票;只有其他股票都没有新新闻时,已覆盖的股票才会再拿名额。
2026-10 — 修复 pipeline 饥饿问题¶
- 2026-10-02 起信号中断 6 小时以上,但没有任何组件崩溃。 每轮每位用户最多只有五条新闻能交给智能体分析。央行和经济日历类新闻不经过自选股过滤,而这些 feed 的最新条目在收盘后不再变化。原来"跳过已处理条目"发生在五个名额分配之后,于是同一批旧条目每轮都占满名额,更新的新闻始终排不上。现在会在分配名额之前先剔除已处理和超过 24 小时的条目,并在每个来源内按时间从新到旧排序。健康检查也能区分"worker 挂了"和"worker 正常但没有新内容"。
2026-10 — 智能体编排器(影子模式)¶
- 五个智能体前新增编排器。 每条新闻在智能体启动前先做一次简短的 LLM 调用。这次调用会结合美股时段和你在相同股票上的近期信号,决定哪些智能体有内容可分析,并给每个智能体一段简短的分析重点。按来源固定派发的规则始终生效,任何失败都会退回五个全部运行。目前以影子模式上线:每条新闻仍由五个智能体全部分析,同时对比编排器的选择与各智能体的实际产出。详见五个智能体。
2026-09 — Web Push 可靠性¶
- 手机/浏览器通知可能静默中断——浏览器(尤其是 iOS 主屏幕应用)会更换推送订阅,推送服务报告订阅失效后后端会删除它。此前没有任何机制把新订阅重新登记,设置页又只依据浏览器本地判断「已开启」,所以按钮一直显示 Disable,而每条 FLASH/ALERT 实际送达 0 台设备。现在应用每次启动、以及 service worker 发现订阅更换时,都会重新登记当前订阅;设置页显示的是后端真实保存的状态。worker 日志在每次派发时记录该用户的订阅数,运营人员也有了测试推送按钮。
2026-08 — 管道可靠性¶
- 修复了持续 16 天的静默管道中断——自 2026-08-10 起,抓取完全停止产出 signal,Telegram 也一条推送都没有发出。原因是
feedparser.parse(url)通过 urllib 抓取且没有任何超时,当 GlobeNewswire 不再响应我们的出口 IP 时,抓取就在半途永久阻塞。Celery worker 只有一个进程,因此这一个卡住的 feed 饿死了之后所有任务,而平台仍然显示服务健康。现在所有 feed 都在明确的超时下抓取(连接 5 秒 / 读取 15 秒),失联的源会被记录成单个 feed 的错误并被跳过,一个坏源只会影响它自己。 - 任务超时上限——Celery 现在有全局的挂起兜底(软 55 分钟 / 硬 60 分钟),抓取任务另有更紧的覆盖(软 10 分钟 / 硬 12 分钟,在其 20 分钟周期之内),因此今后任何原因导致的挂起都不可能再永久锁死 worker。
2026-07 — Claw 实时行情数据工具(运营者)¶
-
全 watchlist 资金流扫描——watchlist 整体问题现在会执行
watchlist_flow_scan:一次工具调用并发扫描 watchlist 里的每一只股票(最多 25 只),在服务端把每只压缩成一行紧凑统计,回答因此覆盖全部持仓而不是只有前几只。单只股票抓取失败会被隔离;超出上限的股票会明示列出,绝不静默丢弃。 -
Claw 聊天接入 Unusual Whales / FMP 实时工具(仅限管理员)——运营者账号可以直接问机构资金流问题(例如"分析机构资金流向的特点"),Claw 会通过 LLM function calling 实时拉取 Unusual Whales 的期权流警报、暗池成交、期权成交量历史,以及 FMP 的 13F 机构持仓和内部人统计。回答底部的"实时数据"标注列出具体查询了哪些数据源。硬性预算:每条消息最多 6 次工具调用、3 轮工具循环。普通账号保持原有的纯 RAG 管道不变,两种模式下不给建议的护栏原样生效。
2026-04 — P5(UI v2 + 质量打磨)¶
前端重写¶
- React 18 + Vite 5 + Tailwind 3 替换原有 vanilla HTML SPA。四 tab 导航(仪表盘 / 自选股 / Claw / 设置),全面 TypeScript,带类型的 API client + adapter 层把后端 Pydantic 映射成展示类型。
- 信号卡重新设计,像素级复刻 v1 格式:标题、每 ticker 关联度条(按层级着色:红 / 金 / 蓝)、中英双语对照、按
[AGENT]标签拆分的可收合 reasoning、Impact + Confidence 评分条、可展开的智能体详情、异步加载的 OG 预览、合规免责声明。 - UserMenu 下拉菜单——点 Header 头像查看邮箱、Settings 快捷入口、Sign out(不再需要绕道 Settings 页)。
- TelegramWizard——绑定流程变成三步编号指引,带点击复制的小按钮,告别小字一大段。
- Ask StockClaw 页面 给对话 transcript ≥55vh,Historical Search 移到下面,聊天卡不再被 RAG 块挤压。
- OS 自适应浅色配色——GitHub 风格白卡片 + 淡灰页面背景,调整了
text-gray-100在浅色下近乎全黑(之前是近白色灰底,几乎看不见)。 - 盘前 / 盘后价格——自选股行会在 yfinance 报
marketState为扩展时段时,在常规价下方显示 PRE / POST 徽章 + 盘前价 + 涨跌幅。用 CSS grid 做对齐,836.92和856.33的首位数字上下对齐。 - 实时状态栏——"Last updated 8s ago" 用 hook 的真实 fetch 时间戳驱动,每 15 秒 tick 一次;金色"What's moving the market"轮播真实的 12 条信号标题,而不是之前写死的 4 条演示数据。
信号质量¶
- 紧急度分级清晰 —— FLASH / ALERT / NOTE / FYI 现在是 4 个独立徽章(红 / 橙 / 金 / 灰),不再把 FLASH + ALERT 合并成过载的 "BREAKING"。状态栏计数也拆开:"2 FLASH · 18 ALERT" 而不是"20 BREAKING"。
- 重复信号修复 ——
RawItem.raw_id现在继承自content_hash(sha256 of source URL + title),所以run_user_pipeline_task的 DB 去重实际触发。之前raw_id每次爬取都是新 UUID4,dedup 是 no-op;用户被同一篇 Yahoo Finance 文章每 ~20 分钟 beat cycle 重复推送。同时减少 OpenRouter 开销(重复文章会触发新一轮 5-agent 合成)。
Ask Claw(RAG)修复¶
- BM25 分词器 ——
websearch_to_tsqueryAND-匹配用户问题里的每个词,几乎从不命中。换成按内容词 OR 连接的分词器("Should I buy NVDA right now?"→"buy | nvda"),先去掉英文停用词。 - 检索诊断 ——
[rag] empty retrieval日志行打印可见信号数 + 每个 retriever 的命中数,RLS 失败 vs. 查询逻辑失败一目了然。
部署 / 运维¶
- Vercel SPA fallback ——
/:path*→/的 rewrite,让/login、/watchlist等在直接访问时返回index.html。没有这条时,Google OAuth 登录后重定向到/login?code=…会 404。 - 市场行情缓存 TTL 从 60s 降到 30s;盘前 / 盘后价格现在 ~30 秒内刷新,之前 ~1 分钟。
2026-04 — P4 完成¶
- P4.4 Google OAuth 用 JWKS/ES256 验证(Supabase 当前默认);Sign in with Google 端到端打通。
- Web Push:VAPID 认证的浏览器通知,深链回触发信号;FLASH 级得 sticky(
requireInteraction)banner。 - Telegram 多用户:
deliver_batch从user_settings读每用户的telegram_chat_id,而不是全局 env var;用户需要通过 Settings 绑定。 - Per-user chat id + RLS 修复:
user_scope现在SET LOCAL ROLE authenticated,RLS 策略真正生效——之前代码默默以 Postgres 超级用户运行,带BYPASSRLS。 - 智能体详情面板:每条 signal 在卡片下的可展开表格里带每个 agent 的 impact / confidence / latency / error。
- 每 ticker 关联度条 + Open Graph 预览卡 为每条信号的源文章。
- 信号卡重新设计 匹配 Telegram 推送格式——双语对照摘要、signal id、signal_type pill、可展开 reasoning 块。
- 邮箱魔法链接 走 Supabase(不需要 Google 账号就能注册)。
- 真实 Claw 对话 基于你的信号做 dense + BM25 混合检索,每次查询写入
rag_query_logs。 - Embedding 流水线:每条新信号在 commit 后立即 embed 到 ChromaDB(
paraphrase-multilingual-MiniLM-L12-v2)。 - Claw 规则 CRUD 带 LLM 自然语言解析器(只存储;触发是后续工作)。
- OS 驱动的暗 / 浅主题 应用于整个 SPA。
- 真实市场数据 端点(
/market/quotes,/market/indices)通过 yfinance + 60 秒 Redis 缓存。 - Watchlist 自动引导 让新用户落在可用的空列表,而不是死的"+ 添加 ticker"按钮。
- 登出 UI(顶栏头像下拉)。
- 法律页面(
/privacy.html、/terms.html)和 这个文档站。
2026-04 — P3¶
- 写端点:
POST /watchlists/{id}/tickers、DELETE .../{ticker}、PUT /settings、POST /integrations/telegram/link、POST /claw/chat(当时还是 echo stub)。 user_settings表。- 添加 ticker 触发即时爬取。
2026-04 — P2¶
- 只读 FastAPI:
GET /signals、GET /watchlists、GET /health、/ws/signalsWebSocket。 - JWT 认证 + 行级安全骨架。
- 前端关闭 mock 模式。
2026-04 — P1¶
- Supabase Postgres + Redis 通过 docker-compose。
- Celery + Beat 编排。
- 信号持久化:流水线把每条生成的 SignalCard 写入 DB。
- SQLite → Supabase 自选股迁移。
2026-04 — P0¶
- 5 智能体合成引擎,带 Reflexion 和 Pydantic 验证。
- RSS / yfinance 爬虫。
- 自选股 SQLite DB。
- 前端 SPA(仪表盘 / 自选股 / Claw / 设置)带 PWA manifest。
- Telegram bot 推送(单用户)。