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 |
|