Skip to content

[anolisa] refactor: make system dependencies injectable #2628

Description

@ikunkun-sys

背景

ANOLISA 的部分业务路径仍直接访问 systemctl、进程、Unix socket、时钟、UID 和环境探针。测试因此可能依赖宿主机状态,外部失败也可能先被压缩成字符串,再由上层推断 domain state。

目标

为生命周期重构实际触及、且会影响业务分支或测试确定性的系统依赖建立窄的可注入边界。production adapter 负责真实系统调用,测试 adapter 返回完整的成功或失败证据。

迁移切片

每个切片使用独立 issue、分支和 PR;仅迁移该切片需要的调用点。

验收标准

  • 测试不访问或修改宿主机真实 system service/helper socket。
  • spawn、non-zero exit、transport、protocol 和 domain state 使用 typed evidence 区分。
  • production branching 不通过 error message 文本推断 domain state。
  • CLI、JSON schema 和跨权限协议的兼容性在各切片中显式保留。

非目标

  • 不创建通用 service locator。
  • 不包装所有 filesystem I/O。
  • 不一次性改造仓库内全部外部调用。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions