jxxghp
|
a69c9073cb
|
feat(transfer): implement recovery commands for discarding corrupt tasks
|
2026-09-08 23:15:38 +08:00 |
|
yanjunpu
|
83a0e21035
|
Merge remote-tracking branch 'origin/v3' into codex/manual-source-classification
|
2026-09-08 22:10:15 +08:00 |
|
jxxghp
|
f9f2601144
|
fix(transfer): deduplicate recovery failures and system alerts
|
2026-09-08 14:28:40 +08:00 |
|
yanjunpu
|
78b678a5df
|
fix(classification): add safe music category defaults
|
2026-09-08 02:24:49 +08:00 |
|
jxxghp
|
7ccb1d9dee
|
feat(classification): provide source-aware condition dictionaries
|
2026-09-07 23:21:25 +08:00 |
|
jxxghp
|
44c41ec476
|
fix(config): separate auto-update and dev tracking settings for clarity
|
2026-09-07 13:35:52 +08:00 |
|
jxxghp
|
d5605bb0a1
|
fix(scheduler): gate release update checks
|
2026-09-06 21:50:40 +08:00 |
|
jxxghp
|
fba0b6ae67
|
refactor: 统一音乐与影视的识别搜索匹配流程
|
2026-09-06 00:48:00 +08:00 |
|
jxxghp
|
71147c1d96
|
feat(classification): support multi-source media rules
|
2026-09-03 11:51:18 +08:00 |
|
Aqr-K
|
862ed4d5b8
|
fix(plugin): 插件 schema 不再回落 public,迁移目录拒绝相对路径
PostgreSQL 下 search_path 留了 public 兜底,插件 schema 里不存在的表名会继续
解析到宿主同名表,一条未限定的 DELETE 就能改到宿主数据;解析根收敛为插件自己的
schema,找不到的表名直接报错。
get_database_migrations() 的合同要求绝对路径,此前只校验目录是否存在,相对路径
会按宿主进程的当前工作目录解析成另一条迁移链,改为直接拒绝。
|
2026-09-02 02:38:18 -04:00 |
|
Aqr-K
|
a4d38e0f12
|
fix(plugin): 卸载先停后删、销毁全程持锁,PostgreSQL 会话按插件 schema 解析原生 SQL
卸载编排改为先停插件再删数据:插件的停机钩子取一次自有库句柄就能把刚删除的数据重新
建出来,注册表因此不再需要销毁墓碑,release 恢复为「只释放连接、保留数据」的单一语义。
停止同时注销插件类,其后的删除一律按 force 执行。
destroy_database 的摘句柄、关连接与删载体全部收进同一把锁:原先在锁外删除载体,并发的
get_database 能在间隙注册一个指向同一载体的新句柄,随后的删除会把它一并抹掉。
PostgreSQL 句柄在派生引擎上注册 begin 监听器,按事务执行 SET LOCAL search_path,让
schema_translate_map 覆盖不到的原生 SQL 同样解析到插件自己的 schema;监听器只挂在
OptionEngine 上,宿主引擎与其它插件的连接不受影响。
|
2026-09-02 02:14:19 -04:00 |
|
Aqr-K
|
d7c5955031
|
fix(plugin): 插件自有数据库释放与销毁全程容错,并修正建表去重与 schema 命名
release/destroy 统一经 _close_handle 先清线程局部会话再 dispose,两步失败都
只记日志:单个插件的连接池故障不再让 close_database 跳过宿主同步与异步引擎的
释放,release_all_databases 也逐插件隔离。按模型建表对 __table__ 去重,单表
继承的父子类一并声明时不再对同一张表建两次。
卸载编排先删插件数据、后停插件,停机钩子里的 get_database() 会把刚销毁的库
重新建出来:注册表记下已销毁的插件标识,其后的 release 改为再次销毁并清除
标记,ensure 则撤销标记,宿主编排代码不动。PostgreSQL schema 名在归一改写过
标识或超长时追加插件标识哈希并截到 63 字节,My-Plugin、My_Plugin 与
my_plugin 不再折叠到同一个 schema 而在卸载时互相 DROP。
start 的失败分支释放已经建立、却进不了运行态的句柄,整体停止把只登记在
_classes 里的插件一并释放。声明的迁移目录不存在时在建句柄之前抛
FileNotFoundError,不再留下空库;SQLite 迁移 URL 改由引擎渲染;
_get_sqlite_engine 的连接参数下沉到实际使用它的异步分支。
|
2026-09-02 02:14:19 -04:00 |
|
Aqr-K
|
626d8217ba
|
feat(plugin): 开放插件自有数据库声明与句柄接口
_PluginBase 新增 get_database_models()/get_database_migrations() 声明钩子
与 get_database() 句柄入口,按类名(含分身)解析插件标识;
app/sdk/database.py 导出 plugin_declarative_base 与 PluginDatabaseHandle。
docs/rules/10-data-and-persistent.md 补充 Plugin-Owned Databases 小节,
说明 db_query/db_update 的自动兜底仍绑定宿主会话、需显式传入插件会话。
|
2026-09-02 02:14:19 -04:00 |
|
jxxghp
|
ef0f4f7ef4
|
feat(agent): improve Windows shell compatibility
|
2026-09-01 17:51:15 +08:00 |
|
jxxghp
|
6d4d7331d1
|
refactor: complete agent skill API contracts
|
2026-09-01 01:19:45 +08:00 |
|
jxxghp
|
fdba2c7d64
|
refactor(agent): unify tools behind API gateway and provider skills
|
2026-08-31 16:57:54 +08:00 |
|
jxxghp
|
046b0b3051
|
refactor(startup): centralize doh and workflow services
|
2026-08-30 12:22:18 +08:00 |
|
jxxghp
|
918baf2b69
|
refactor(startup): centralize resource composition
|
2026-08-30 12:19:30 +08:00 |
|
jxxghp
|
d50177f45d
|
refactor(system): 收口系统 API 业务职责
|
2026-08-30 12:16:54 +08:00 |
|
jxxghp
|
e56d65efbc
|
refactor(startup): centralize cache composition
|
2026-08-30 12:13:10 +08:00 |
|
jxxghp
|
a350bae0d0
|
refactor(plugin): share runtime dependency owners
|
2026-08-30 12:12:01 +08:00 |
|
jxxghp
|
26a3b1cda4
|
refactor(startup): centralize chain external ports
|
2026-08-30 12:07:04 +08:00 |
|
jxxghp
|
f448a7b003
|
refactor(startup): centralize site access composition
|
2026-08-30 12:02:49 +08:00 |
|
jxxghp
|
ed94eeda92
|
refactor(startup): centralize chain network composition
|
2026-08-30 12:00:43 +08:00 |
|
jxxghp
|
2a7f8551b1
|
refactor(startup): move domain assembly to composition
|
2026-08-30 11:52:59 +08:00 |
|
jxxghp
|
f7ca7e5172
|
ci(architecture): close complexity and concurrency blind spots
|
2026-08-30 11:40:36 +08:00 |
|
jxxghp
|
0c05956814
|
refactor(architecture): enforce module naming policy
|
2026-08-29 22:17:17 +08:00 |
|
jxxghp
|
fb5d7fc593
|
refactor(torrent): group application capability
|
2026-08-29 21:28:18 +08:00 |
|
jxxghp
|
2116ccecf9
|
refactor(startup): enforce symmetric lifecycle cleanup
|
2026-08-29 18:59:14 +08:00 |
|
jxxghp
|
32cdcfcc2f
|
refactor(startup): centralize runtime composition
|
2026-08-29 18:41:31 +08:00 |
|
jxxghp
|
b658f7c2c0
|
refactor(startup): isolate chain composition
|
2026-08-29 18:10:10 +08:00 |
|
jxxghp
|
68c73f9239
|
refactor(startup): isolate agent composition
|
2026-08-29 17:43:28 +08:00 |
|
jxxghp
|
b3fe1158cc
|
refactor(startup): isolate server service composition
|
2026-08-29 17:38:29 +08:00 |
|
jxxghp
|
305f8e007c
|
refactor(startup): isolate outbox composition
|
2026-08-29 17:21:51 +08:00 |
|
jxxghp
|
084fa475eb
|
refactor(startup): extract network composition owner
|
2026-08-29 17:17:27 +08:00 |
|
jxxghp
|
da67608339
|
refactor(startup): isolate security composition
|
2026-08-29 17:03:25 +08:00 |
|
jxxghp
|
d2a860d89a
|
refactor(startup): govern composition lifecycle ownership
|
2026-08-29 16:57:53 +08:00 |
|
jxxghp
|
b4547cf043
|
refactor(startup): isolate configuration and database composition
|
2026-08-29 16:20:04 +08:00 |
|
jxxghp
|
a1e351aa9e
|
refactor(domain): isolate media source projections
|
2026-08-29 15:48:12 +08:00 |
|
jxxghp
|
dbdf7d0582
|
refactor(agent): narrow package compatibility surfaces
|
2026-08-29 14:29:42 +08:00 |
|
jxxghp
|
3a33da0b38
|
refactor(agent): split manager runtime owners
|
2026-08-29 14:26:12 +08:00 |
|
jxxghp
|
c000c4fff3
|
refactor(agent): split llm provider owners
|
2026-08-29 13:57:48 +08:00 |
|
jxxghp
|
fa40f29dfd
|
refactor(plugin): converge runtime ownership and compatibility
|
2026-08-29 12:55:52 +08:00 |
|
jxxghp
|
f38637dcea
|
refactor(api): move host orchestration into application services
|
2026-08-29 10:27:57 +08:00 |
|
jxxghp
|
13c4a71f42
|
refactor(media): split chain into governed package
|
2026-08-29 09:28:00 +08:00 |
|
jxxghp
|
13fba96fd8
|
refactor(runtime): govern dependency module naming
|
2026-08-29 08:14:21 +08:00 |
|
jxxghp
|
1c145d7169
|
refactor(search): split SearchChain responsibilities
|
2026-08-29 07:53:25 +08:00 |
|
jxxghp
|
7941fd921d
|
refactor(chain): split download orchestration package
|
2026-08-29 06:41:15 +08:00 |
|
jxxghp
|
8460e72c42
|
refactor(scheduler): split runtime owners and preserve plugin ABI
|
2026-08-28 23:17:45 +08:00 |
|
jxxghp
|
92e745fc97
|
refactor(architecture): split chain owners and close runtime boundaries
|
2026-08-28 22:26:19 +08:00 |
|