DDSRem
|
2de976f6b3
|
Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
|
2026-10-17 19:26:29 +08:00 |
|
InfinityPacer
|
810ee2896f
|
perf(startup): compose redis cache and agent memory only when used
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-09-29 20:07:34 +08:00 |
|
InfinityPacer
|
3cef2149d0
|
fix(plugin): read the runtime compatibility gate from the declared snapshot (#6761)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
2026-09-23 01:44:45 +08:00 |
|
Aqr-K
|
d44480d739
|
Merge pull request #6666 from Aqr-K/feat/plugin-instance-target-enablement
feat(plugin): 插件实例默认调用目标与启停,未指定实例时不再兜底取第一个
|
2026-09-13 16:37:27 +08:00 |
|
jxxghp
|
c60949ffff
|
Merge branch 'v3' into feat/plugin-instance-config-logging
|
2026-09-13 14:30:42 +08:00 |
|
jxxghp
|
8072b7d78f
|
Refactor application architecture and compatibility boundaries
|
2026-09-13 12:53:00 +08:00 |
|
Aqr-K
|
4dbb8b8204
|
feat(plugin): 插件配置与实例描述符迁入独立表
插件配置此前寄存在 systemconfig 的 plugin.<实例ID> 单键下,实例描述符则整份挤在
PluginInstances 这一个 JSON 键里,两者都不成立:
- plugin.<ID> 是裸字符串 key,而仓库规则本身禁止用裸字符串做 SystemConfig key,
只允许先定义 SystemConfigKey 枚举项;插件 ID 由用户安装决定,永远枚举不出常量。
条目数随安装量增长,混在系统设置表里会把主程序自己的设置项淹掉。
- 那个键存的其实是实例 ID,表里没有任何一列说得出它属于哪个插件,想列出某个插件
的全部实例配置只能靠字符串前缀去猜。
- 实例描述符整份读出再整份写回,改一个分身要重写全部分身。
改为 plugininstance 一实例一行:instance_id 与 source_plugin_id 构成身份,本体与
分身由两者是否相等派生而不设模式列——模式列会是这个等式的冗余副本,两者一旦失步
同一行就会在不同读取口被判成不同角色。展示信息与业务参数同存一行,属于同一个
生命周期,分表只会让建分身、删分身退化成两张表之间的协调问题。
读写路由落在 SystemConfigOper.get/set/delete,而不是在各个调用方各改一处:第三方
插件可能直接用 self.systemconfig.get("plugin.xxx") 读写自己的配置,只改
PluginConfigStore 与 _PluginBase.get_config/update_config 必然漏掉它们。路由只做
前缀识别,插入、更新与空本体行回收都委托 PluginInstanceOper,不在配置层重抄一遍。
PluginInstances 旧键迁移后不删,留作回滚依据,并以
SystemConfigKey.PluginInstancesImported 标志防止重复导入;判据不能是「表当前为空」,
否则用户把分身全部删光后,下次启动会把它们整批导回来。
迁移链:b2d4f6a8c1e3 -> 281965691a20(3.0.34 建表并搬描述符)
-> c4e1a7b9d2f6(3.0.35 加 config_data 并搬 plugin.* 配置)。
依赖基线与启动模块数随两个新模块重算,架构文档与数据库技能表目录同步登记新表。
|
2026-09-12 17:39:36 -04:00 |
|
jxxghp
|
66d288ffc2
|
feat(agent): isolate terminal task ownership
|
2026-09-11 03:12:16 +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 |
|
Aqr-K
|
f4c5549a37
|
feat(plugin): 接线插件自有数据库生命周期
新增 app/runtime/extensions/plugin/database.py 运行时端口(零 app.db 依赖),
PluginLifecycle.start 在 init_plugin 之后建库、_finalize 只释放不销毁;
PluginConfigStore.delete_data 在删除宿主业务数据后销毁插件自有库;
组合根 app/startup/initializers/plugins.py 把端口装配到 db 层实现。
覆盖 start→ensure / stop·reload·remove→release / delete_data→destroy
三条接线与失败策略。
|
2026-09-02 02:14:19 -04:00 |
|
jxxghp
|
db5c316756
|
refactor(subscribe): make download submission idempotent
|
2026-09-01 17:09:54 +08:00 |
|
jxxghp
|
40ad00f250
|
test(architecture): sync renamed module baselines
|
2026-08-29 22:52:14 +08:00 |
|
jxxghp
|
0c05956814
|
refactor(architecture): enforce module naming policy
|
2026-08-29 22:17:17 +08:00 |
|
jxxghp
|
fa40f29dfd
|
refactor(plugin): converge runtime ownership and compatibility
|
2026-08-29 12:55:52 +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 |
|
jxxghp
|
9bff18739d
|
refactor(runtime): own lifecycle and adapter boundaries
|
2026-08-28 18:18:07 +08:00 |
|
jxxghp
|
d9e4a973c8
|
refactor(subscription): enforce atomic mutation boundaries
|
2026-08-28 17:39:20 +08:00 |
|
jxxghp
|
eb45ed6b77
|
refactor(runtime): remove data service locators
|
2026-08-28 16:39:29 +08:00 |
|
jxxghp
|
7a10964526
|
refactor(subscription): close typed persistence boundary
|
2026-08-28 13:56:42 +08:00 |
|
jxxghp
|
aa8751f775
|
refactor: close transactional boundary debt batch
|
2026-08-28 10:36:12 +08:00 |
|
jxxghp
|
3f8d5990e7
|
refactor(user): freeze host user query ports
|
2026-08-28 08:44:35 +08:00 |
|
jxxghp
|
5fb62108ab
|
refactor(chain): type download and media server ports
|
2026-08-28 07:47:37 +08:00 |
|
jxxghp
|
ac7a201329
|
refactor(chain): remove dead data port indirection
|
2026-08-28 05:53:53 +08:00 |
|
jxxghp
|
17d8be2af2
|
refactor(workflow): isolate legacy execution writes
|
2026-08-28 02:10:40 +08:00 |
|
jxxghp
|
b4f8736541
|
refactor(workflow): enforce typed query boundary
|
2026-08-28 01:16:08 +08:00 |
|
jxxghp
|
f134e068e7
|
refactor: normalize capability module paths
|
2026-08-27 22:20:38 +08:00 |
|
jxxghp
|
e82ce8447c
|
refactor: complete durable transfer execution settlement
|
2026-08-27 20:27:42 +08:00 |
|
jxxghp
|
aac184a1b9
|
refactor(transfer): make queue admission durable
|
2026-08-27 10:57:22 +08:00 |
|
jxxghp
|
9dbe424c3d
|
refactor(config): retire RuntimeSettingsCompat host usage
|
2026-08-26 15:55:21 +08:00 |
|
InfinityPacer
|
71db425c07
|
feat(plugin): 建立可信来源准入与安装恢复 (#6462)
|
2026-08-26 07:52:00 +08:00 |
|
jxxghp
|
e9053a6562
|
refactor: bound async log writer shutdown
|
2026-08-24 15:20:10 +08:00 |
|
jxxghp
|
8826219173
|
refactor: bound shared thread pool shutdown
|
2026-08-24 14:51:38 +08:00 |
|
InfinityPacer
|
feff545b16
|
refactor: isolate agent task execution data boundary (#6433)
|
2026-08-24 12:14:46 +08:00 |
|
jxxghp
|
9f76fc9dec
|
refactor: unify workflow runtime boundary
|
2026-08-24 03:43:47 +08:00 |
|
jxxghp
|
6e69258e3c
|
refactor: make model sessions explicit
|
2026-08-23 23:33:07 +08:00 |
|
jxxghp
|
e1509c4e0d
|
refactor: reorganize startup persistence boundaries
|
2026-08-23 21:24:34 +08:00 |
|
InfinityPacer
|
0ba4a7e5e3
|
fix(agent): close async chat persistence lifecycle
|
2026-08-23 11:44:18 +08:00 |
|
InfinityPacer
|
f560c19d65
|
fix(agent): keep chat reads on native async path
|
2026-08-23 11:43:07 +08:00 |
|
InfinityPacer
|
21ce70fbfc
|
refactor(agent): route chat persistence through database worker
|
2026-08-23 11:43:07 +08:00 |
|
jxxghp
|
cd2d1517a6
|
refactor(site): route runtime queries through explicit repository
|
2026-08-23 10:36:09 +08:00 |
|
jxxghp
|
a8b3dd3988
|
fix(site): use explicit transactions for connectivity paths
|
2026-08-23 10:33:14 +08:00 |
|
InfinityPacer
|
3d7fb44dc7
|
refactor(database): isolate configuration transactions
|
2026-08-23 02:29:22 +08:00 |
|
jxxghp
|
2c6e8181c2
|
refactor: keep runtime settings below adapters
|
2026-08-23 01:45:07 +08:00 |
|
jxxghp
|
690ebe0c02
|
refactor: inject token runtime configuration
|
2026-08-23 01:14:12 +08:00 |
|
jxxghp
|
1bb6e36e8c
|
refactor: complete runtime configuration migration
|
2026-08-22 19:07:07 +08:00 |
|
jxxghp
|
be18cace1f
|
refactor: finish transactional runtime migration
|
2026-08-22 15:18:16 +08:00 |
|
jxxghp
|
e61b5168ad
|
refactor: move workflow execution writes to uow
|
2026-08-22 13:21:52 +08:00 |
|
jxxghp
|
5d9c6c8b19
|
refactor: expand runtime contracts and debt ratchets
|
2026-08-22 08:25:36 +08:00 |
|