Commit Graph

72 Commits

Author SHA1 Message Date
jxxghp
2c889a1735 fix(subscribe): 站点本地流控按限流窗口退避 (#6996) (#7001)
订阅分页搜索遇到站点本地流控(limit_interval/limit_count/limit_seconds)
拒绝时只按秒级 cooldown 反复重试,在整个限流窗口内持续触发风控。现在:

- 本地流控被拒时按站点配置窗口计算退避(访问间隔与计数窗口取最大值,
  并多留 1 秒越过窗口的严格比较边界);
- 同一退避写入站点预算冷却,窗口内其它订阅任务不会继续访问该站点;
- 本地流控没有发出请求,不计入连续失败与错误退避类别。
2026-10-15 09:14:13 +08:00
jxxghp
8cbba9916e fix(subscribe): prefer complete packs for initial TV downloads 2026-10-13 21:16:22 +08:00
jxxghp
86c7fccfd5 feat(subscribe): persist business activity with scoped details 2026-10-12 23:43:01 +08:00
jxxghp
391f55df40 feat(subscribe): add isolated execution logs with authorized streaming (#6963) 2026-10-11 22:18:37 +08:00
jxxghp
54f2daba06 fix(subscribe): stop automatic searches and downloads when paused 2026-10-09 12:00:18 +08:00
ChantXu64
e5e2558585 feat(search): 订阅补全逐页搜索、断点续搜与资源页手动分页 (#6907) 2026-10-07 14:40:55 +08:00
jxxghp
6cdd4dbc66 fix(subscribe): resolve cross-source video status without premiere year 2026-09-28 16:59:30 +08:00
jxxghp
b99b4fe2c3 chore(architecture): 同步模块路径与质量门禁 2026-09-16 00:12:16 +08:00
jxxghp
37ea8ba14d fix(subscribe): support cross-source video status lookup 2026-09-15 11:31:04 +08:00
jxxghp
01b13cc634 fix(types): annotate subscription view projection 2026-09-14 20:07:23 +08:00
jxxghp
ebddeee23b feat(subscribe): accumulate music album track progress 2026-09-14 19:35:04 +08:00
jxxghp
8072b7d78f Refactor application architecture and compatibility boundaries 2026-09-13 12:53:00 +08:00
jxxghp
1ba4d087c5 fix: scope subscription maintenance by media type 2026-09-12 20:56:05 +08:00
jxxghp
5a214afc19 fix(subscribe): keep scheduled searches progressing across site retries 2026-09-09 16:45:42 +08:00
jxxghp
a69c9073cb feat(transfer): implement recovery commands for discarding corrupt tasks 2026-09-08 23:15:38 +08:00
jxxghp
d0c894f5eb fix(transfer): close durable error recovery loop 2026-09-08 22:38:59 +08:00
jxxghp
8255df4df4 fix(subscribe): remove cumulative search delays and resume pending sites 2026-09-08 08:58:35 +08:00
jxxghp
b85aa5e31b feat(subscription): add search_interval and last_search fields for subscription management 2026-09-08 07:12:21 +08:00
jxxghp
1fb4a45064 fix(architecture): move site outcome state to budget 2026-09-05 20:14:05 +08:00
jxxghp
b4be185e44 fix(subscribe): tolerate partial site search failures 2026-09-05 20:03:09 +08:00
jxxghp
54cc3d368d refactor(subscribe): isolate queued search execution 2026-09-05 18:09:25 +08:00
jxxghp
0a732be485 feat(subscribe): improve search scheduling feedback 2026-09-05 17:23:26 +08:00
jxxghp
e3641bbfea fix: align deferred execution callback type 2026-09-04 22:36:21 +08:00
jxxghp
6cf1657311 fix: keep subscription execution dependency boundary 2026-09-04 22:26:02 +08:00
jxxghp
54557a991f refactor: keep subscription search within architecture budget 2026-09-04 22:15:42 +08:00
jxxghp
5afb1fc03e fix: defer subscription search on site budget conflicts 2026-09-04 22:05:56 +08:00
jxxghp
0d0bcf8a3b fix(api): preserve startup import budget 2026-09-04 19:04:08 +08:00
jxxghp
ff01449cdd fix(api): humanize user-facing error messages 2026-09-04 17:55:56 +08:00
InfinityPacer
e50bd06905 fix(subscription): always close search log summaries 2026-09-03 12:15:01 +08:00
jxxghp
eefc34076e Merge pull request #6561 from InfinityPacer/codex/subscription-governance-logging 2026-09-03 12:10:13 +08:00
InfinityPacer
7ed5f9f027 refactor(subscription): isolate governance observability 2026-09-03 12:08:53 +08:00
InfinityPacer
af47c1abee feat(subscription): add governance logging summaries 2026-09-03 11:55:51 +08:00
jxxghp
71147c1d96 feat(classification): support multi-source media rules 2026-09-03 11:51:18 +08:00
InfinityPacer
68880dbbf1 优化订阅执行治理与规模性能 (#6557)
* feat(subscription): govern concurrent search and match execution

* refactor(subscription): consume complete candidate snapshots

* refactor(subscription): remove download submission ledger

* feat(subscription): stagger fallback searches without site gaps

* refactor(subscription): remove unused retry capability

* test(subscription): verify complete scale execution

* fix(subscription): surface site search failures

* test(subscription): verify site pressure through search

* test(subscription): use static facade imports

* fix(subscription): preserve completed downloads on shutdown

* fix(subscription): classify execution expiry as failure

* fix(subscription): preserve fallback search staggering

* test(subscription): stabilize unfinished wrapper gate

* fix(subscription): settle expired search returns

* style(subscription): normalize governance imports

* fix(subscription): align governance type contracts

* docs(architecture): sync mypy debt metric

* docs(architecture): sync startup module counts
2026-09-03 11:26:24 +08:00
jxxghp
c20515971a fix: restore multi-exception syntax 2026-09-02 20:22:57 +08:00
jxxghp
857aa813e5 fix(subscribe): satisfy final governance gates 2026-09-01 17:50:08 +08:00
jxxghp
e57288b5ea refactor(subscribe): satisfy global governance gates 2026-09-01 17:09:55 +08:00
jxxghp
a712284dc4 feat(subscribe): expose governed execution status 2026-09-01 17:09:54 +08:00
jxxghp
db5c316756 refactor(subscribe): make download submission idempotent 2026-09-01 17:09:54 +08:00
jxxghp
bab1d2862e refactor(subscribe): govern fallback site pressure 2026-09-01 17:09:54 +08:00
jxxghp
389131acd6 refactor(subscribe): persist fallback search queue 2026-09-01 17:08:53 +08:00
jxxghp
74f6bb89b5 perf(subscribe): bound candidate routing work 2026-09-01 17:08:53 +08:00
jxxghp
77e4a80286 refactor(subscribe): reuse fresh facts within batch 2026-09-01 17:08:53 +08:00
jxxghp
250b56c523 refactor(subscribe): separate match from reconciliation 2026-09-01 17:08:53 +08:00
jxxghp
04ecfbd7f6 refactor(subscribe): introduce candidate batch index 2026-09-01 17:08:53 +08:00
jxxghp
eecde8a58d fix(subscription): avoid outbox key collisions on id reuse 2026-09-01 17:02:31 +08:00
jxxghp
d512f528be refactor(api): make collection pagination explicit 2026-09-01 09:13:56 +08:00
jxxghp
a73714e5e7 feat(agent): add compatible collection pagination 2026-09-01 07:43:55 +08:00
InfinityPacer
3d8e9d4acd 修复订阅删除结果与权限语义 (#6514)
* fix(subscribe): expose deletion outcomes

* fix(subscribe): translate deletion errors

* fix(schema): refresh subscribe exports

* chore(quality): sync ruff baseline

* fix(schema): preserve import baseline

* fix(schema): preserve mypy baseline
2026-08-31 11:59:59 +08:00
jxxghp
d9e4a973c8 refactor(subscription): enforce atomic mutation boundaries 2026-08-28 17:39:20 +08:00