Files
account-manager/references/RUNTIME.md
chendelian 75a332e7b8
All checks were successful
技能自动化发布 / release (push) Successful in 28s
release: docs, browser_service, runtime_env, SKILL v1.0.52
2026-04-08 14:00:42 +08:00

3.7 KiB
Raw Blame History

运行环境与数据路径account-manager

数据落盘位置(当前实现)

get_data_root() / get_user_id() 来自 scripts/jiangchang_skill_core/runtime_env.py(与 jiangchang-platform-kit 同源);scripts/util/runtime_paths.py 在此基础上拼技能子目录。

  • 数据根目录:优先 JIANGCHANG_DATA_ROOT未设置且未走本地注入时Windows 默认 D:\jiangchang-data,其它系统 ~/.jiangchang-data
  • 用户/工作空间 id:优先 JIANGCHANG_USER_ID;未设置且未走本地注入时为 _anon
  • 技能数据目录{数据根}/{用户id}/account-manager/
    • SQLiteaccount-manager.db
    • Profileprofiles/<平台展示名>/<手机号>/(由 get_default_profile_dir 生成)
    • 日志:与其它技能共用用户级目录 {数据根}/{用户id}/logs/jiangchang.log(按日轮转)

调试为什么「list 没数据」

  • 若终端与网关注入的 JIANGCHANG_* 不一致,会写到不同用户目录,库文件不是同一份。
  • 设置 JIANGCHANG_ACCOUNT_DEBUG_PATHS=11/true/yes/on)后,每次 CLI 子命令前会在 stderr 打印实际根目录、用户 id 与数据库路径(_maybe_print_paths_debug_cli)。

本地 CLI 默认值(runtime_env

各技能 main.pysys.path 就绪后、import 业务包之前调用 apply_cli_local_defaults()(实现见 jiangchang_skill_core.runtime_env

  • 代码内 CLI_LOCAL_DEV_ENABLED = True 时,若当前未设置 JIANGCHANG_DATA_ROOT / JIANGCHANG_USER_ID,会注入平台默认数据根与 DEFAULT_LOCAL_USER_ID(与 kit 中常量一致)。
  • 代码内为 False 时,可设环境变量 JIANGCHANG_CLI_LOCAL_DEV=1 达到同样效果。
  • 发版/嵌入宿主前:将各技能 vendored 的 runtime_env.pyCLI_LOCAL_DEV_ENABLED 改为 False,或完全依赖宿主注入。

日志

实现见 scripts/jiangchang_skill_core/unified_logging.pyutil/logging_config.py 仅 re-export。

变量 作用
JIANGCHANG_LOG_LEVEL 日志级别,默认 INFO
JIANGCHANG_LOG_TO_STDERR 设为 1/true 等时WARNING 及以上同步 stderr
JIANGCHANG_LOG_FILE 覆盖主日志文件绝对路径(默认 {数据根}/{用户id}/logs/jiangchang.log
JIANGCHANG_LOG_BACKUP_COUNT 轮转保留份数,默认 30
JIANGCHANG_TRACE_ID 可选;跨技能子进程由父进程注入以串联同一调用链

登录 / 浏览器子进程login

service/browser_service.py 与子进程 service/login_child_runner.py

变量 作用
JIANGCHANG_LOGIN_TIMEOUT_SECONDS 登录检测最长秒数,默认 300,不少于 60
JIANGCHANG_LOGIN_POLL_INTERVAL_SECONDS DOM 轮询间隔,默认 1.5,限制在 0.5..10
JIANGCHANG_LOGIN_DOM_GRACE_SECONDS 打开 URL 后等待再检测,默认 4,减轻跳转误判

依赖:本机已安装 Chrome 或 EdgePython 环境需 playwright(匠厂共享 python-runtime 已包含)。运行时使用 Playwright channel=chrome|msedge 调系统浏览器,不要执行 playwright install chromium(避免下载自带 Chromium

常见问题(简要)

  • ERROR:需要 playwright Python 包:确认共享 venv 已 uv sync;本机安装 Chrome 或 Edge。
  • ERROR:PROFILE_DIR_MISSING:库中该账号 profile_dir 为空,需检查数据或重新添加账号流程。
  • 登录检测一直失败:关闭占用同一 profile 目录的其它浏览器;可调高超时与环境变量;查看统一日志文件。