refactor: reorganize startup persistence boundaries

This commit is contained in:
jxxghp
2026-08-23 21:24:34 +08:00
parent 7f09927c47
commit e1509c4e0d
96 changed files with 1036 additions and 782 deletions
+6 -6
View File
@@ -51,7 +51,7 @@ def configure_plugin_system_services():
)
from app.runtime.config import settings
from app.runtime.settings import configure_runtime_setting_provider
from app.startup.configuration import (
from app.startup.composition.configuration import (
build_api_runtime_config,
build_chain_runtime_config,
build_scheduler_runtime_config,
@@ -153,11 +153,11 @@ def configure_plugin_system_services():
from app.db.oper.workflow import WorkflowOper, configure_workflow_legacy_writer
from app.db.oper.message import MessageOper
from app.db.oper.passkey import PassKeyOper
from app.startup.subscription import TransactionalSubscribeWriter
from app.startup.download_failure import TransactionalDownloadFailureRepository
from app.startup.site import TransactionalSiteRepository
from app.startup.workflow import TransactionalWorkflowExecutionService
from app.startup.transaction import TransactionalWriteRunner
from app.db.adapters.subscription import TransactionalSubscribeWriter
from app.db.adapters.download import TransactionalDownloadFailureRepository
from app.db.adapters.site import TransactionalSiteRepository
from app.db.adapters.workflow import TransactionalWorkflowExecutionService
from app.db.adapters.transaction import TransactionalWriteRunner
def compatibility_sync_session() -> Session:
"""动态读取可被存量隔离数据库用例替换的 ScopedSession。"""
@@ -25,7 +25,7 @@
"system_config_oper_constructions": {
"calls": [
{
"file": "app/startup/modules_initializer.py",
"file": "app/startup/initializers/modules.py",
"name": "SystemConfigOper"
}
],
+402 -366
View File
@@ -13,8 +13,8 @@
"runtime_to_db": [],
"workflow_to_db": []
},
"edge_count": 6483,
"edge_sha256": "0a2f82ca189468d5e954b06a2c188c4ea5380a76c7c64039c7f6eb843cb60523",
"edge_count": 6514,
"edge_sha256": "eda9bc500158baa80dc5013eb4e409aa57cb70446e59a52b7e782cb9c58f9c34",
"edges": [
"app -> app.runtime",
"app -> app.runtime.compat",
@@ -1513,7 +1513,8 @@
"app.api.context -> app.runtime",
"app.api.context -> app.runtime.tasks",
"app.api.context -> app.startup",
"app.api.context -> app.startup.context",
"app.api.context -> app.startup.composition",
"app.api.context -> app.startup.composition.context",
"app.api.dependencies.agent -> app.api",
"app.api.dependencies.agent -> app.api.context",
"app.api.dependencies.agent -> app.application",
@@ -1521,7 +1522,8 @@
"app.api.dependencies.agent -> app.application.messaging.chat",
"app.api.dependencies.agent -> app.application.messaging.message",
"app.api.dependencies.agent -> app.startup",
"app.api.dependencies.agent -> app.startup.context",
"app.api.dependencies.agent -> app.startup.composition",
"app.api.dependencies.agent -> app.startup.composition.context",
"app.api.dependencies.auth -> app.adapters",
"app.api.dependencies.auth -> app.adapters.web",
"app.api.dependencies.auth -> app.adapters.web.security",
@@ -1536,7 +1538,8 @@
"app.api.dependencies.auth -> app.schemas",
"app.api.dependencies.auth -> app.schemas.token",
"app.api.dependencies.auth -> app.startup",
"app.api.dependencies.auth -> app.startup.context",
"app.api.dependencies.auth -> app.startup.composition",
"app.api.dependencies.auth -> app.startup.composition.context",
"app.api.dependencies.data -> app.api",
"app.api.dependencies.data -> app.api.data",
"app.api.dependencies.history -> app.api",
@@ -1554,7 +1557,8 @@
"app.api.dependencies.history -> app.schemas.types",
"app.api.dependencies.history -> app.schemas.workflow",
"app.api.dependencies.history -> app.startup",
"app.api.dependencies.history -> app.startup.context",
"app.api.dependencies.history -> app.startup.composition",
"app.api.dependencies.history -> app.startup.composition.context",
"app.api.dependencies.plugin -> app.application",
"app.api.dependencies.plugin -> app.application.commands",
"app.api.dependencies.plugin -> app.application.plugin",
@@ -1582,7 +1586,8 @@
"app.api.dependencies.site -> app.schemas",
"app.api.dependencies.site -> app.schemas.types",
"app.api.dependencies.site -> app.startup",
"app.api.dependencies.site -> app.startup.context",
"app.api.dependencies.site -> app.startup.composition",
"app.api.dependencies.site -> app.startup.composition.context",
"app.api.dependencies.subscription -> app.adapters",
"app.api.dependencies.subscription -> app.adapters.external",
"app.api.dependencies.subscription -> app.adapters.external.server",
@@ -1605,7 +1610,8 @@
"app.api.dependencies.subscription -> app.schemas",
"app.api.dependencies.subscription -> app.schemas.types",
"app.api.dependencies.subscription -> app.startup",
"app.api.dependencies.subscription -> app.startup.context",
"app.api.dependencies.subscription -> app.startup.composition",
"app.api.dependencies.subscription -> app.startup.composition.context",
"app.api.dependencies.workflow -> app.adapters",
"app.api.dependencies.workflow -> app.adapters.external",
"app.api.dependencies.workflow -> app.adapters.external.server",
@@ -1617,7 +1623,8 @@
"app.api.dependencies.workflow -> app.runtime",
"app.api.dependencies.workflow -> app.runtime.config",
"app.api.dependencies.workflow -> app.startup",
"app.api.dependencies.workflow -> app.startup.context",
"app.api.dependencies.workflow -> app.startup.composition",
"app.api.dependencies.workflow -> app.startup.composition.context",
"app.api.dependencies.workflow -> app.workflow",
"app.api.deps -> app.api",
"app.api.deps -> app.api.dependencies",
@@ -2666,6 +2673,8 @@
"app.application.notification -> app.schemas",
"app.application.notification -> app.schemas.system",
"app.application.notification -> app.schemas.types",
"app.application.plugin.config -> app.schemas",
"app.application.plugin.config -> app.schemas.exception",
"app.application.plugin.folders -> app.application",
"app.application.plugin.folders -> app.application.configuration",
"app.application.plugin.folders -> app.runtime",
@@ -3457,7 +3466,8 @@
"app.cli -> app.runtime.settings",
"app.cli -> app.runtime.state",
"app.cli -> app.startup",
"app.cli -> app.startup.database",
"app.cli -> app.startup.composition",
"app.cli -> app.startup.composition.database",
"app.command -> app.application",
"app.command -> app.application.messaging",
"app.command -> app.application.messaging.message",
@@ -3484,6 +3494,49 @@
"app.command -> app.schemas.event",
"app.command -> app.schemas.message",
"app.command -> app.schemas.types",
"app.db.adapters.chain -> app.application",
"app.db.adapters.chain -> app.application.chain",
"app.db.adapters.chain -> app.application.chain.durable_events",
"app.db.adapters.chain -> app.application.history",
"app.db.adapters.chain -> app.application.outbox",
"app.db.adapters.chain -> app.db",
"app.db.adapters.chain -> app.db.adapters",
"app.db.adapters.chain -> app.db.adapters.outbox",
"app.db.adapters.chain -> app.db.oper",
"app.db.adapters.chain -> app.db.oper.downloadhistory",
"app.db.adapters.chain -> app.db.oper.transferhistory",
"app.db.adapters.chain -> app.db.uow",
"app.db.adapters.download -> app.db",
"app.db.adapters.download -> app.db.oper",
"app.db.adapters.download -> app.db.oper.downloadfailure",
"app.db.adapters.download -> app.db.uow",
"app.db.adapters.outbox -> app.application",
"app.db.adapters.outbox -> app.application.outbox",
"app.db.adapters.outbox -> app.db",
"app.db.adapters.outbox -> app.db.base",
"app.db.adapters.outbox -> app.db.models",
"app.db.adapters.outbox -> app.db.models.outbox",
"app.db.adapters.site -> app.db",
"app.db.adapters.site -> app.db.oper",
"app.db.adapters.site -> app.db.oper.site",
"app.db.adapters.site -> app.db.uow",
"app.db.adapters.subscription -> app.application",
"app.db.adapters.subscription -> app.application.subscription",
"app.db.adapters.subscription -> app.application.subscription.write",
"app.db.adapters.subscription -> app.db",
"app.db.adapters.subscription -> app.db.adapters",
"app.db.adapters.subscription -> app.db.adapters.outbox",
"app.db.adapters.subscription -> app.db.oper",
"app.db.adapters.subscription -> app.db.oper.subscribe",
"app.db.adapters.subscription -> app.db.uow",
"app.db.adapters.transaction -> app.db",
"app.db.adapters.transaction -> app.db.uow",
"app.db.adapters.workflow -> app.application",
"app.db.adapters.workflow -> app.application.workflow",
"app.db.adapters.workflow -> app.db",
"app.db.adapters.workflow -> app.db.oper",
"app.db.adapters.workflow -> app.db.oper.workflow",
"app.db.adapters.workflow -> app.db.uow",
"app.db.base -> app.db",
"app.db.base -> app.db.decorators",
"app.db.base -> app.db.uow",
@@ -5587,6 +5640,8 @@
"app.runtime.extensions.module_manager -> app.runtime.settings",
"app.runtime.extensions.module_manager -> app.schemas",
"app.runtime.extensions.module_manager -> app.schemas.types",
"app.runtime.extensions.plugin.admission -> app.schemas",
"app.runtime.extensions.plugin.admission -> app.schemas.exception",
"app.runtime.extensions.plugin.catalog -> app.foundation",
"app.runtime.extensions.plugin.catalog -> app.foundation.version",
"app.runtime.extensions.plugin.catalog -> app.runtime",
@@ -5653,6 +5708,7 @@
"app.runtime.extensions.plugin_manager -> app.runtime.extensions",
"app.runtime.extensions.plugin_manager -> app.runtime.extensions.plugin",
"app.runtime.extensions.plugin_manager -> app.runtime.extensions.plugin.access",
"app.runtime.extensions.plugin_manager -> app.runtime.extensions.plugin.admission",
"app.runtime.extensions.plugin_manager -> app.runtime.extensions.plugin.catalog",
"app.runtime.extensions.plugin_manager -> app.runtime.extensions.plugin.clone",
"app.runtime.extensions.plugin_manager -> app.runtime.extensions.plugin.dependency",
@@ -5673,6 +5729,7 @@
"app.runtime.extensions.plugin_manager -> app.runtime.settings",
"app.runtime.extensions.plugin_manager -> app.runtime.thread",
"app.runtime.extensions.plugin_manager -> app.schemas",
"app.runtime.extensions.plugin_manager -> app.schemas.exception",
"app.runtime.extensions.plugin_manager -> app.schemas.plugin",
"app.runtime.extensions.plugin_manager -> app.schemas.types",
"app.runtime.extensions.service_config -> app.runtime",
@@ -5962,109 +6019,295 @@
"app.sdk.utilities -> app.runtime.scheduling",
"app.sdk.utilities -> app.sdk",
"app.sdk.utilities -> app.sdk.string",
"app.startup.agent_initializer -> app.agent",
"app.startup.agent_initializer -> app.agent.llm",
"app.startup.agent_initializer -> app.agent.llm.capability",
"app.startup.agent_initializer -> app.agent.llm.gateway",
"app.startup.agent_initializer -> app.agent.llm.helper",
"app.startup.agent_initializer -> app.agent.llm.provider",
"app.startup.agent_initializer -> app.agent.prompt",
"app.startup.agent_initializer -> app.agent.prompt.transfer_redo",
"app.startup.agent_initializer -> app.agent.runtime_loader",
"app.startup.agent_initializer -> app.agent.skills",
"app.startup.agent_initializer -> app.agent.skills.registry",
"app.startup.agent_initializer -> app.agent.tools",
"app.startup.agent_initializer -> app.agent.tools.base",
"app.startup.agent_initializer -> app.application",
"app.startup.agent_initializer -> app.application.agent",
"app.startup.agent_initializer -> app.application.messaging",
"app.startup.agent_initializer -> app.application.messaging.skill",
"app.startup.agent_initializer -> app.runtime",
"app.startup.agent_initializer -> app.runtime.events",
"app.startup.agent_initializer -> app.runtime.log",
"app.startup.agent_initializer -> app.runtime.settings",
"app.startup.agent_initializer -> app.schemas",
"app.startup.agent_initializer -> app.schemas.types",
"app.startup.cache_initializer -> app.adapters",
"app.startup.cache_initializer -> app.adapters.cache",
"app.startup.cache_initializer -> app.adapters.cache.backends",
"app.startup.chain_events -> app.application",
"app.startup.chain_events -> app.application.chain",
"app.startup.chain_events -> app.application.chain.durable_events",
"app.startup.chain_events -> app.application.history",
"app.startup.chain_events -> app.application.outbox",
"app.startup.chain_events -> app.db",
"app.startup.chain_events -> app.db.oper",
"app.startup.chain_events -> app.db.oper.downloadhistory",
"app.startup.chain_events -> app.db.oper.transferhistory",
"app.startup.chain_events -> app.db.uow",
"app.startup.chain_events -> app.startup",
"app.startup.chain_events -> app.startup.outbox",
"app.startup.command_initializer -> app.application",
"app.startup.command_initializer -> app.application.commands",
"app.startup.command_initializer -> app.command",
"app.startup.configuration -> app.application",
"app.startup.configuration -> app.application.configuration",
"app.startup.configuration -> app.runtime",
"app.startup.configuration -> app.runtime.config",
"app.startup.configuration -> app.schemas",
"app.startup.configuration -> app.schemas.types",
"app.startup.context -> app.application",
"app.startup.context -> app.application.configuration",
"app.startup.context -> app.application.messaging",
"app.startup.context -> app.application.messaging.chat",
"app.startup.context -> app.application.outbox",
"app.startup.context -> app.application.subscription",
"app.startup.context -> app.application.subscription.delete",
"app.startup.context -> app.application.subscription.identity",
"app.startup.context -> app.application.subscription.mutation",
"app.startup.context -> app.application.workflow",
"app.startup.context -> app.runtime",
"app.startup.context -> app.runtime.tasks",
"app.startup.database -> app.adapters",
"app.startup.database -> app.adapters.system",
"app.startup.database -> app.adapters.system.backup",
"app.startup.database -> app.adapters.system.backup.database",
"app.startup.database -> app.application",
"app.startup.database -> app.application.backup",
"app.startup.database -> app.application.database",
"app.startup.database -> app.application.maintenance",
"app.startup.database -> app.db",
"app.startup.database -> app.db.engine",
"app.startup.database -> app.db.health",
"app.startup.database -> app.db.maintenance",
"app.startup.database -> app.db.session",
"app.startup.database -> app.runtime",
"app.startup.database -> app.runtime.settings",
"app.startup.database_initializer -> app.db",
"app.startup.database_initializer -> app.db.base",
"app.startup.database_initializer -> app.db.engine",
"app.startup.database_initializer -> app.db.models",
"app.startup.database_initializer -> app.runtime",
"app.startup.database_initializer -> app.runtime.log",
"app.startup.database_initializer -> app.runtime.settings",
"app.startup.database_initializer -> app.startup",
"app.startup.database_initializer -> app.startup.database",
"app.startup.domain_initializer -> app.adapters",
"app.startup.domain_initializer -> app.adapters.system",
"app.startup.domain_initializer -> app.adapters.system.rust",
"app.startup.domain_initializer -> app.application",
"app.startup.domain_initializer -> app.application.recognition",
"app.startup.domain_initializer -> app.domain",
"app.startup.domain_initializer -> app.domain.context",
"app.startup.domain_initializer -> app.domain.media",
"app.startup.domain_initializer -> app.domain.meta",
"app.startup.domain_initializer -> app.domain.meta.customization",
"app.startup.domain_initializer -> app.domain.meta.releasegroup",
"app.startup.domain_initializer -> app.domain.meta.runtime",
"app.startup.domain_initializer -> app.domain.meta.words",
"app.startup.domain_initializer -> app.domain.metainfo",
"app.startup.domain_initializer -> app.runtime",
"app.startup.domain_initializer -> app.runtime.settings",
"app.startup.download_failure -> app.db",
"app.startup.download_failure -> app.db.oper",
"app.startup.download_failure -> app.db.oper.downloadfailure",
"app.startup.download_failure -> app.db.uow",
"app.startup.composition.configuration -> app.application",
"app.startup.composition.configuration -> app.application.configuration",
"app.startup.composition.configuration -> app.runtime",
"app.startup.composition.configuration -> app.runtime.config",
"app.startup.composition.configuration -> app.schemas",
"app.startup.composition.configuration -> app.schemas.types",
"app.startup.composition.context -> app.application",
"app.startup.composition.context -> app.application.configuration",
"app.startup.composition.context -> app.application.messaging",
"app.startup.composition.context -> app.application.messaging.chat",
"app.startup.composition.context -> app.application.outbox",
"app.startup.composition.context -> app.application.subscription",
"app.startup.composition.context -> app.application.subscription.delete",
"app.startup.composition.context -> app.application.subscription.identity",
"app.startup.composition.context -> app.application.subscription.mutation",
"app.startup.composition.context -> app.application.workflow",
"app.startup.composition.context -> app.runtime",
"app.startup.composition.context -> app.runtime.tasks",
"app.startup.composition.database -> app.adapters",
"app.startup.composition.database -> app.adapters.system",
"app.startup.composition.database -> app.adapters.system.backup",
"app.startup.composition.database -> app.adapters.system.backup.database",
"app.startup.composition.database -> app.application",
"app.startup.composition.database -> app.application.backup",
"app.startup.composition.database -> app.application.database",
"app.startup.composition.database -> app.application.maintenance",
"app.startup.composition.database -> app.db",
"app.startup.composition.database -> app.db.engine",
"app.startup.composition.database -> app.db.health",
"app.startup.composition.database -> app.db.maintenance",
"app.startup.composition.database -> app.db.session",
"app.startup.composition.database -> app.runtime",
"app.startup.composition.database -> app.runtime.settings",
"app.startup.composition.subscription -> app.adapters",
"app.startup.composition.subscription -> app.adapters.external",
"app.startup.composition.subscription -> app.adapters.external.server",
"app.startup.composition.subscription -> app.application",
"app.startup.composition.subscription -> app.application.subscription",
"app.startup.composition.subscription -> app.application.subscription.complete",
"app.startup.composition.subscription -> app.application.subscription.delete",
"app.startup.composition.subscription -> app.application.subscription.mutation",
"app.startup.composition.subscription -> app.db",
"app.startup.composition.subscription -> app.db.adapters",
"app.startup.composition.subscription -> app.db.adapters.outbox",
"app.startup.composition.subscription -> app.db.oper",
"app.startup.composition.subscription -> app.db.oper.subscribe",
"app.startup.composition.subscription -> app.db.oper.subscribehistory",
"app.startup.composition.subscription -> app.db.session",
"app.startup.composition.subscription -> app.db.uow",
"app.startup.composition.subscription -> app.runtime",
"app.startup.composition.subscription -> app.runtime.events",
"app.startup.composition.subscription -> app.schemas",
"app.startup.composition.subscription -> app.schemas.types",
"app.startup.initializers.agent -> app.agent",
"app.startup.initializers.agent -> app.agent.llm",
"app.startup.initializers.agent -> app.agent.llm.capability",
"app.startup.initializers.agent -> app.agent.llm.gateway",
"app.startup.initializers.agent -> app.agent.llm.helper",
"app.startup.initializers.agent -> app.agent.llm.provider",
"app.startup.initializers.agent -> app.agent.prompt",
"app.startup.initializers.agent -> app.agent.prompt.transfer_redo",
"app.startup.initializers.agent -> app.agent.runtime_loader",
"app.startup.initializers.agent -> app.agent.skills",
"app.startup.initializers.agent -> app.agent.skills.registry",
"app.startup.initializers.agent -> app.agent.tools",
"app.startup.initializers.agent -> app.agent.tools.base",
"app.startup.initializers.agent -> app.application",
"app.startup.initializers.agent -> app.application.agent",
"app.startup.initializers.agent -> app.application.messaging",
"app.startup.initializers.agent -> app.application.messaging.skill",
"app.startup.initializers.agent -> app.runtime",
"app.startup.initializers.agent -> app.runtime.events",
"app.startup.initializers.agent -> app.runtime.log",
"app.startup.initializers.agent -> app.runtime.settings",
"app.startup.initializers.agent -> app.schemas",
"app.startup.initializers.agent -> app.schemas.types",
"app.startup.initializers.cache -> app.adapters",
"app.startup.initializers.cache -> app.adapters.cache",
"app.startup.initializers.cache -> app.adapters.cache.backends",
"app.startup.initializers.command -> app.application",
"app.startup.initializers.command -> app.application.commands",
"app.startup.initializers.command -> app.command",
"app.startup.initializers.database -> app.db",
"app.startup.initializers.database -> app.db.base",
"app.startup.initializers.database -> app.db.engine",
"app.startup.initializers.database -> app.db.models",
"app.startup.initializers.database -> app.runtime",
"app.startup.initializers.database -> app.runtime.log",
"app.startup.initializers.database -> app.runtime.settings",
"app.startup.initializers.database -> app.startup",
"app.startup.initializers.database -> app.startup.composition",
"app.startup.initializers.database -> app.startup.composition.database",
"app.startup.initializers.domain -> app.adapters",
"app.startup.initializers.domain -> app.adapters.system",
"app.startup.initializers.domain -> app.adapters.system.rust",
"app.startup.initializers.domain -> app.application",
"app.startup.initializers.domain -> app.application.recognition",
"app.startup.initializers.domain -> app.domain",
"app.startup.initializers.domain -> app.domain.context",
"app.startup.initializers.domain -> app.domain.media",
"app.startup.initializers.domain -> app.domain.meta",
"app.startup.initializers.domain -> app.domain.meta.customization",
"app.startup.initializers.domain -> app.domain.meta.releasegroup",
"app.startup.initializers.domain -> app.domain.meta.runtime",
"app.startup.initializers.domain -> app.domain.meta.words",
"app.startup.initializers.domain -> app.domain.metainfo",
"app.startup.initializers.domain -> app.runtime",
"app.startup.initializers.domain -> app.runtime.settings",
"app.startup.initializers.managed_resources -> app.runtime",
"app.startup.initializers.managed_resources -> app.runtime.capabilities",
"app.startup.initializers.managed_resources -> app.runtime.capabilities.runtime",
"app.startup.initializers.managed_resources -> app.runtime.extensions",
"app.startup.initializers.managed_resources -> app.runtime.extensions.managed_resource_adapter",
"app.startup.initializers.managed_resources -> app.runtime.managed_resources",
"app.startup.initializers.modules -> app.adapters",
"app.startup.initializers.modules -> app.adapters.cache",
"app.startup.initializers.modules -> app.adapters.cache.redis",
"app.startup.initializers.modules -> app.adapters.external",
"app.startup.initializers.modules -> app.adapters.external.server",
"app.startup.initializers.modules -> app.adapters.network",
"app.startup.initializers.modules -> app.adapters.network.browser",
"app.startup.initializers.modules -> app.adapters.network.doh",
"app.startup.initializers.modules -> app.adapters.system",
"app.startup.initializers.modules -> app.adapters.system.host",
"app.startup.initializers.modules -> app.adapters.system.resource",
"app.startup.initializers.modules -> app.adapters.web",
"app.startup.initializers.modules -> app.adapters.web.security",
"app.startup.initializers.modules -> app.adapters.web.security.access",
"app.startup.initializers.modules -> app.api",
"app.startup.initializers.modules -> app.api.data",
"app.startup.initializers.modules -> app.application",
"app.startup.initializers.modules -> app.application.agentdata",
"app.startup.initializers.modules -> app.application.chain",
"app.startup.initializers.modules -> app.application.chain.context",
"app.startup.initializers.modules -> app.application.chain.data",
"app.startup.initializers.modules -> app.application.chain.durable_events",
"app.startup.initializers.modules -> app.application.configuration",
"app.startup.initializers.modules -> app.application.database",
"app.startup.initializers.modules -> app.application.history",
"app.startup.initializers.modules -> app.application.image",
"app.startup.initializers.modules -> app.application.messaging",
"app.startup.initializers.modules -> app.application.messaging.agent",
"app.startup.initializers.modules -> app.application.messaging.chat",
"app.startup.initializers.modules -> app.application.messaging.message",
"app.startup.initializers.modules -> app.application.module",
"app.startup.initializers.modules -> app.application.outbox",
"app.startup.initializers.modules -> app.application.plugin",
"app.startup.initializers.modules -> app.application.plugin.runtime",
"app.startup.initializers.modules -> app.application.security",
"app.startup.initializers.modules -> app.application.security.auth",
"app.startup.initializers.modules -> app.application.security.passkeys",
"app.startup.initializers.modules -> app.application.security.user",
"app.startup.initializers.modules -> app.application.security.userconfig",
"app.startup.initializers.modules -> app.application.server",
"app.startup.initializers.modules -> app.application.server.report",
"app.startup.initializers.modules -> app.application.server.share",
"app.startup.initializers.modules -> app.application.service",
"app.startup.initializers.modules -> app.application.site",
"app.startup.initializers.modules -> app.application.site.health",
"app.startup.initializers.modules -> app.application.site.query",
"app.startup.initializers.modules -> app.application.subscription",
"app.startup.initializers.modules -> app.application.subscription.write",
"app.startup.initializers.modules -> app.application.workflow",
"app.startup.initializers.modules -> app.chain",
"app.startup.initializers.modules -> app.chain.download",
"app.startup.initializers.modules -> app.chain.mediaserver",
"app.startup.initializers.modules -> app.chain.scraping",
"app.startup.initializers.modules -> app.chain.search",
"app.startup.initializers.modules -> app.chain.site",
"app.startup.initializers.modules -> app.chain.subscribe",
"app.startup.initializers.modules -> app.chain.tmdb",
"app.startup.initializers.modules -> app.chain.workflow",
"app.startup.initializers.modules -> app.command",
"app.startup.initializers.modules -> app.db",
"app.startup.initializers.modules -> app.db.adapters",
"app.startup.initializers.modules -> app.db.adapters.chain",
"app.startup.initializers.modules -> app.db.adapters.download",
"app.startup.initializers.modules -> app.db.adapters.outbox",
"app.startup.initializers.modules -> app.db.adapters.site",
"app.startup.initializers.modules -> app.db.adapters.subscription",
"app.startup.initializers.modules -> app.db.adapters.transaction",
"app.startup.initializers.modules -> app.db.adapters.workflow",
"app.startup.initializers.modules -> app.db.oper",
"app.startup.initializers.modules -> app.db.oper.agentchat",
"app.startup.initializers.modules -> app.db.oper.agenttask",
"app.startup.initializers.modules -> app.db.oper.downloadhistory",
"app.startup.initializers.modules -> app.db.oper.mediaserver",
"app.startup.initializers.modules -> app.db.oper.message",
"app.startup.initializers.modules -> app.db.oper.passkey",
"app.startup.initializers.modules -> app.db.oper.plugindata",
"app.startup.initializers.modules -> app.db.oper.site",
"app.startup.initializers.modules -> app.db.oper.subscribe",
"app.startup.initializers.modules -> app.db.oper.subscribehistory",
"app.startup.initializers.modules -> app.db.oper.systemconfig",
"app.startup.initializers.modules -> app.db.oper.transferhistory",
"app.startup.initializers.modules -> app.db.oper.transferpending",
"app.startup.initializers.modules -> app.db.oper.user",
"app.startup.initializers.modules -> app.db.oper.userconfig",
"app.startup.initializers.modules -> app.db.oper.workflow",
"app.startup.initializers.modules -> app.db.session",
"app.startup.initializers.modules -> app.db.uow",
"app.startup.initializers.modules -> app.db.worker",
"app.startup.initializers.modules -> app.runtime",
"app.startup.initializers.modules -> app.runtime.cache",
"app.startup.initializers.modules -> app.runtime.config",
"app.startup.initializers.modules -> app.runtime.events",
"app.startup.initializers.modules -> app.runtime.extensions",
"app.startup.initializers.modules -> app.runtime.extensions.module",
"app.startup.initializers.modules -> app.runtime.extensions.module.dispatcher",
"app.startup.initializers.modules -> app.runtime.extensions.module_manager",
"app.startup.initializers.modules -> app.runtime.extensions.plugin_manager",
"app.startup.initializers.modules -> app.runtime.extensions.service_config",
"app.startup.initializers.modules -> app.runtime.log",
"app.startup.initializers.modules -> app.runtime.observability",
"app.startup.initializers.modules -> app.runtime.settings",
"app.startup.initializers.modules -> app.runtime.state",
"app.startup.initializers.modules -> app.runtime.tasks",
"app.startup.initializers.modules -> app.runtime.thread",
"app.startup.initializers.modules -> app.scheduler",
"app.startup.initializers.modules -> app.schemas",
"app.startup.initializers.modules -> app.schemas.message",
"app.startup.initializers.modules -> app.schemas.types",
"app.startup.initializers.modules -> app.startup",
"app.startup.initializers.modules -> app.startup.composition",
"app.startup.initializers.modules -> app.startup.composition.configuration",
"app.startup.initializers.modules -> app.startup.composition.context",
"app.startup.initializers.modules -> app.startup.composition.database",
"app.startup.initializers.modules -> app.startup.composition.subscription",
"app.startup.initializers.modules -> app.startup.initializers",
"app.startup.initializers.modules -> app.startup.initializers.agent",
"app.startup.initializers.modules -> app.startup.initializers.managed_resources",
"app.startup.initializers.monitor -> app.monitor",
"app.startup.initializers.monitor -> app.runtime",
"app.startup.initializers.monitor -> app.runtime.execution",
"app.startup.initializers.plugins -> app.adapters",
"app.startup.initializers.plugins -> app.adapters.external",
"app.startup.initializers.plugins -> app.adapters.external.market",
"app.startup.initializers.plugins -> app.adapters.external.plugin",
"app.startup.initializers.plugins -> app.adapters.external.plugin.client",
"app.startup.initializers.plugins -> app.adapters.external.server",
"app.startup.initializers.plugins -> app.adapters.system",
"app.startup.initializers.plugins -> app.adapters.system.host",
"app.startup.initializers.plugins -> app.adapters.system.plugin",
"app.startup.initializers.plugins -> app.adapters.system.plugin.dependency",
"app.startup.initializers.plugins -> app.adapters.system.plugin.manifest",
"app.startup.initializers.plugins -> app.adapters.system.plugin.package",
"app.startup.initializers.plugins -> app.application",
"app.startup.initializers.plugins -> app.application.configuration",
"app.startup.initializers.plugins -> app.application.plugin",
"app.startup.initializers.plugins -> app.application.plugin.catalog",
"app.startup.initializers.plugins -> app.application.plugin.data",
"app.startup.initializers.plugins -> app.application.plugin.routes",
"app.startup.initializers.plugins -> app.application.site",
"app.startup.initializers.plugins -> app.db",
"app.startup.initializers.plugins -> app.db.oper",
"app.startup.initializers.plugins -> app.db.oper.plugindata",
"app.startup.initializers.plugins -> app.db.session",
"app.startup.initializers.plugins -> app.db.uow",
"app.startup.initializers.plugins -> app.foundation",
"app.startup.initializers.plugins -> app.foundation.version",
"app.startup.initializers.plugins -> app.runtime",
"app.startup.initializers.plugins -> app.runtime.compat",
"app.startup.initializers.plugins -> app.runtime.compat.diagnostics",
"app.startup.initializers.plugins -> app.runtime.compat.resource_imports",
"app.startup.initializers.plugins -> app.runtime.config",
"app.startup.initializers.plugins -> app.runtime.execution",
"app.startup.initializers.plugins -> app.runtime.extensions",
"app.startup.initializers.plugins -> app.runtime.extensions.plugin",
"app.startup.initializers.plugins -> app.runtime.extensions.plugin.dependency",
"app.startup.initializers.plugins -> app.runtime.extensions.plugin.storage",
"app.startup.initializers.plugins -> app.runtime.extensions.plugin.system",
"app.startup.initializers.plugins -> app.runtime.extensions.plugin_manager",
"app.startup.initializers.plugins -> app.runtime.log",
"app.startup.initializers.plugins -> app.runtime.managed_resources",
"app.startup.initializers.plugins -> app.runtime.settings",
"app.startup.initializers.plugins -> app.schemas",
"app.startup.initializers.plugins -> app.schemas.exception",
"app.startup.initializers.plugins -> app.schemas.plugin",
"app.startup.initializers.plugins -> app.schemas.types",
"app.startup.initializers.routers -> app.api",
"app.startup.initializers.routers -> app.api.router_specs",
"app.startup.initializers.routers -> app.api.servarr",
"app.startup.initializers.routers -> app.api.servcookie",
"app.startup.initializers.scheduler -> app.application",
"app.startup.initializers.scheduler -> app.application.scheduling",
"app.startup.initializers.scheduler -> app.scheduler",
"app.startup.initializers.transfer -> app.chain",
"app.startup.initializers.transfer -> app.chain.transfer",
"app.startup.initializers.workflow -> app.workflow",
"app.startup.lifecycle -> app.adapters",
"app.startup.lifecycle -> app.adapters.external",
"app.startup.lifecycle -> app.adapters.external.server",
@@ -6087,233 +6330,20 @@
"app.startup.lifecycle -> app.runtime.tasks",
"app.startup.lifecycle -> app.runtime.topology",
"app.startup.lifecycle -> app.startup",
"app.startup.lifecycle -> app.startup.agent_initializer",
"app.startup.lifecycle -> app.startup.cache_initializer",
"app.startup.lifecycle -> app.startup.command_initializer",
"app.startup.lifecycle -> app.startup.database_initializer",
"app.startup.lifecycle -> app.startup.domain_initializer",
"app.startup.lifecycle -> app.startup.initializers",
"app.startup.lifecycle -> app.startup.initializers.agent",
"app.startup.lifecycle -> app.startup.initializers.cache",
"app.startup.lifecycle -> app.startup.initializers.command",
"app.startup.lifecycle -> app.startup.initializers.database",
"app.startup.lifecycle -> app.startup.initializers.domain",
"app.startup.lifecycle -> app.startup.initializers.modules",
"app.startup.lifecycle -> app.startup.initializers.monitor",
"app.startup.lifecycle -> app.startup.initializers.plugins",
"app.startup.lifecycle -> app.startup.initializers.routers",
"app.startup.lifecycle -> app.startup.initializers.scheduler",
"app.startup.lifecycle -> app.startup.initializers.transfer",
"app.startup.lifecycle -> app.startup.initializers.workflow",
"app.startup.lifecycle -> app.startup.lifecycle.components",
"app.startup.lifecycle -> app.startup.modules_initializer",
"app.startup.lifecycle -> app.startup.monitor_initializer",
"app.startup.lifecycle -> app.startup.plugins_initializer",
"app.startup.lifecycle -> app.startup.routers_initializer",
"app.startup.lifecycle -> app.startup.scheduler_initializer",
"app.startup.lifecycle -> app.startup.transfer_initializer",
"app.startup.lifecycle -> app.startup.workflow_initializer",
"app.startup.managed_resources_initializer -> app.runtime",
"app.startup.managed_resources_initializer -> app.runtime.capabilities",
"app.startup.managed_resources_initializer -> app.runtime.capabilities.runtime",
"app.startup.managed_resources_initializer -> app.runtime.extensions",
"app.startup.managed_resources_initializer -> app.runtime.extensions.managed_resource_adapter",
"app.startup.managed_resources_initializer -> app.runtime.managed_resources",
"app.startup.modules_initializer -> app.adapters",
"app.startup.modules_initializer -> app.adapters.cache",
"app.startup.modules_initializer -> app.adapters.cache.redis",
"app.startup.modules_initializer -> app.adapters.external",
"app.startup.modules_initializer -> app.adapters.external.server",
"app.startup.modules_initializer -> app.adapters.network",
"app.startup.modules_initializer -> app.adapters.network.browser",
"app.startup.modules_initializer -> app.adapters.network.doh",
"app.startup.modules_initializer -> app.adapters.system",
"app.startup.modules_initializer -> app.adapters.system.host",
"app.startup.modules_initializer -> app.adapters.system.resource",
"app.startup.modules_initializer -> app.adapters.web",
"app.startup.modules_initializer -> app.adapters.web.security",
"app.startup.modules_initializer -> app.adapters.web.security.access",
"app.startup.modules_initializer -> app.api",
"app.startup.modules_initializer -> app.api.data",
"app.startup.modules_initializer -> app.application",
"app.startup.modules_initializer -> app.application.agentdata",
"app.startup.modules_initializer -> app.application.chain",
"app.startup.modules_initializer -> app.application.chain.context",
"app.startup.modules_initializer -> app.application.chain.data",
"app.startup.modules_initializer -> app.application.chain.durable_events",
"app.startup.modules_initializer -> app.application.configuration",
"app.startup.modules_initializer -> app.application.database",
"app.startup.modules_initializer -> app.application.history",
"app.startup.modules_initializer -> app.application.image",
"app.startup.modules_initializer -> app.application.messaging",
"app.startup.modules_initializer -> app.application.messaging.agent",
"app.startup.modules_initializer -> app.application.messaging.chat",
"app.startup.modules_initializer -> app.application.messaging.message",
"app.startup.modules_initializer -> app.application.module",
"app.startup.modules_initializer -> app.application.outbox",
"app.startup.modules_initializer -> app.application.plugin",
"app.startup.modules_initializer -> app.application.plugin.runtime",
"app.startup.modules_initializer -> app.application.security",
"app.startup.modules_initializer -> app.application.security.auth",
"app.startup.modules_initializer -> app.application.security.passkeys",
"app.startup.modules_initializer -> app.application.security.user",
"app.startup.modules_initializer -> app.application.security.userconfig",
"app.startup.modules_initializer -> app.application.server",
"app.startup.modules_initializer -> app.application.server.report",
"app.startup.modules_initializer -> app.application.server.share",
"app.startup.modules_initializer -> app.application.service",
"app.startup.modules_initializer -> app.application.site",
"app.startup.modules_initializer -> app.application.site.health",
"app.startup.modules_initializer -> app.application.site.query",
"app.startup.modules_initializer -> app.application.subscription",
"app.startup.modules_initializer -> app.application.subscription.write",
"app.startup.modules_initializer -> app.application.workflow",
"app.startup.modules_initializer -> app.chain",
"app.startup.modules_initializer -> app.chain.download",
"app.startup.modules_initializer -> app.chain.mediaserver",
"app.startup.modules_initializer -> app.chain.scraping",
"app.startup.modules_initializer -> app.chain.search",
"app.startup.modules_initializer -> app.chain.site",
"app.startup.modules_initializer -> app.chain.subscribe",
"app.startup.modules_initializer -> app.chain.tmdb",
"app.startup.modules_initializer -> app.chain.workflow",
"app.startup.modules_initializer -> app.command",
"app.startup.modules_initializer -> app.db",
"app.startup.modules_initializer -> app.db.oper",
"app.startup.modules_initializer -> app.db.oper.agentchat",
"app.startup.modules_initializer -> app.db.oper.agenttask",
"app.startup.modules_initializer -> app.db.oper.downloadhistory",
"app.startup.modules_initializer -> app.db.oper.mediaserver",
"app.startup.modules_initializer -> app.db.oper.message",
"app.startup.modules_initializer -> app.db.oper.passkey",
"app.startup.modules_initializer -> app.db.oper.plugindata",
"app.startup.modules_initializer -> app.db.oper.site",
"app.startup.modules_initializer -> app.db.oper.subscribe",
"app.startup.modules_initializer -> app.db.oper.subscribehistory",
"app.startup.modules_initializer -> app.db.oper.systemconfig",
"app.startup.modules_initializer -> app.db.oper.transferhistory",
"app.startup.modules_initializer -> app.db.oper.transferpending",
"app.startup.modules_initializer -> app.db.oper.user",
"app.startup.modules_initializer -> app.db.oper.userconfig",
"app.startup.modules_initializer -> app.db.oper.workflow",
"app.startup.modules_initializer -> app.db.session",
"app.startup.modules_initializer -> app.db.uow",
"app.startup.modules_initializer -> app.db.worker",
"app.startup.modules_initializer -> app.runtime",
"app.startup.modules_initializer -> app.runtime.cache",
"app.startup.modules_initializer -> app.runtime.config",
"app.startup.modules_initializer -> app.runtime.events",
"app.startup.modules_initializer -> app.runtime.extensions",
"app.startup.modules_initializer -> app.runtime.extensions.module",
"app.startup.modules_initializer -> app.runtime.extensions.module.dispatcher",
"app.startup.modules_initializer -> app.runtime.extensions.module_manager",
"app.startup.modules_initializer -> app.runtime.extensions.plugin_manager",
"app.startup.modules_initializer -> app.runtime.extensions.service_config",
"app.startup.modules_initializer -> app.runtime.log",
"app.startup.modules_initializer -> app.runtime.observability",
"app.startup.modules_initializer -> app.runtime.settings",
"app.startup.modules_initializer -> app.runtime.state",
"app.startup.modules_initializer -> app.runtime.tasks",
"app.startup.modules_initializer -> app.runtime.thread",
"app.startup.modules_initializer -> app.scheduler",
"app.startup.modules_initializer -> app.schemas",
"app.startup.modules_initializer -> app.schemas.message",
"app.startup.modules_initializer -> app.schemas.types",
"app.startup.modules_initializer -> app.startup",
"app.startup.modules_initializer -> app.startup.agent_initializer",
"app.startup.modules_initializer -> app.startup.chain_events",
"app.startup.modules_initializer -> app.startup.configuration",
"app.startup.modules_initializer -> app.startup.context",
"app.startup.modules_initializer -> app.startup.database",
"app.startup.modules_initializer -> app.startup.download_failure",
"app.startup.modules_initializer -> app.startup.managed_resources_initializer",
"app.startup.modules_initializer -> app.startup.outbox",
"app.startup.modules_initializer -> app.startup.site",
"app.startup.modules_initializer -> app.startup.subscription",
"app.startup.modules_initializer -> app.startup.transaction",
"app.startup.modules_initializer -> app.startup.workflow",
"app.startup.monitor_initializer -> app.monitor",
"app.startup.monitor_initializer -> app.runtime",
"app.startup.monitor_initializer -> app.runtime.execution",
"app.startup.outbox -> app.application",
"app.startup.outbox -> app.application.outbox",
"app.startup.outbox -> app.db",
"app.startup.outbox -> app.db.base",
"app.startup.outbox -> app.db.models",
"app.startup.outbox -> app.db.models.outbox",
"app.startup.plugins_initializer -> app.adapters",
"app.startup.plugins_initializer -> app.adapters.external",
"app.startup.plugins_initializer -> app.adapters.external.market",
"app.startup.plugins_initializer -> app.adapters.external.plugin",
"app.startup.plugins_initializer -> app.adapters.external.plugin.client",
"app.startup.plugins_initializer -> app.adapters.external.server",
"app.startup.plugins_initializer -> app.adapters.system",
"app.startup.plugins_initializer -> app.adapters.system.host",
"app.startup.plugins_initializer -> app.adapters.system.plugin",
"app.startup.plugins_initializer -> app.adapters.system.plugin.dependency",
"app.startup.plugins_initializer -> app.adapters.system.plugin.manifest",
"app.startup.plugins_initializer -> app.adapters.system.plugin.package",
"app.startup.plugins_initializer -> app.application",
"app.startup.plugins_initializer -> app.application.configuration",
"app.startup.plugins_initializer -> app.application.plugin",
"app.startup.plugins_initializer -> app.application.plugin.catalog",
"app.startup.plugins_initializer -> app.application.plugin.data",
"app.startup.plugins_initializer -> app.application.plugin.routes",
"app.startup.plugins_initializer -> app.application.site",
"app.startup.plugins_initializer -> app.db",
"app.startup.plugins_initializer -> app.db.oper",
"app.startup.plugins_initializer -> app.db.oper.plugindata",
"app.startup.plugins_initializer -> app.db.session",
"app.startup.plugins_initializer -> app.db.uow",
"app.startup.plugins_initializer -> app.foundation",
"app.startup.plugins_initializer -> app.foundation.version",
"app.startup.plugins_initializer -> app.runtime",
"app.startup.plugins_initializer -> app.runtime.compat",
"app.startup.plugins_initializer -> app.runtime.compat.diagnostics",
"app.startup.plugins_initializer -> app.runtime.compat.resource_imports",
"app.startup.plugins_initializer -> app.runtime.config",
"app.startup.plugins_initializer -> app.runtime.extensions",
"app.startup.plugins_initializer -> app.runtime.extensions.plugin",
"app.startup.plugins_initializer -> app.runtime.extensions.plugin.dependency",
"app.startup.plugins_initializer -> app.runtime.extensions.plugin.storage",
"app.startup.plugins_initializer -> app.runtime.extensions.plugin.system",
"app.startup.plugins_initializer -> app.runtime.extensions.plugin_manager",
"app.startup.plugins_initializer -> app.runtime.log",
"app.startup.plugins_initializer -> app.runtime.managed_resources",
"app.startup.plugins_initializer -> app.runtime.settings",
"app.startup.plugins_initializer -> app.schemas",
"app.startup.plugins_initializer -> app.schemas.plugin",
"app.startup.plugins_initializer -> app.schemas.types",
"app.startup.routers_initializer -> app.api",
"app.startup.routers_initializer -> app.api.router_specs",
"app.startup.routers_initializer -> app.api.servarr",
"app.startup.routers_initializer -> app.api.servcookie",
"app.startup.scheduler_initializer -> app.application",
"app.startup.scheduler_initializer -> app.application.scheduling",
"app.startup.scheduler_initializer -> app.scheduler",
"app.startup.site -> app.db",
"app.startup.site -> app.db.oper",
"app.startup.site -> app.db.oper.site",
"app.startup.site -> app.db.uow",
"app.startup.subscription -> app.adapters",
"app.startup.subscription -> app.adapters.external",
"app.startup.subscription -> app.adapters.external.server",
"app.startup.subscription -> app.application",
"app.startup.subscription -> app.application.subscription",
"app.startup.subscription -> app.application.subscription.complete",
"app.startup.subscription -> app.application.subscription.delete",
"app.startup.subscription -> app.application.subscription.mutation",
"app.startup.subscription -> app.application.subscription.write",
"app.startup.subscription -> app.db",
"app.startup.subscription -> app.db.oper",
"app.startup.subscription -> app.db.oper.subscribe",
"app.startup.subscription -> app.db.oper.subscribehistory",
"app.startup.subscription -> app.db.session",
"app.startup.subscription -> app.db.uow",
"app.startup.subscription -> app.runtime",
"app.startup.subscription -> app.runtime.events",
"app.startup.subscription -> app.schemas",
"app.startup.subscription -> app.schemas.types",
"app.startup.subscription -> app.startup",
"app.startup.subscription -> app.startup.outbox",
"app.startup.transaction -> app.db",
"app.startup.transaction -> app.db.uow",
"app.startup.transfer_initializer -> app.chain",
"app.startup.transfer_initializer -> app.chain.transfer",
"app.startup.workflow -> app.application",
"app.startup.workflow -> app.application.workflow",
"app.startup.workflow -> app.db",
"app.startup.workflow -> app.db.oper",
"app.startup.workflow -> app.db.oper.workflow",
"app.startup.workflow -> app.db.uow",
"app.startup.workflow_initializer -> app.workflow",
"app.testing -> app.testing.stub",
"app.testing.bootstrap -> app.application",
"app.testing.bootstrap -> app.application.site",
@@ -6322,9 +6352,10 @@
"app.testing.bootstrap -> app.db.oper.systemconfig",
"app.testing.bootstrap -> app.db.oper.userconfig",
"app.testing.bootstrap -> app.startup",
"app.testing.bootstrap -> app.startup.cache_initializer",
"app.testing.bootstrap -> app.startup.database_initializer",
"app.testing.bootstrap -> app.startup.domain_initializer",
"app.testing.bootstrap -> app.startup.initializers",
"app.testing.bootstrap -> app.startup.initializers.cache",
"app.testing.bootstrap -> app.startup.initializers.database",
"app.testing.bootstrap -> app.startup.initializers.domain",
"app.workflow -> app.application",
"app.workflow -> app.application.chain",
"app.workflow -> app.application.chain.data",
@@ -6500,7 +6531,7 @@
"app.workflow.actions.transfer_file -> app.workflow",
"app.workflow.actions.transfer_file -> app.workflow.actions"
],
"module_count": 800,
"module_count": 805,
"modules": [
"app",
"app.adapters",
@@ -6874,6 +6905,14 @@
"app.cli",
"app.command",
"app.db",
"app.db.adapters",
"app.db.adapters.chain",
"app.db.adapters.download",
"app.db.adapters.outbox",
"app.db.adapters.site",
"app.db.adapters.subscription",
"app.db.adapters.transaction",
"app.db.adapters.workflow",
"app.db.base",
"app.db.decorators",
"app.db.diagnostics",
@@ -7164,6 +7203,7 @@
"app.runtime.extensions.module_manager",
"app.runtime.extensions.plugin",
"app.runtime.extensions.plugin.access",
"app.runtime.extensions.plugin.admission",
"app.runtime.extensions.plugin.catalog",
"app.runtime.extensions.plugin.clone",
"app.runtime.extensions.plugin.contracts",
@@ -7256,31 +7296,27 @@
"app.sdk.string",
"app.sdk.utilities",
"app.startup",
"app.startup.agent_initializer",
"app.startup.cache_initializer",
"app.startup.chain_events",
"app.startup.command_initializer",
"app.startup.configuration",
"app.startup.context",
"app.startup.database",
"app.startup.database_initializer",
"app.startup.domain_initializer",
"app.startup.download_failure",
"app.startup.composition",
"app.startup.composition.configuration",
"app.startup.composition.context",
"app.startup.composition.database",
"app.startup.composition.subscription",
"app.startup.initializers",
"app.startup.initializers.agent",
"app.startup.initializers.cache",
"app.startup.initializers.command",
"app.startup.initializers.database",
"app.startup.initializers.domain",
"app.startup.initializers.managed_resources",
"app.startup.initializers.modules",
"app.startup.initializers.monitor",
"app.startup.initializers.plugins",
"app.startup.initializers.routers",
"app.startup.initializers.scheduler",
"app.startup.initializers.transfer",
"app.startup.initializers.workflow",
"app.startup.lifecycle",
"app.startup.lifecycle.components",
"app.startup.managed_resources_initializer",
"app.startup.modules_initializer",
"app.startup.monitor_initializer",
"app.startup.outbox",
"app.startup.plugins_initializer",
"app.startup.routers_initializer",
"app.startup.scheduler_initializer",
"app.startup.site",
"app.startup.subscription",
"app.startup.transaction",
"app.startup.transfer_initializer",
"app.startup.workflow",
"app.startup.workflow_initializer",
"app.testing",
"app.testing.bootstrap",
"app.testing.network_guard",
+13 -13
View File
@@ -187,8 +187,8 @@
"introduced": "v3.0.0",
"is_package": false,
"owner": "startup",
"replacement": "app.startup.database_initializer",
"target": "app.startup.database_initializer"
"replacement": "app.startup.initializers.database",
"target": "app.startup.initializers.database"
},
"app.db.mediaserver_oper": {
"introduced": "v3.0.0",
@@ -2029,7 +2029,7 @@
"count": 1
},
{
"caller": "app.startup.agent_initializer",
"caller": "app.startup.initializers.agent",
"count": 1
}
],
@@ -2043,7 +2043,7 @@
"count": 2
},
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
@@ -2194,7 +2194,7 @@
"count": 2
},
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
@@ -2203,11 +2203,11 @@
"consumers": [],
"producers": [
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.composition.subscription",
"count": 1
},
{
"caller": "app.startup.subscription",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
@@ -2220,11 +2220,11 @@
"count": 1
},
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.composition.subscription",
"count": 1
},
{
"caller": "app.startup.subscription",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
@@ -2241,11 +2241,11 @@
"count": 3
},
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.composition.subscription",
"count": 1
},
{
"caller": "app.startup.subscription",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
@@ -2293,7 +2293,7 @@
"count": 2
},
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
@@ -2306,7 +2306,7 @@
"count": 2
},
{
"caller": "app.startup.modules_initializer",
"caller": "app.startup.initializers.modules",
"count": 1
}
]
+1 -1
View File
@@ -56,7 +56,7 @@ sites.__file__ = "<test-stub>"
sys.modules["app.application.site.sites"] = sites
from fastapi import FastAPI
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = FastAPI()
init_routers(app)
+1 -1
View File
@@ -9,7 +9,7 @@ from unittest.mock import AsyncMock, MagicMock
import pytest
from app.runtime.capabilities.errors import CapabilityRuntimeClosedError
from app.startup import agent_initializer
from app.startup.initializers import agent as agent_initializer
@pytest.mark.anyio
+1 -1
View File
@@ -64,7 +64,7 @@ def test_agent_initializer_import_only_registers_lazy_providers() -> None:
import json
import sys
import app.startup.agent_initializer
import app.startup.initializers.agent
forbidden = (
"app.agent.orchestrator",
+2 -1
View File
@@ -15,7 +15,8 @@ from app.agent.orchestrator import (
AgentManagerUnavailableError,
)
from app.agent.memory import MemoryManager
from app.startup import agent_initializer, modules_initializer
from app.startup.initializers import agent as agent_initializer
from app.startup.initializers import modules as modules_initializer
@pytest.mark.anyio
+6 -6
View File
@@ -512,7 +512,7 @@ def test_v1_model_free_routes_match_audited_native_allowlist():
def test_native_protocol_openapi_has_explicit_response_schemas():
"""OpenAI、Anthropic 与 MCP 原生协议响应必须在 OpenAPI 中明确建模。"""
from app.factory import create_app
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = create_app()
init_routers(app)
@@ -558,7 +558,7 @@ def test_native_protocol_openapi_has_explicit_response_schemas():
async def test_native_protocol_validation_errors_keep_native_shapes():
"""OpenAI 与 Anthropic 的请求校验错误应保持各自协议的错误结构。"""
from app.factory import create_app
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = create_app()
init_routers(app)
@@ -603,7 +603,7 @@ async def test_native_protocol_validation_errors_keep_native_shapes():
async def test_mcp_root_auth_error_keeps_jsonrpc_shape():
"""MCP 根端点的依赖异常应保持 JSON-RPC,REST 子端点仍由统一协议处理。"""
from app.factory import create_app
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = create_app()
init_routers(app)
@@ -678,7 +678,7 @@ async def test_native_ai_http_and_unhandled_errors_keep_protocol_shapes():
def test_servarr_and_cookiecloud_openapi_has_explicit_models():
"""兼容协议成功响应必须显式建模,错误响应必须声明统一结构。"""
from app.factory import create_app
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = create_app()
init_routers(app)
@@ -712,7 +712,7 @@ def test_servarr_and_cookiecloud_openapi_has_explicit_models():
def test_all_openapi_error_responses_use_json_schemas():
"""所有普通与原生协议错误响应都应在文档中声明 JSON 媒体类型和结构。"""
from app.factory import create_app
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = create_app()
init_routers(app)
@@ -739,7 +739,7 @@ def test_all_openapi_error_responses_use_json_schemas():
def test_openapi_success_models_have_no_implicit_empty_nested_schemas():
"""2xx 响应可达模型不得包含裸 Any、裸数组或未声明值类型的开放映射。"""
from app.factory import create_app
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = create_app()
init_routers(app)
+81
View File
@@ -12,6 +12,7 @@ IMPLEMENTATION_ROOTS = (
"app.agent.skills",
"app.adapters",
"app.application",
"app.db.adapters",
"app.domain",
"app.foundation",
"app.runtime",
@@ -66,6 +67,29 @@ RETIRED_CANONICAL_FILES = (
"app/adapters/network/sites.pyi",
"app/application/plugins.py",
"app/application/subscribe.py",
"app/startup/agent_initializer.py",
"app/startup/cache_initializer.py",
"app/startup/chain_events.py",
"app/startup/command_initializer.py",
"app/startup/configuration.py",
"app/startup/context.py",
"app/startup/database.py",
"app/startup/database_initializer.py",
"app/startup/domain_initializer.py",
"app/startup/download_failure.py",
"app/startup/managed_resources_initializer.py",
"app/startup/modules_initializer.py",
"app/startup/monitor_initializer.py",
"app/startup/outbox.py",
"app/startup/plugins_initializer.py",
"app/startup/routers_initializer.py",
"app/startup/scheduler_initializer.py",
"app/startup/site.py",
"app/startup/subscription.py",
"app/startup/transaction.py",
"app/startup/transfer_initializer.py",
"app/startup/workflow.py",
"app/startup/workflow_initializer.py",
)
PLUGIN_COMPONENT_ROOTS = (
"app/adapters/external/plugin",
@@ -288,6 +312,20 @@ def test_retired_canonical_filenames_do_not_return():
assert leftovers == []
def test_startup_root_contains_only_composition_packages():
"""组合根顶层只保留稳定分区,禁止再次堆叠扁平实现文件。"""
startup_root = APP_ROOT / "startup"
root_modules = sorted(path.name for path in startup_root.glob("*.py"))
python_packages = sorted(
path.name
for path in startup_root.iterdir()
if path.is_dir() and any(path.rglob("*.py"))
)
assert root_modules == ["__init__.py"]
assert python_packages == ["composition", "initializers", "lifecycle"]
def test_retired_canonical_roots_contain_no_python_sources():
"""已收敛的新增目录不得再次以顶级 Python 包形式出现。"""
leftovers = sorted(
@@ -394,6 +432,49 @@ def test_database_internals_do_not_import_db_facades():
assert violations == []
def test_base_crud_is_explicitly_legacy_only():
"""Base 便利 CRUD 只能保留兼容壳,不得伪装成新的正式事务入口。"""
path = APP_ROOT / "db" / "base.py"
tree = ast.parse(path.read_text(encoding="utf-8-sig"), filename=str(path))
base_class = next(
node
for node in tree.body
if isinstance(node, ast.ClassDef) and node.name == "Base"
)
formal_decorators = {
"db_query",
"db_update",
"async_db_query",
"async_db_update",
}
violations: list[str] = []
for node in base_class.body:
if not isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):
continue
decorators = {
decorator.id
for decorator in node.decorator_list
if isinstance(decorator, ast.Name)
}
if decorators & formal_decorators:
violations.append(node.name)
assert violations == []
def test_models_use_one_legacy_query_compatibility_shell():
"""旧 Model 查询统一使用 legacy 装饰器,不得再手写隐式会话 runner。"""
retired_names = {"run_legacy_sync_query", "run_legacy_async_query"}
violations: list[str] = []
for path in (APP_ROOT / "db" / "models").glob("*.py"):
tree = ast.parse(path.read_text(encoding="utf-8-sig"), filename=str(path))
if any(
isinstance(node, ast.Name) and node.id in retired_names
for node in ast.walk(tree)
):
violations.append(str(path.relative_to(PROJECT_ROOT)))
assert violations == []
def test_entry_layers_do_not_import_database_implementations():
"""API、应用、编排、Agent、监控、模块和 Runtime 只能经端口访问持久化。"""
graph = _build_module_graph()
+6 -6
View File
@@ -40,7 +40,7 @@ def test_clear_package_tool_cache_only_removes_pip_and_uv_old_files(tmp_path, mo
"""
包安装工具缓存清理只处理 pip/uv 子目录不接管整个 .cache 或业务缓存
"""
from app.startup.modules_initializer import clear_package_tool_cache
from app.startup.initializers.modules import clear_package_tool_cache
old_time = time.time() - 40 * 24 * 3600
cache_root = tmp_path / ".cache"
@@ -68,7 +68,7 @@ def test_clear_package_tool_cache_disabled_when_days_non_positive(tmp_path, monk
"""
PACKAGE_CACHE_DAYS 小于等于 0 时不清理包安装缓存
"""
from app.startup.modules_initializer import clear_package_tool_cache
from app.startup.initializers.modules import clear_package_tool_cache
old_time = time.time() - 40 * 24 * 3600
old_pip = tmp_path / ".cache" / "pip" / "old.whl"
@@ -88,7 +88,7 @@ def test_clear_package_tool_cache_isolates_subdir_errors(tmp_path, monkeypatch):
"""
单个工具缓存目录清理失败不影响另一个工具缓存目录
"""
from app.startup.modules_initializer import clear_package_tool_cache
from app.startup.initializers.modules import clear_package_tool_cache
calls = []
@@ -100,7 +100,7 @@ def test_clear_package_tool_cache_isolates_subdir_errors(tmp_path, monkeypatch):
monkeypatch.setattr(settings, "CONFIG_DIR", str(tmp_path))
monkeypatch.setattr(settings, "PACKAGE_CACHE_ROOT", str(tmp_path / "custom-package-cache"))
monkeypatch.setattr(settings, "PACKAGE_CACHE_DAYS", 30)
monkeypatch.setattr("app.startup.modules_initializer.SystemUtils.clear", fake_clear)
monkeypatch.setattr("app.startup.initializers.modules.SystemUtils.clear", fake_clear)
clear_package_tool_cache()
@@ -110,7 +110,7 @@ def test_clear_package_tool_cache_uses_package_cache_root(tmp_path, monkeypatch)
"""
PACKAGE_CACHE_ROOT 用作 pip/uv 清理根目录不扩大到配置目录下其他缓存
"""
from app.startup.modules_initializer import clear_package_tool_cache
from app.startup.initializers.modules import clear_package_tool_cache
old_time = time.time() - 40 * 24 * 3600
package_cache_root = tmp_path / "custom-package-cache"
@@ -134,7 +134,7 @@ def test_init_modules_does_not_clear_package_tool_cache(monkeypatch):
"""
包安装缓存清理由通用临时清理入口触发模块启动路径不直接执行清理
"""
from app.startup import modules_initializer
from app.startup.initializers import modules as modules_initializer
called = False
+1 -1
View File
@@ -22,7 +22,7 @@ from app.domain.metainfo import MetaInfo
from app.schemas.file import FileItem
from app.schemas.transfer import TransferInfo
from app.schemas.types import MediaSource, MediaType
from app.startup.chain_events import TransactionalChainDurableEventWriter
from app.db.adapters.chain import TransactionalChainDurableEventWriter
def _session_factory():
+1 -1
View File
@@ -4,7 +4,7 @@ from unittest.mock import AsyncMock
import pytest
from app.startup import modules_initializer
from app.startup.initializers import modules as modules_initializer
from app.startup.lifecycle import initialize_modules_component
from app.application.configuration import configure_runtime_settings
from app.runtime.settings import RuntimeSettingsCompat
+1 -1
View File
@@ -3,7 +3,7 @@ from types import SimpleNamespace
from unittest.mock import Mock
from app.application.database import get_database_governance
from app.startup import database as startup_database
from app.startup.composition import database as startup_database
def test_builder_uses_cached_engine_as_database_fact_source(monkeypatch) -> None:
+1 -1
View File
@@ -76,7 +76,7 @@ from sqlalchemy.exc import IntegrityError
from app.runtime.config import settings
from app.db import get_engine
from app.startup.database_initializer import init_db, update_db
from app.startup.initializers.database import init_db, update_db
media_tables = {media_tables!r}
legacy_identity_columns = {legacy_identity_columns!r}
+2 -2
View File
@@ -27,8 +27,8 @@ from sqlalchemy import (
)
from sqlalchemy.engine.url import make_url
from app.startup import database_initializer as db_init
from app.startup import database as startup_database
from app.startup.composition import database as startup_database
from app.startup.initializers import database as db_init
from app.startup import lifecycle
from app.runtime.health import get_application_health
from app.db.models.systemconfig import SystemConfig
+2 -6
View File
@@ -292,13 +292,9 @@ def test_passkey_lookup_by_credential_id_skips_inactive(db):
assert asyncio.run(PassKey.async_get_by_credential_id(credential_id="cred-dead")) is None
def test_passkey_model_sync_queries_keep_no_session_plugin_abi(db, monkeypatch):
"""旧插件不传 Session 时仍应获得短会话查询,而不恢复 Model 装饰器"""
def test_passkey_model_sync_queries_keep_no_session_plugin_abi(db):
"""旧插件不传 Session 时仍由统一 legacy 装饰器获得短会话查询"""
db.add(_passkey(9004, "cred-legacy"))
monkeypatch.setattr(
"app.db.models.passkey.run_legacy_sync_query",
lambda operation: operation(db.session),
)
assert [item.credential_id for item in PassKey.get_by_user_id(user_id=9004)] == [
"cred-legacy"
@@ -352,13 +352,10 @@ def test_agenttask_get_for_user_enforces_ownership(db):
assert AgentTask.get_for_user(db.session, task_id, user_id="bob") is None
def test_agenttask_model_queries_keep_no_session_plugin_abi(db, monkeypatch):
"""旧插件省略 Session 时仍可按原关键字参数查询 Agent 任务"""
def test_agenttask_model_queries_keep_no_session_plugin_abi(db):
"""旧插件省略 Session 时仍由统一 legacy 装饰器按原参数查询"""
task_id = AgentTask.add_task(db.session, **_task("legacy", user_id="legacy-user"))
monkeypatch.setattr(
"app.db.models.agenttask.run_legacy_sync_query",
lambda operation: operation(db.session),
)
db.session.commit()
assert AgentTask.get_for_user(
task_id=task_id,
+1 -1
View File
@@ -12,7 +12,7 @@ from app.runtime.event.binding import (
from app.runtime.event.errors import EventErrorPolicy
from app.runtime.events import Event
from app.schemas.types import EventType
from app.startup.modules_initializer import get_host_event_handler_factories
from app.startup.initializers.modules import get_host_event_handler_factories
class _UnmanagedHandler:
+1 -1
View File
@@ -15,7 +15,7 @@ from app.api.context import (
)
from app.api.dependencies.agent import get_agent_chat_persistence
from app.startup import lifecycle
from app.startup.context import (
from app.startup.composition.context import (
AgentChatRuntime,
AuthenticationRuntime,
HistoryRuntime,
+1 -1
View File
@@ -17,7 +17,7 @@ from app.runtime.compat.resource_imports import (
)
from app.runtime.extensions import plugin_manager as plugin_manager_module
from app.runtime.extensions.plugin_manager import PluginManager
from app.startup import plugins_initializer
from app.startup.initializers import plugins as plugins_initializer
_HEADED_CLOAKBROWSER_ENTRYPOINTS = (
+2 -1
View File
@@ -6,7 +6,8 @@ from unittest.mock import AsyncMock, MagicMock
import pytest
from fastapi import FastAPI
from app.startup import lifecycle, modules_initializer
from app.startup import lifecycle
from app.startup.initializers import modules as modules_initializer
from app.adapters.network import http as http_utils
from app.runtime.tasks import get_task_registry
+2 -2
View File
@@ -294,7 +294,7 @@ def test_startup_initializer_discovers_manifest_without_importing_resource() ->
script = """
import asyncio
import sys
from app.startup.managed_resources_initializer import (
from app.startup.initializers.managed_resources import (
init_managed_resources,
stop_managed_resources,
)
@@ -320,7 +320,7 @@ assert "pyvirtualdisplay" not in sys.modules
def test_startup_shutdown_without_init_does_not_build_registry(monkeypatch) -> None:
"""未执行启动装配时,关闭入口不得通过发现声明反向初始化 Runtime。"""
from app.startup import managed_resources_initializer
from app.startup.initializers import managed_resources as managed_resources_initializer
build_registry = MagicMock(side_effect=AssertionError("must not discover"))
monkeypatch.setattr(
+1 -1
View File
@@ -12,7 +12,7 @@ import pytest
from app.monitor.monitor import Monitor
from app.monitor.recovery import RecoveryExecutor, RecoveryState
from app.foundation.singleton import SingletonClass
from app.startup.monitor_initializer import init_monitor, stop_monitor
from app.startup.initializers.monitor import init_monitor, stop_monitor
def _build_monitor() -> Monitor:
+1 -1
View File
@@ -21,7 +21,7 @@ from app.runtime.extensions.plugin.admission import PluginMutationAdmission
from app.runtime.extensions.plugin.system import reset_plugin_system
from app.runtime.extensions.plugin_manager import PluginManager
from app.schemas.plugin import PluginRuntimeStatus
from app.startup import plugins_initializer
from app.startup.initializers import plugins as plugins_initializer
def _reset_plugin_manager() -> None:
+1 -1
View File
@@ -5,7 +5,7 @@ from app.adapters.system.resource import (
ResourceHelper,
configure_resource_version_provider,
)
from app.startup import modules_initializer
from app.startup.initializers import modules as modules_initializer
ROOT_DIR = Path(__file__).resolve().parents[1]
+4 -4
View File
@@ -56,7 +56,7 @@ def _route_contract(route: APIRoute) -> tuple[Any, ...]:
def test_init_routers_directly_includes_endpoint_router_specs(monkeypatch):
"""启动聚合应直接 include 原始端点路由器并一次性附加完整 v1 前缀。"""
from app.api.router_specs import API_V1_ROUTER_SPECS
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = FastAPI()
include_calls = []
@@ -90,7 +90,7 @@ def test_init_routers_directly_includes_endpoint_router_specs(monkeypatch):
def test_direct_v1_routes_and_openapi_match_compatibility_router():
"""最终应用的 v1 路由合同与 OpenAPI 应和兼容聚合结果完全一致。"""
from app.api.apiv1 import api_router
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
compatibility_app = FastAPI()
compatibility_app.include_router(api_router, prefix=settings.API_V1_STR)
@@ -123,7 +123,7 @@ def test_direct_v1_routes_and_openapi_match_compatibility_router():
@pytest.mark.anyio
async def test_direct_routes_honor_application_dependency_overrides():
"""直接聚合后的路由仍应由最终 FastAPI 应用解析依赖覆盖。"""
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = FastAPI()
init_routers(app)
@@ -163,7 +163,7 @@ def test_compatibility_api_router_keeps_public_contract():
def test_init_routers_accepts_composition_root_api_prefix():
"""路由初始化应使用组合根传入的 API 前缀。"""
from app.startup.routers_initializer import init_routers
from app.startup.initializers.routers import init_routers
app = FastAPI()
init_routers(app, "/custom/v1")
+1 -1
View File
@@ -5,7 +5,7 @@ from unittest.mock import AsyncMock, Mock
from app import scheduler as scheduler_module
from app.scheduler import Scheduler
from app.application.configuration import SchedulerRuntimeConfig
from app.startup import scheduler_initializer
from app.startup.initializers import scheduler as scheduler_initializer
class _BackgroundSchedulerStub:
+3 -3
View File
@@ -4,7 +4,7 @@ from unittest.mock import MagicMock, patch
import pytest
from app.startup.download_failure import TransactionalDownloadFailureRepository
from app.db.adapters.download import TransactionalDownloadFailureRepository
def _session_factory(session: MagicMock):
@@ -22,7 +22,7 @@ def test_record_failure_commits_explicit_unit_of_work() -> None:
repository = TransactionalDownloadFailureRepository(_session_factory(session))
with patch(
"app.startup.download_failure.DownloadFailureOper",
"app.db.adapters.download.DownloadFailureOper",
return_value=oper,
):
result = repository.record_failure("fp", "now", "next", title="片名")
@@ -40,7 +40,7 @@ def test_record_failure_rolls_back_explicit_unit_of_work() -> None:
repository = TransactionalDownloadFailureRepository(_session_factory(session))
with patch(
"app.startup.download_failure.DownloadFailureOper",
"app.db.adapters.download.DownloadFailureOper",
return_value=oper,
), pytest.raises(ValueError, match="duplicate"):
repository.record_failure("fp", "now", "next")
+1 -1
View File
@@ -15,7 +15,7 @@ from app.foundation.singleton import Singleton
from app.runtime.config import global_vars
from app.application.transfer import TransferQueue, TransferTask
from app.schemas.file import FileItem
from app.startup import transfer_initializer
from app.startup.initializers import transfer as transfer_initializer
def _build_chain(*, transfer_threads: int = 0) -> TransferChain:
+4 -4
View File
@@ -28,10 +28,10 @@ def test_mypy_gate_has_explicit_strict_scope_without_global_ignore() -> None:
assert "app/runtime/event/errors.py" in governed_files
assert "app/application/scheduling.py" in governed_files
assert "scripts/architecture/async_blocking.py" in governed_files
assert "app/startup/context.py" in governed_files
assert "app/startup/configuration.py" in governed_files
assert "app/startup/download_failure.py" in governed_files
assert "app/startup/workflow.py" in governed_files
assert "app/startup/composition/context.py" in governed_files
assert "app/startup/composition/configuration.py" in governed_files
assert "app/db/adapters/download.py" in governed_files
assert "app/db/adapters/workflow.py" in governed_files
assert "app/application/workflow.py" in governed_files
assert "app/api/context.py" in governed_files
assert "app/db/base.py" in governed_files