refactor: restore architecture governance gates

This commit is contained in:
jxxghp
2026-08-23 20:17:28 +08:00
parent 1d2984b95f
commit 9f3be0ea4b
13 changed files with 1146 additions and 565 deletions
@@ -1,12 +1,3 @@
{
"app/agent/tools/impl/_plugin_tool_utils.py:uninstall_plugin_runtime:shutil.rmtree": 1,
"app/agent/tools/impl/scrape_metadata.py:ScrapeMetadataTool.run:Path.exists": 1,
"app/agent/tools/impl/scrape_metadata.py:ScrapeMetadataTool.run:Path.is_dir": 1,
"app/chain/media.py:MediaChain._async_music_album_dir_fallback:Path.exists": 1,
"app/chain/media.py:MediaChain._async_music_album_dir_fallback:Path.is_file": 1,
"app/chain/media.py:MediaChain.async_recognize_music_album_directory:Path.is_dir": 1,
"app/modules/acoustid/__init__.py:AcoustIdModule.async_identify_music_by_fingerprint:Path.is_file": 1,
"app/modules/discord/discord.py:Discord._send_file:Path.exists": 1,
"app/modules/discord/discord.py:Discord._send_file:Path.is_file": 1,
"app/scheduler.py:Scheduler.execute_agent_task:AgentTaskOper.get": 1
}
File diff suppressed because it is too large Load Diff
+10 -275
View File
@@ -7443,16 +7443,6 @@
"sdk_exports": {
"app.sdk": [],
"app.sdk.browser": [
{
"kind": "import",
"name": "Any",
"target": "typing.Any"
},
{
"kind": "import",
"name": "annotations",
"target": "__future__.annotations"
},
{
"kind": "FunctionDef",
"name": "launch_browser_context",
@@ -8040,275 +8030,10 @@
}
],
"app.sdk.string": [
{
"kind": "import",
"name": "Callable",
"target": "typing.Callable"
},
{
"kind": "import",
"name": "DomUtils",
"target": "app.foundation.dom.DomUtils"
},
{
"kind": "import",
"name": "HashUtils",
"target": "app.foundation.crypto.HashUtils"
},
{
"kind": "ClassDef",
"name": "StringUtils",
"target": ""
},
{
"kind": "import",
"name": "base_url",
"target": "app.foundation.url.base_url"
},
{
"kind": "import",
"name": "common_prefix",
"target": "app.foundation.text.common_prefix"
},
{
"kind": "import",
"name": "compact_numbers",
"target": "app.domain.episode.compact_numbers"
},
{
"kind": "import",
"name": "compare_version",
"target": "app.foundation.version.compare_version"
},
{
"kind": "import",
"name": "contains_chinese",
"target": "app.foundation.text.contains_chinese"
},
{
"kind": "import",
"name": "contains_japanese",
"target": "app.foundation.text.contains_japanese"
},
{
"kind": "import",
"name": "contains_korean",
"target": "app.foundation.text.contains_korean"
},
{
"kind": "import",
"name": "cookiejar_to_string",
"target": "app.foundation.text.cookiejar_to_string"
},
{
"kind": "import",
"name": "count_words",
"target": "app.foundation.text.count_words"
},
{
"kind": "import",
"name": "escape_markdown",
"target": "app.foundation.text.escape_markdown"
},
{
"kind": "import",
"name": "extract_domain",
"target": "app.domain.site.extract_domain"
},
{
"kind": "import",
"name": "extract_named_ids",
"target": "app.foundation.text.extract_named_ids"
},
{
"kind": "import",
"name": "format_amount",
"target": "app.foundation.text.format_amount"
},
{
"kind": "import",
"name": "format_approx_duration",
"target": "app.foundation.temporal.format_approx_duration"
},
{
"kind": "import",
"name": "format_compact_size",
"target": "app.foundation.size.format_compact_size"
},
{
"kind": "import",
"name": "format_duration",
"target": "app.foundation.temporal.format_duration"
},
{
"kind": "import",
"name": "format_minutes",
"target": "app.foundation.temporal.format_minutes"
},
{
"kind": "import",
"name": "format_ranges",
"target": "app.domain.episode.format_ranges"
},
{
"kind": "import",
"name": "format_remaining",
"target": "app.foundation.temporal.format_remaining"
},
{
"kind": "import",
"name": "format_size",
"target": "app.foundation.size.format_size"
},
{
"kind": "import",
"name": "format_timestamp",
"target": "app.foundation.temporal.format_timestamp"
},
{
"kind": "import",
"name": "host_label",
"target": "app.foundation.url.host_label"
},
{
"kind": "import",
"name": "is_all_chinese",
"target": "app.foundation.text.is_all_chinese"
},
{
"kind": "import",
"name": "is_english_word",
"target": "app.foundation.text.is_english_word"
},
{
"kind": "import",
"name": "is_link",
"target": "app.foundation.url.is_link"
},
{
"kind": "import",
"name": "is_magnet_link",
"target": "app.domain.torrent.is_magnet_link"
},
{
"kind": "import",
"name": "is_media_title_like",
"target": "app.domain.title.is_media_title_like"
},
{
"kind": "import",
"name": "is_number",
"target": "app.foundation.text.is_number"
},
{
"kind": "import",
"name": "natural_sort_key",
"target": "app.foundation.text.natural_sort_key"
},
{
"kind": "import",
"name": "normalize_datetime",
"target": "app.foundation.temporal.normalize_datetime"
},
{
"kind": "import",
"name": "normalize_upper",
"target": "app.foundation.text.normalize_upper"
},
{
"kind": "import",
"name": "parse_address",
"target": "app.foundation.url.parse_address"
},
{
"kind": "import",
"name": "parse_bool",
"target": "app.foundation.text.parse_bool"
},
{
"kind": "import",
"name": "parse_datetime",
"target": "app.foundation.temporal.parse_datetime"
},
{
"kind": "import",
"name": "parse_float",
"target": "app.foundation.text.parse_float"
},
{
"kind": "import",
"name": "parse_int",
"target": "app.foundation.text.parse_int"
},
{
"kind": "import",
"name": "parse_search_keyword",
"target": "app.domain.title.parse_search_keyword"
},
{
"kind": "import",
"name": "parse_size",
"target": "app.foundation.size.parse_size"
},
{
"kind": "import",
"name": "parse_timestamp",
"target": "app.foundation.temporal.parse_timestamp"
},
{
"kind": "import",
"name": "random_string",
"target": "app.foundation.text.random_string"
},
{
"kind": "import",
"name": "remove_punctuation",
"target": "app.foundation.text.remove_punctuation"
},
{
"kind": "import",
"name": "sanitize_filename",
"target": "app.foundation.text.sanitize_filename"
},
{
"kind": "import",
"name": "second_level_label",
"target": "app.foundation.url.second_level_label"
},
{
"kind": "import",
"name": "signature",
"target": "inspect.signature"
},
{
"kind": "import",
"name": "split_by_bytes",
"target": "app.foundation.text.split_by_bytes"
},
{
"kind": "import",
"name": "split_netloc",
"target": "app.foundation.url.split_netloc"
},
{
"kind": "import",
"name": "strip_optional",
"target": "app.foundation.text.strip_optional"
},
{
"kind": "import",
"name": "title_case",
"target": "app.foundation.text.title_case"
},
{
"kind": "import",
"name": "urls_match",
"target": "app.domain.site.urls_match"
},
{
"kind": "import",
"name": "wraps",
"target": "functools.wraps"
}
],
"app.sdk.utilities": [
@@ -8362,6 +8087,16 @@
"name": "cut",
"target": "app.foundation.text.cut"
},
{
"kind": "alias",
"name": "decrypt",
"target": "app.foundation.crypto.CryptoJsUtils.decrypt"
},
{
"kind": "alias",
"name": "encrypt",
"target": "app.foundation.crypto.CryptoJsUtils.encrypt"
},
{
"kind": "import",
"name": "log_execution_time",
+164 -130
View File
@@ -1,41 +1,41 @@
{
"schema_version": 1,
"generated_at": "2026-08-21T12:02:30.246931+00:00",
"platform": "macOS-26.5.2-arm64-arm-64bit",
"python": "3.12.6",
"schema_version": 2,
"generated_at": "2026-08-23T08:11:40.406030+00:00",
"platform": "macOS-26.5.2-arm64-arm-64bit-Mach-O",
"python": "3.14.3",
"repeat": 3,
"targets": {
"app.startup.lifecycle": {
"loaded_module_count": 1810,
"max_ms": 987.312,
"median_ms": 984.741,
"min_ms": 983.917,
"loaded_app_module_count": 362,
"max_ms": 944.347,
"median_ms": 935.035,
"min_ms": 933.625,
"samples_ms": [
987.312,
984.741,
983.917
944.347,
935.035,
933.625
]
},
"app.factory": {
"loaded_module_count": 1820,
"max_ms": 1015.426,
"median_ms": 999.369,
"min_ms": 996.521,
"loaded_app_module_count": 374,
"max_ms": 950.655,
"median_ms": 950.429,
"min_ms": 947.964,
"samples_ms": [
996.521,
999.369,
1015.426
950.655,
947.964,
950.429
]
},
"app.main": {
"loaded_module_count": 1844,
"max_ms": 1057.647,
"median_ms": 1037.08,
"min_ms": 1034.011,
"loaded_app_module_count": 376,
"max_ms": 1150.269,
"median_ms": 1103.976,
"min_ms": 1097.978,
"samples_ms": [
1057.647,
1034.011,
1037.08
1103.976,
1097.978,
1150.269
]
}
},
@@ -46,55 +46,26 @@
"samples": [
{
"mode": "normal",
"enabled_component_count": 15,
"startup_ms": 0.569,
"full_lifespan_ms": 0.669,
"enabled_component_count": 16,
"startup_ms": 0.721,
"full_lifespan_ms": 0.907,
"stage_ms": {
"数据库准备": 0.08,
"HTTP 基础能力": 0.035,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.029,
"数据库连接预算": 0.025,
"路由": 0.024,
"后台任务登记器": 0.084,
"数据库准备": 0.038,
"HTTP 基础能力": 0.028,
"领域依赖装配": 0.027,
"数据库引擎预热": 0.024,
"数据库连接预算": 0.024,
"路由": 0.023,
"模块服务": 0.024,
"插件备份恢复": 0.023,
"插件": 0.021,
"定时器": 0.019,
"监控器": 0.022,
"待处理整理回放": 0.021,
"命令服务": 0.019,
"工作流": 0.021,
"插件同步与启动收尾": 0.032
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 2,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "normal",
"enabled_component_count": 15,
"startup_ms": 0.548,
"full_lifespan_ms": 0.641,
"stage_ms": {
"数据库准备": 0.071,
"HTTP 基础能力": 0.033,
"领域依赖装配": 0.032,
"数据库引擎预热": 0.028,
"数据库连接预算": 0.025,
"路由": 0.022,
"模块服务": 0.023,
"插件备份恢复": 0.019,
"插件": 0.02,
"定时器": 0.022,
"插件": 0.029,
"定时器": 0.023,
"监控器": 0.024,
"待处理整理回放": 0.019,
"命令服务": 0.022,
"工作流": 0.022,
"插件同步与启动收尾": 0.028
"待处理整理回放": 0.021,
"命令服务": 0.025,
"工作流": 0.02,
"插件同步与启动收尾": 0.031
},
"threads_before": 2,
"threads_started": 2,
@@ -106,25 +77,57 @@
},
{
"mode": "normal",
"enabled_component_count": 15,
"startup_ms": 0.687,
"full_lifespan_ms": 0.795,
"enabled_component_count": 16,
"startup_ms": 0.614,
"full_lifespan_ms": 0.788,
"stage_ms": {
"数据库准备": 0.083,
"HTTP 基础能力": 0.035,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.033,
"数据库连接预算": 0.027,
"路由": 0.021,
"模块服务": 0.019,
"插件备份恢复": 0.064,
"插件": 0.032,
"后台任务登记器": 0.075,
"数据库准备": 0.037,
"HTTP 基础能力": 0.029,
"领域依赖装配": 0.027,
"数据库引擎预热": 0.023,
"数据库连接预算": 0.024,
"路由": 0.023,
"模块服务": 0.023,
"插件备份恢复": 0.023,
"插件": 0.024,
"定时器": 0.025,
"监控器": 0.028,
"待处理整理回放": 0.025,
"监控器": 0.023,
"待处理整理回放": 0.022,
"命令服务": 0.021,
"工作流": 0.022,
"插件同步与启动收尾": 0.03
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 2,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "normal",
"enabled_component_count": 16,
"startup_ms": 0.611,
"full_lifespan_ms": 0.785,
"stage_ms": {
"后台任务登记器": 0.072,
"数据库准备": 0.033,
"HTTP 基础能力": 0.026,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.023,
"数据库连接预算": 0.022,
"路由": 0.024,
"模块服务": 0.02,
"插件备份恢复": 0.023,
"插件": 0.024,
"定时器": 0.026,
"监控器": 0.024,
"待处理整理回放": 0.023,
"命令服务": 0.024,
"工作流": 0.024,
"插件同步与启动收尾": 0.037
"工作流": 0.022,
"插件同步与启动收尾": 0.031
},
"threads_before": 2,
"threads_started": 2,
@@ -135,20 +138,63 @@
"database_connections_started": 0
}
],
"median_startup_ms": 0.569,
"median_full_lifespan_ms": 0.669,
"enabled_component_count": 15
"median_startup_ms": 0.614,
"median_full_lifespan_ms": 0.788,
"enabled_component_count": 16,
"enabled_components": [
"后台任务登记器",
"数据库准备",
"HTTP 基础能力",
"领域依赖装配",
"数据库引擎预热",
"数据库连接预算",
"路由",
"模块服务",
"插件备份恢复",
"插件",
"定时器",
"监控器",
"待处理整理回放",
"命令服务",
"工作流",
"插件备份"
]
},
"safe": {
"samples": [
{
"mode": "safe",
"enabled_component_count": 7,
"startup_ms": 0.408,
"full_lifespan_ms": 0.531,
"enabled_component_count": 8,
"startup_ms": 0.463,
"full_lifespan_ms": 0.667,
"stage_ms": {
"数据库准备": 0.077,
"HTTP 基础能力": 0.035,
"后台任务登记器": 0.075,
"数据库准备": 0.035,
"HTTP 基础能力": 0.03,
"领域依赖装配": 0.032,
"数据库引擎预热": 0.024,
"数据库连接预算": 0.022,
"路由": 0.025,
"模块服务": 0.022,
"插件同步与启动收尾": 0.058
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 2,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "safe",
"enabled_component_count": 8,
"startup_ms": 0.474,
"full_lifespan_ms": 0.68,
"stage_ms": {
"后台任务登记器": 0.076,
"数据库准备": 0.043,
"HTTP 基础能力": 0.029,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.026,
"数据库连接预算": 0.024,
@@ -166,41 +212,19 @@
},
{
"mode": "safe",
"enabled_component_count": 7,
"startup_ms": 0.416,
"full_lifespan_ms": 0.534,
"enabled_component_count": 8,
"startup_ms": 0.454,
"full_lifespan_ms": 0.657,
"stage_ms": {
"数据库准备": 0.079,
"HTTP 基础能力": 0.036,
"领域依赖装配": 0.029,
"数据库引擎预热": 0.027,
"数据库连接预算": 0.026,
"路由": 0.026,
"模块服务": 0.021,
"插件同步与启动收尾": 0.054
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 2,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "safe",
"enabled_component_count": 7,
"startup_ms": 0.397,
"full_lifespan_ms": 0.52,
"stage_ms": {
"数据库准备": 0.07,
"HTTP 基础能力": 0.033,
"领域依赖装配": 0.026,
"数据库引擎预热": 0.027,
"数据库连接预算": 0.029,
"后台任务登记器": 0.075,
"数据库准备": 0.036,
"HTTP 基础能力": 0.028,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.025,
"数据库连接预算": 0.024,
"路由": 0.024,
"模块服务": 0.022,
"插件同步与启动收尾": 0.051
"模块服务": 0.024,
"插件同步与启动收尾": 0.06
},
"threads_before": 2,
"threads_started": 2,
@@ -211,9 +235,19 @@
"database_connections_started": 0
}
],
"median_startup_ms": 0.408,
"median_full_lifespan_ms": 0.531,
"enabled_component_count": 7
"median_startup_ms": 0.463,
"median_full_lifespan_ms": 0.667,
"enabled_component_count": 8,
"enabled_components": [
"后台任务登记器",
"数据库准备",
"HTTP 基础能力",
"领域依赖装配",
"数据库引擎预热",
"数据库连接预算",
"路由",
"模块服务"
]
}
}
}