
Jesse_ChenandClaude Opus 5
63c419f375
Independent Staging Quality Gate / validate (push) Canceled after 27s
Independent Staging Quality Gate / publish (push) Canceled after 0s
perf(consultation): 健康探测加 TTL、yoga 表达式只编译一次
BUG-734: probe_official_rest_health 不是 ping —— 它把一份虚构 smoke 排盘
POST 给官方 HoroscopePredictions(实测单次 1,034 ms),还经 call() 吃掉对方
每分钟 5 个限流令牌之一,而结论零 TTL。连续 6 轮前台请求下,第 6 次探测会被
本地限流器挡下、反过来报出假的 official_blocked,真正的业务调用还要和它抢令牌。
加进程级 TTL 缓存(成功 60 s / 失败 10 s,配置变即失效,缓存键只记 key 配没配
的布尔)。force_refresh 默认 True:诊断端点调的是裸 gateway_status() 且该文件
本轮不得改,默认实时才不会让运维看到旧结论;run_gateway_packet 显式走 False。
探测在锁外执行。6 轮实测:探测 6→1、握手 5→1、限流令牌 6→1。
连接复用(任务书 6.2)按让步顺序砍掉:实测 urllib.request 没有连接池,模块级
共享 opener 在 6 次请求下仍开 6 条 TCP 连接,按任务书写法只能骗过「同一个
opener 实例」的断言而省不掉任何握手。另立单。
BUG-735: yoga_engine._eval_custom 对静态规则表的表达式每请求重新编译。实测每次
检测 386 次源码编译(182 次 eval 字符串 + 204 次 ast.parse/compile)。拆出
_build_custom_exec_globals(每次新建,绑定当前盘 ctx)与 lru_cache 的
_compiled_eval_code / _compiled_exec_code,只缓存 code object,绝不缓存求值
结果。求值语义逐条对齐改前。第二次检测起编译 0 次,单次 27.4 ms → 3.3 ms。
等价用同进程差分(BUG-733 的做法):192 条去重表达式 × 3 张公开虚构示例盘,
与逐字复刻的改前实现同值,另有反向验证证明差分非恒真。
未改 scripts/jyotish_api_server.py。既有断言一条未改。新增 23 条测试。
快速门唯一红的 test_chat_page_uses_authenticated_cloud_persistence 经干净
origin/staging 检出复跑确认为基线红,记入 BLOCKED.md BLK-002,不顺手修。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUei7K13cYxLHE3Axe4A45
2026-09-16 02:01:33 +00:00
..
2026-06-27 18:55:49 +08:00
2026-09-16 07:11:07 +08:00
2026-09-15 09:04:03 +08:00
2026-06-12 18:50:39 +08:00
2026-07-02 19:56:28 +08:00
2026-09-16 07:11:07 +08:00
2026-07-28 13:04:30 +08:00
2026-09-07 09:10:37 +08:00
2026-09-04 00:26:57 +08:00
2026-07-19 22:23:29 +08:00
2026-09-03 23:49:42 +08:00
2026-06-07 14:44:53 +08:00
2026-06-05 14:30:20 +08:00
2026-07-12 19:22:13 +08:00
2026-06-07 13:09:08 +08:00
2026-09-05 11:10:44 +08:00
2026-09-05 11:10:44 +08:00
2026-07-20 16:56:46 +08:00
2026-09-15 16:10:21 +08:00
2026-07-17 22:19:09 +08:00
2026-06-10 20:50:52 +08:00
2026-06-24 13:37:33 +08:00
2026-06-13 13:08:12 +08:00
2026-09-03 20:28:57 +08:00
2026-09-03 20:28:57 +08:00
2026-06-27 18:55:49 +08:00
2026-07-17 11:39:24 +08:00
2026-07-21 22:16:18 +08:00
2026-05-04 22:43:56 +08:00
2026-09-03 23:22:50 +08:00
2026-06-27 19:09:31 +08:00
2026-06-11 19:03:21 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 15:06:11 +08:00
2026-09-02 01:21:40 +08:00
2026-07-20 00:42:11 +08:00
2026-06-05 17:16:23 +08:00
2026-07-08 17:03:04 +08:00
2026-09-15 10:09:26 +08:00
2026-09-04 00:26:57 +08:00
2026-09-03 16:55:26 +08:00
2026-07-21 22:35:13 +08:00
2026-09-02 18:03:23 +08:00
2026-06-11 19:03:21 +08:00
2026-07-16 23:22:18 +08:00
2026-06-11 21:58:08 +08:00
2026-09-03 16:55:26 +08:00
2026-09-09 15:11:00 +08:00
2026-09-09 16:04:52 +08:00
2026-07-21 19:21:02 +08:00
2026-07-20 00:03:56 +08:00
2026-09-03 23:22:50 +08:00
2026-06-04 12:19:11 +08:00
2026-07-01 19:15:35 +08:00
2026-09-03 23:22:50 +08:00
2026-09-03 23:22:50 +08:00
2026-07-19 15:47:40 +08:00
2026-07-21 16:56:20 +08:00
2026-09-09 16:04:52 +08:00
2026-07-20 11:09:13 +08:00
2026-06-11 19:03:21 +08:00
2026-07-17 00:23:31 +08:00
2026-08-15 06:04:23 +08:00
2026-09-03 23:57:27 +08:00
2026-08-18 23:30:36 +08:00
2026-07-17 00:16:41 +08:00
2026-07-22 17:39:11 +08:00
2026-07-16 12:38:09 +08:00
2026-07-16 13:40:28 +08:00
2026-07-10 22:31:28 +08:00
2026-06-07 12:11:15 +08:00
2026-07-19 23:24:06 +08:00
2026-07-19 23:24:06 +08:00
2026-07-23 12:03:58 +08:00
2026-08-20 21:42:47 +08:00
2026-07-06 13:06:12 +08:00
2026-06-07 12:11:15 +08:00
2026-04-20 20:58:21 +08:00
2026-09-09 16:04:52 +08:00
2026-05-04 20:33:13 +08:00
2026-06-27 01:03:02 +08:00
2026-06-27 00:43:10 +08:00
2026-06-25 18:33:26 +08:00
2026-07-19 15:14:13 +08:00
2026-07-19 18:36:25 +08:00
2026-07-19 16:36:41 +08:00
2026-07-19 23:30:46 +08:00
2026-07-19 08:02:44 +08:00
2026-07-19 08:02:44 +08:00
2026-07-19 08:59:33 +08:00
2026-06-24 13:37:33 +08:00
2026-07-17 22:35:19 +08:00
2026-07-05 18:27:33 +08:00
2026-07-25 01:17:14 +08:00
2026-09-03 17:35:26 +08:00
2026-06-25 18:33:26 +08:00
2026-06-11 22:07:47 +08:00
2026-09-03 20:28:57 +08:00
2026-09-09 16:04:52 +08:00
2026-09-09 16:04:52 +08:00
2026-07-19 04:38:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-09-03 23:22:50 +08:00
2026-07-20 11:02:41 +08:00
2026-07-20 11:02:41 +08:00
2026-09-15 16:10:21 +08:00
2026-05-03 20:50:05 +08:00
2026-07-20 00:03:56 +08:00
2026-06-24 13:37:33 +08:00
2026-07-23 12:03:58 +08:00
2026-07-16 20:36:44 +08:00
2026-07-08 17:03:04 +08:00
2026-07-20 00:18:18 +08:00
2026-07-17 14:32:56 +08:00
2026-07-08 18:34:13 +08:00
2026-07-20 00:57:46 +08:00
2026-09-04 02:11:57 +08:00
2026-09-07 09:10:37 +08:00
2026-09-06 23:00:01 +08:00
2026-09-04 02:11:57 +08:00
2026-07-08 16:23:45 +08:00
2026-09-15 10:09:26 +08:00
2026-09-03 23:22:50 +08:00
2026-06-28 18:18:33 +08:00
2026-07-02 01:22:53 +08:00
2026-09-15 17:54:20 +08:00
2026-07-17 15:23:16 +08:00
2026-06-05 14:30:20 +08:00
2026-07-01 19:15:35 +08:00
2026-09-03 23:22:50 +08:00
2026-09-03 16:55:26 +08:00
2026-06-03 15:18:12 +08:00
2026-06-03 15:18:12 +08:00
2026-07-22 23:40:59 +08:00
2026-07-20 00:18:18 +08:00
2026-07-05 18:27:33 +08:00
2026-08-15 12:13:09 +08:00
2026-07-20 11:02:41 +08:00
2026-07-05 18:27:33 +08:00
2026-09-03 20:28:57 +08:00
2026-09-16 07:36:09 +08:00
2026-09-15 10:09:26 +08:00
2026-07-21 16:52:58 +08:00
2026-07-21 16:52:58 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-18 01:00:53 +08:00
2026-07-23 12:03:58 +08:00
2026-06-11 19:03:21 +08:00
2026-06-07 20:16:47 +08:00
2026-05-04 22:43:56 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 18:36:25 +08:00
2026-07-23 12:03:58 +08:00
2026-09-05 11:10:44 +08:00
2026-09-05 11:10:44 +08:00
2026-09-05 11:10:44 +08:00
2026-09-05 11:10:44 +08:00
2026-09-05 11:10:44 +08:00
2026-07-19 18:36:25 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-09-03 20:28:57 +08:00
2026-06-29 03:54:45 +08:00
2026-09-03 23:22:50 +08:00
2026-06-29 10:45:11 +08:00
2026-07-20 00:03:56 +08:00
2026-07-19 18:45:46 +08:00
2026-06-28 17:19:30 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 10:56:41 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-08-29 01:33:20 +08:00
2026-08-29 01:33:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-22 09:58:32 +08:00
2026-06-11 21:58:08 +08:00
2026-09-03 23:22:50 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 23:20:39 +08:00
2026-07-20 13:55:54 +08:00
2026-07-23 12:03:58 +08:00
2026-09-03 23:22:50 +08:00
2026-06-11 19:03:21 +08:00
2026-07-12 00:27:25 +08:00
2026-06-13 16:18:37 +08:00
2026-06-04 12:19:11 +08:00
2026-09-03 20:28:57 +08:00
2026-09-09 16:04:52 +08:00
2026-07-08 16:23:45 +08:00
2026-09-03 16:55:26 +08:00
2026-07-17 00:27:57 +08:00
2026-07-08 17:03:04 +08:00
2026-06-28 15:45:31 +08:00
2026-09-03 23:22:50 +08:00
2026-07-02 01:22:53 +08:00
2026-06-28 17:57:16 +08:00
2026-06-27 01:48:47 +08:00
2026-06-28 18:18:33 +08:00
2026-07-01 21:35:15 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 15:06:11 +08:00
2026-06-11 19:03:21 +08:00
2026-06-13 15:06:11 +08:00
2026-09-09 16:04:52 +08:00
2026-07-21 21:25:57 +08:00
2026-09-04 21:33:27 +08:00
2026-09-03 23:22:50 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 13:55:54 +08:00
2026-07-21 19:21:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-21 19:21:02 +08:00
2026-09-03 23:22:50 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-16 21:54:34 +08:00
2026-07-12 19:22:13 +08:00
2026-08-10 17:57:06 +08:00
2026-07-08 17:03:04 +08:00
2026-06-28 17:51:34 +08:00
2026-07-21 16:52:58 +08:00
2026-07-05 18:27:33 +08:00
2026-07-19 18:45:46 +08:00
2026-07-20 02:44:05 +08:00
2026-09-05 11:10:44 +08:00
2026-07-19 18:45:46 +08:00
2026-07-01 21:35:15 +08:00
2026-07-08 16:23:45 +08:00
2026-07-16 21:01:24 +08:00
2026-07-17 19:51:31 +08:00
2026-07-13 22:53:04 +08:00
2026-07-20 12:45:18 +08:00
2026-09-09 16:04:52 +08:00
2026-09-03 23:22:50 +08:00
2026-07-16 20:36:44 +08:00
2026-07-22 23:40:59 +08:00
2026-07-23 12:39:10 +08:00
2026-09-15 17:54:20 +08:00
2026-09-15 17:54:20 +08:00
2026-08-20 21:42:47 +08:00
2026-07-17 01:03:50 +08:00
2026-07-17 01:03:50 +08:00
2026-06-07 12:11:15 +08:00
2026-06-07 12:11:15 +08:00
2026-07-12 00:27:25 +08:00
2026-07-20 13:55:54 +08:00
2026-07-22 09:58:32 +08:00
2026-07-25 11:50:41 +08:00
2026-09-06 23:05:42 +08:00
2026-08-20 11:04:55 +08:00
2026-07-25 01:17:14 +08:00
2026-07-23 12:03:58 +08:00
2026-07-18 03:46:20 +08:00
2026-09-09 16:04:52 +08:00
2026-09-09 16:04:52 +08:00
2026-06-29 03:25:03 +08:00
2026-09-03 16:55:26 +08:00
2026-07-21 16:56:20 +08:00
2026-09-09 15:11:00 +08:00
2026-09-09 16:58:46 +08:00
2026-09-03 20:28:57 +08:00
2026-07-17 00:23:31 +08:00
2026-09-16 07:36:09 +08:00
2026-06-11 19:03:21 +08:00
2026-07-16 21:54:34 +08:00
2026-09-09 16:04:52 +08:00
2026-06-24 13:37:33 +08:00
2026-07-19 08:59:33 +08:00
2026-07-22 23:40:59 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 23:12:27 +08:00
2026-07-19 22:36:48 +08:00
2026-07-21 19:21:02 +08:00
2026-07-22 19:55:13 +08:00
2026-07-23 12:03:58 +08:00
2026-06-29 10:38:17 +08:00
2026-06-29 10:38:17 +08:00
2026-09-03 23:22:50 +08:00
2026-06-29 10:38:17 +08:00
2026-07-15 19:13:05 +08:00
2026-06-28 17:01:56 +08:00
2026-06-29 10:38:17 +08:00
2026-07-22 19:55:13 +08:00
2026-07-19 22:46:04 +08:00
2026-06-29 10:38:17 +08:00
2026-06-29 10:38:17 +08:00
2026-06-29 10:38:17 +08:00
2026-08-20 21:42:47 +08:00
2026-09-05 11:10:44 +08:00
2026-09-09 16:04:52 +08:00
2026-09-09 16:04:52 +08:00
2026-09-09 16:04:52 +08:00
2026-07-17 00:16:41 +08:00
2026-07-17 15:23:16 +08:00
2026-09-03 16:55:26 +08:00
2026-09-03 16:55:26 +08:00
2026-07-19 18:45:46 +08:00
2026-07-19 15:06:22 +08:00
2026-09-03 20:28:57 +08:00
2026-09-09 16:04:52 +08:00
2026-06-03 13:55:51 +08:00
2026-06-07 12:11:15 +08:00
2026-07-08 17:03:04 +08:00
2026-07-16 22:41:10 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 16:18:37 +08:00
2026-07-16 11:09:46 +08:00
2026-07-08 17:03:04 +08:00
2026-07-08 17:03:04 +08:00
2026-07-01 21:35:15 +08:00
2026-07-01 21:35:15 +08:00
2026-07-02 01:22:53 +08:00
2026-09-03 20:28:57 +08:00
2026-09-05 11:10:44 +08:00
2026-09-05 11:10:44 +08:00
2026-07-23 12:03:58 +08:00
2026-09-03 20:28:57 +08:00
2026-07-21 16:52:58 +08:00
2026-07-20 11:02:41 +08:00
2026-07-12 19:22:13 +08:00
2026-07-22 09:58:32 +08:00
2026-07-21 16:52:58 +08:00
2026-07-21 16:52:58 +08:00
2026-07-20 00:03:56 +08:00
2026-07-20 00:57:46 +08:00
2026-07-17 22:35:19 +08:00
2026-07-16 23:29:48 +08:00
2026-07-20 02:48:15 +08:00
2026-07-11 23:24:54 +08:00
2026-07-18 00:46:41 +08:00
2026-09-06 21:46:16 +08:00
2026-07-19 08:02:44 +08:00
2026-07-23 20:21:27 +08:00
2026-06-24 13:37:33 +08:00
2026-06-13 15:06:11 +08:00
2026-07-08 16:23:45 +08:00
2026-06-25 18:33:26 +08:00
2026-09-09 16:04:52 +08:00
2026-06-13 15:06:11 +08:00
2026-07-22 23:40:59 +08:00
2026-09-04 03:29:34 +08:00
2026-09-03 16:55:26 +08:00
2026-07-01 19:15:35 +08:00
2026-06-26 17:36:39 +08:00
2026-06-27 19:09:31 +08:00
2026-06-27 19:09:31 +08:00
2026-04-24 22:36:57 +08:00
2026-06-05 14:30:20 +08:00
2026-09-03 20:28:57 +08:00
2026-06-24 13:37:33 +08:00
2026-07-17 17:52:30 +08:00
2026-07-17 17:51:48 +08:00
2026-07-21 20:30:49 +08:00
2026-07-02 20:12:43 +08:00
2026-09-03 17:35:26 +08:00
2026-09-16 07:36:09 +08:00
2026-09-16 02:01:33 +00:00
2026-07-18 00:46:41 +08:00
2026-07-19 15:14:13 +08:00
2026-06-29 10:45:11 +08:00
2026-07-23 12:52:26 +08:00
2026-07-01 19:15:35 +08:00
2026-07-15 22:23:17 +08:00
2026-07-08 18:34:13 +08:00
2026-09-03 17:35:26 +08:00
2026-07-17 19:51:31 +08:00
2026-09-03 17:35:26 +08:00
2026-06-29 15:40:34 +08:00
2026-07-15 22:23:17 +08:00
2026-07-19 08:59:33 +08:00
2026-09-03 17:35:26 +08:00
2026-07-19 22:23:29 +08:00
2026-09-16 00:25:15 +08:00
2026-09-16 07:36:09 +08:00
2026-07-17 00:40:00 +08:00
2026-07-18 04:15:19 +08:00
2026-07-19 21:37:03 +08:00
2026-07-19 22:32:56 +08:00
2026-07-19 22:07:31 +08:00
2026-07-20 00:03:56 +08:00
2026-07-06 13:06:12 +08:00
2026-06-28 17:32:03 +08:00
2026-07-18 01:30:50 +08:00
2026-09-15 16:10:21 +08:00
2026-07-10 22:31:28 +08:00
2026-07-10 22:31:28 +08:00
2026-07-17 22:35:19 +08:00
2026-09-03 20:28:57 +08:00
2026-07-20 00:42:11 +08:00
2026-07-20 02:48:15 +08:00
2026-07-18 00:46:41 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-19 15:14:13 +08:00
2026-09-16 02:01:33 +00:00
2026-06-27 18:55:49 +08:00
2026-06-13 15:06:11 +08:00
2026-06-07 20:16:47 +08:00