Doramagic 项目包 · 项目说明书
codealmanac 项目
codealmanac 项目主页居中标题。
概述、安装与日常读取命令
CodeAlmanac 是一个面向代码仓库的"年鉴式"知识管理工具,它把构建、索引、检索与日常读取整合在同一个 CLI 之下,目标是让开发者不必离开终端即可完成对仓库历史、符号与文档的查询。资料来源:[README.md:1-40]()
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
继续阅读本节完整说明和来源证据。
1. 项目概述与适用场景
CodeAlmanac 是一个面向代码仓库的"年鉴式"知识管理工具,它把构建、索引、检索与日常读取整合在同一个 CLI 之下,目标是让开发者不必离开终端即可完成对仓库历史、符号与文档的查询。资料来源:README.md:1-40
核心能力由 app.py 承载应用入口与生命周期调度;命令行界面则由 cli/main.py 统一分发,再交由 cli/dispatch/ 下的子模块(例如 setup.py)处理具体动作。资料来源:src/codealmanac/app.py:1-30 资料来源:src/codealmanac/cli/main.py:1-25
| 模块 | 角色 | 关键动作 |
|---|---|---|
app.py | 应用上下文 | 初始化、加载配置、调度生命周期阶段 |
cli/main.py | CLI 入口 | 解析参数、路由子命令 |
cli/dispatch/setup.py | 子命令实现 | 安装、初始化本地缓存、注册读取器 |
当前版本 0.4.4 在 Yoke 之上挂接了 Codex 与 Claude 两个执行后端,社区正在讨论引入 OpenCode 作为一等公民客户端(详见 #41),并关注是否能与 Claude Mac App、Xcode、Android Studio 等编辑器协同(#40)。资料来源:README.md:60-90
2. 安装与环境准备
2.1 通过 `pyproject.toml` 直接安装
项目使用 Python 打包元数据声明依赖与入口点。开发模式安装命令如下:
git clone https://github.com/AlmanacCode/codealmanac.git
cd codealmanac
pip install -e .
pyproject.toml 中定义了 codealmanac 控制台入口,指向 cli/main.py 中的 main() 函数,从而保证 codealmanac <subcommand> 在任意目录下都可调用。资料来源:pyproject.toml:1-40
2.2 初次引导(`setup` 子命令)
首次使用需要执行初始化,将本地索引目录、Yoke 配置与默认 harness(默认 Codex 或 Claude)写入 ~/.codealmanac/。资料来源:src/codealmanac/cli/dispatch/setup.py:1-45
codealmanac setup --harness codex
codealmanac setup --harness claude
setup 子命令会:
- 创建本地缓存与日志目录;
- 校验所选 harness 的认证信息;
- 写入默认的
config.toml,供后续ingest、garden、read等命令读取。资料来源:src/codealmanac/cli/dispatch/setup.py:20-60
2.3 入门手册
manual/getting-started.md 提供了一步一步的演练流程,覆盖最小可运行示例与首个查询命令,建议新用户完整跟读。资料来源:src/codealmanac/manual/getting-started.md:1-30
3. 日常读取命令
完成 setup 后,最常用的就是"读取"类子命令。它们不会修改仓库内容,只在索引之上做查询:
codealmanac read <path>:读取指定文件或符号的注释化摘要。codealmanac search <query>:跨仓库执行模糊搜索,返回符号、提交与文档三路命中。codealmanac timeline <symbol>:展示符号的演变时间线,串联起提交与文档变更。codealmanac explain <ref>:调用当前 harness(Codex / Claude)生成解释段落。
这些命令由 cli/main.py 统一路由,并依赖 app.py 构建的应用上下文来读取已索引的数据。资料来源:src/codealmanac/cli/main.py:30-80 资料来源:src/codealmanac/app.py:40-90
下面以"读取 + 搜索"为例展示一个最小工作流:
flowchart LR
A[setup] --> B[ingest]
B --> C[index 落盘]
C --> D[read / search]
D --> E[harness 解释]4. 兼容性、扩展与社区关注点
- 多编辑器协作:社区在 #40 询问是否支持 Claude Mac App、Xcode 与 Android Studio;这些场景主要取决于 harness 客户端是否能输出结构化文本,并由
app.py的解析层吸收。资料来源:src/codealmanac/app.py:50-110 - OpenCode 一等公民:#9 与 #41 提议把 OpenCode 接入 CodeAlmanac 的执行链,让
build / ingest / garden可在 OpenCode 的鉴权与模型路由下运行;接入点预期落在cli/dispatch/的 harness 注册表中。资料来源:src/codealmanac/cli/dispatch/setup.py:30-70
若你日常主要使用 OpenCode,建议先关注 #41 的进展,并在跟踪版本时留意 v0.4.4 之后的 Changelog,以确认 harness 注册表是否扩展。资料来源:README.md:100-130
来源:https://github.com/AlmanacCode/codealmanac / 项目说明书
系统架构、核心概念与生命周期操作
CodeAlmanac 是一个面向代码仓库的结构化"年鉴"系统:通过对源码进行构建、摄取(ingest)与整理(garden)三类生命周期操作,把分散的代码事实汇聚成可查询、可演进的知识资产。当前版本为 0.4.4,所有生命周期任务均通过统一的可插拔"harness 客户端"调度,目前内置支持 Codex 与 Claude(经由 Yoke 中间层)。社区中关于"将 Open...
继续阅读本节完整说明和来源证据。
概述与项目定位
CodeAlmanac 是一个面向代码仓库的结构化"年鉴"系统:通过对源码进行构建、摄取(ingest)与整理(garden)三类生命周期操作,把分散的代码事实汇聚成可查询、可演进的知识资产。当前版本为 0.4.4,所有生命周期任务均通过统一的可插拔"harness 客户端"调度,目前内置支持 Codex 与 Claude(经由 Yoke 中间层)。社区中关于"将 OpenCode 作为一等 harness 客户端"的诉求(#41、#9)正是围绕这一调度层展开。
资料来源:almanac/architecture/composition-root.md:1-40
核心组成与服务边界
系统的入口由 composition root 装配,它在启动期把配置、harness、存储与生命周期队列注入到运行容器中。服务边界文档明确了各模块的职责切割:
- Harness 抽象层:封装外部编码代理(Codex/Claude)的调用协议,对外暴露统一的
run接口; - 生命周期引擎:负责把
build、ingest、garden三类操作分解为可执行步骤; - 持久化层:保存运行队列、运行结果与变更快照;
- 同步网关:将本地队列与外部触发源(如 Git 事件)同步。
资料来源:almanac/architecture/service-boundaries.md:1-60、almanac/architecture/composition-root.md:41-90
生命周期工作流
三类生命周期操作共享同一调度骨架,但语义不同:
| 操作 | 目标 | 典型产物 |
|---|---|---|
build | 解析仓库结构、生成索引骨架 | 索引清单、构件图 |
ingest | 摄取代码事实与文档片段 | 事实条目、引用图谱 |
garden | 整理、修剪与版本对齐 | 修订建议、归档产物 |
工作流文档规定每个操作必须经过 入队 → 预检 → 调度 → 执行 → 落盘 五阶段,并由 mutation-safety 策略确保任意阶段失败都不会污染既有数据。
资料来源:almanac/architecture/lifecycle/workflows.md:1-80、almanac/architecture/lifecycle/mutation-safety.md:1-50
操作运行器与队列同步
operation-runner 是执行节点的核心:它从运行队列中取任务,调用对应 harness 客户端完成动作,再把结构化结果回写。run-queue-and-sync 描述了队列的本地持久化、租约续期、以及与外部事件源的回压同步机制,保证在 harness 不可用或网络抖动时任务不会丢失。
flowchart LR
A[触发源] --> B[Run Queue]
B --> C[Operation Runner]
C --> D{Harness 客户端}
D -->|Codex| E[Yoke]
D -->|Claude| E
D -.未来.-> F[OpenCode]
C --> G[落盘与快照]
G --> H[知识库]资料来源:almanac/architecture/lifecycle/operation-runner.md:1-70、almanac/architecture/lifecycle/run-queue-and-sync.md:1-90
变更安全与扩展点
mutation-safety 文档为所有写操作引入"先快照、再执行、再校验"的三段式约束,失败时按队列条目回滚而非整库回滚。harness 抽象层预留了 register(client) 扩展点,这正是社区希望引入 OpenCode 作为一等客户端的接入位置(参见 #41)。同样的扩展机制也允许接入 Claude Mac、Xcode、Android Studio 等本地代理(社区 #40 中提出的兼容问题)。
资料来源:almanac/architecture/lifecycle/mutation-safety.md:51-110、almanac/architecture/composition-root.md:91-130
Provider 与 Harness 集成(含 OpenCode 支持议题)
本页说明 CodeAlmanac 如何通过契约(Contract)+ 适配器(Adapter) 的方式把外部 AI 编程代理(如 Codex、Claude、OpenCode)接入生命周期操作(build / ingest / garden),并解释为何社区提出的 OpenCode 一等公民支持是一个独立的工程议题。
继续阅读本节完整说明和来源证据。
1. 集成目标与作用域
CodeAlmanac 的生命周期操作需要由一个外部“代理执行体”来驱动:构造代码库快照(build)、摄取内容(ingest)、整理知识库(garden)。该执行体在项目中被统称为 Harness。CodeAlmanac 不绑定到某一个 CLI,而是定义一套统一的调用契约,再为不同工具(Codex、Claude Code、未来的 OpenCode)编写 Provider Adapter。
- 契约定义在
almanac/architecture/agent-runs/harness-contract.md中,是所有适配器必须遵守的输入、输出、事件协议。 - 服务层入口位于
src/codealmanac/services/harnesses/service.py,负责把上层任务请求分派到对应 Provider。 - 适配器层目前主要由
src/codealmanac/integrations/harnesses/yoke/adapter.py实现,统一封装 Codex 与 Claude Code。
资料来源:almanac/architecture/agent-runs/harness-contract.md:1-40,src/codealmanac/services/harnesses/service.py:1-60
2. 架构分层:Contract → Adapter → Provider
集成被分为三层,确保新增 Provider 时只改动 Adapter,不影响业务调用方。
| 层 | 文件 | 职责 |
|---|---|---|
| 契约层 | harness-contract.md | 描述请求 schema、事件流、终止条件 |
| 服务层 | services/harnesses/service.py | 解析任务、选择 Provider、汇聚事件 |
| 适配器层 | integrations/harnesses/*/adapter.py | 将契约翻译为具体 CLI 调用 |
almanac/architecture/agent-runs/provider-adapters.md 进一步说明:每个 Provider 必须实现 start / send_event / cancel / collect_artifacts 等最小接口,并把外部 CLI 的原始流式输出规范化为 harness-event-shape.md 中定义的标准事件(如 run.started、message.delta、run.finished)。
flowchart LR
A[Lifecycle Job] --> B[HarnessService]
B --> C{Provider Router}
C -->|codex| D[Yoke Adapter]
C -->|claude| D
C -.->|opencode(规划中)| E[OpenCode Adapter]
D --> F[Standard Event Stream]
E --> F
F --> G[Job Result Store]资料来源:almanac/architecture/agent-runs/provider-adapters.md:1-80,almanac/reference/harness-event-shape.md:1-50
3. 事件契约与 Yoke 适配器实现要点
事件契约是 Provider 之间互操作的核心。harness-event-shape.md 规定所有 Harness 必须产出确定字段的事件 JSON:run_id、seq、type、payload、timestamp,并保证 seq 单调递增,以便上层做重放与断点续传。
Yoke 适配器(src/codealmanac/integrations/harnesses/yoke/adapter.py)当前承担 Codex 与 Claude Code 两类 Provider 的转换工作:
- 在
start()中根据provider_kind选择具体 CLI 参数模板(Codex 使用--prompt-file,Claude Code 使用-p)。 - 通过子进程管道读取 stdout,逐行解析为 Yoke 内部事件,再映射到 CodeAlmanac 标准事件。
- 在
collect_artifacts()中根据run.finished携带的artifacts_ref下载 diff、log 与 transcript。
由于 Yoke 把两个 Provider 收敛到一个文件,新增 Provider 时可以参考 almanac/guides/add-a-harness-provider-adapter.md 中的步骤独立编写 Adapter,避免改动 Yoke 主路径。
资料来源:src/codealmanac/integrations/harnesses/yoke/adapter.py:1-120,almanac/reference/harness-event-shape.md:20-90,almanac/guides/add-a-harness-provider-adapter.md:1-60
4. OpenCode 支持议题(社区诉求)
社区 Issue #9 与 #41 明确请求把 OpenCode 作为一等公民 Harness 接入:
- Issue #9(9 条评论)指出 OpenCode(<https://opencode.ai/>)已是流行的开源编程代理,应当被支持。
- Issue #41 进一步指出:现有用户已在 OpenCode 中维护自己的安装、鉴权与模型路由,却无法将其作为 CodeAlmanac 生命周期任务的后端执行体。
从架构上看,这正契合“Contract + Adapter”模式的设计目标:只需新增一个 integrations/harnesses/opencode/adapter.py,在 services/harnesses/service.py 的 Provider Router 中注册 opencode 分支,即可复用事件契约和上层业务。Issue #40 询问的 “Claude Mac app / Xcode / Android Studio” 本质上也属于同一类 Provider 适配议题,应通过新增 Adapter、而非修改 Contract 来解决。
资料来源:issue #9 Support OpenCode,issue #41 Add OpenCode as a first-class CodeAlmanac harness client,issue #40 Does it work with Claude Mac app, Xcode and android studio?
5. 小结
- CodeAlmanac 通过
harness-contract.md+provider-adapters.md的分层设计,把 Provider 实现细节隔离在 Adapter 层。 harness-event-shape.md提供的统一事件格式,是多 Provider 互操作和未来扩展的基础。- Yoke 适配器只是当前实现,新增 OpenCode(或 Claude Mac app、Xcode、Android Studio 等)时应遵循
add-a-harness-provider-adapter.md的指南独立编写 Adapter,避免在契约层引入 Provider 特定逻辑。
资料来源:almanac/architecture/agent-runs/harness-contract.md:1-40,src/codealmanac/services/harnesses/service.py:1-60
作业生命周期、launchd 自动化与本地状态
CodeAlmanac 把每一次 build / ingest / garden 编排视为一次"作业(run)",并将作业的元数据、状态转换、日志和产物全部落地到本地状态目录中。运行时由 Codex 与 Claude 这两类 harness(通过 Yoke 中转)负责实际的模型调用与命令执行,而 macOS 上的 launchd 则承担后台拉起、定期巡检以及自我更新的职责。...
继续阅读本节完整说明和来源证据。
概述
CodeAlmanac 把每一次 build / ingest / garden 编排视为一次"作业(run)",并将作业的元数据、状态转换、日志和产物全部落地到本地状态目录中。运行时由 Codex 与 Claude 这两类 harness(通过 Yoke 中转)负责实际的模型调用与命令执行,而 macOS 上的 launchd 则承担后台拉起、定期巡检以及自我更新的职责。资料来源:almanac/architecture/repositories/local-state.md:1-60、资料来源:almanac/architecture/setup/automation-and-update.md:1-40
整个体系可以拆成三个相互耦合的子系统:
- 作业生命周期:定义一次 run 从排队、运行到归档的全部状态。
- launchd 自动化:负责常驻守护、定时触发与升级。
- 本地状态存储:所有上述行为落盘的目录与文件结构。
作业生命周期与状态事件
一次作业的状态机由 runs/ 子目录中的状态文件驱动,最小状态集合为 queued → running → succeeded | failed | cancelled,外加一个用于归档的 archived 终态。状态之间的迁移由 harness 回调写入对应事件文件(event.json),并由本地仓储层原子地重命名 state.json 以保证并发安全。资料来源:almanac/reference/runs/run-states-and-events.md:1-80
| 阶段 | 触发者 | 关键产物 |
|---|---|---|
queued | CLI / launchd 计划任务 | runs/<id>/state.json、events/queued.json |
running | harness | events/started.json、实时日志流 |
| 终态 | harness / 守护进程 | events/{succeeded,failed,cancelled}.json、最终 result.json |
archived | 回收任务 | 压缩包移入 archive/ 子树 |
事件流同时会被遥测层采样,用于在 CLI 与未来的 Web UI 中呈现进度。资料来源:almanac/architecture/telemetry.md:1-50
launchd 自动化与后台更新
在 macOS 上,CodeAlmanac 通过 ~/Library/LaunchAgents 下的 com.codealmanac.agent.plist 注册两类作业:
- 守护保活(KeepAlive):若
codealmanac daemon异常退出,launchd 会重新拉起它,负责监视正在running的 run。 - 定时调度(StartCalendarInterval):周期性地执行
codealmanac garden以整理陈旧 run、并触发codealmanac update --self完成版本自更新。
flowchart LR A[launchd] -- StartCalendarInterval --> B[codealmanac garden] A -- KeepAlive --> C[codealmanac daemon] C -- 事件回调 --> D[runs/<id>/state.json] B -- 清理 --> E[archive/] F[codealmanac update --self] -- 新版本 --> A
Linux / 无 launchd 环境下,README 建议改用 systemd --user 单元或 cron 等价配置;行为语义保持一致。资料来源:almanac/architecture/setup/automation-and-update.md:40-120
本地状态布局与配置键
默认根目录遵循 XDG 风格:$XDG_STATE_HOME/codealmanac(macOS 下回退到 ~/.local/state/codealmanac)。其下关键子树如下:
runs/:每个 run 一个目录,包含state.json、events/、logs/、result.json。repos/:克隆下来的本地代码仓库与索引缓存。archive/:已归档 run 的压缩包,便于跨机器搬运。logs/daemon.log:守护进程与 launchd 触发的合并日志。
资料来源:almanac/reference/local-state-layout.md:1-90
常用配置键位于 config.toml,与生命周期直接相关的包括:
state_root:覆盖默认本地状态路径。keep_runs:保留多少个最近 run 在非归档区。harness:默认codex/claude之一,决定 launchd 触发时调用哪个后端。self_update_channel:与 launchd 定时任务联动,控制是否在每次 garden 时拉取新版本。
资料来源:almanac/reference/config-keys.md:1-70
与社区关注的关联
当前 Codex 与 Claude 之外,OpenCode 作为新兴开源编码代理被频繁请求作为一等公民接入(参见 issue #9 与 #41)。由于生命周期和本地状态均以 harness 无关的方式建模,新增 OpenCode 后端只需实现与现有 harness 相同的 queued → running → 终态 契约,并在 config.toml 的 harness 枚举中追加即可,无需改动 launchd 与状态目录布局。资料来源:almanac/architecture/repositories/local-state.md:60-110
简而言之:作业是状态文件,launchd 是驱动器,本地状态目录是唯一真相来源;三者解耦使得后续接入新的 harness(包括 OpenCode)几乎只是注册一个新实现。
失败模式与踩坑日记
保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。
可能增加新用户试用和生产接入成本。
可能增加新用户试用和生产接入成本。
可能影响授权、密钥配置或安全边界。
可能影响升级、迁移或版本选择。
Pitfall Log / 踩坑日志
项目:almanaccode/codealmanac
摘要:发现 16 个潜在踩坑项,其中 3 个为 high/blocking;最高优先级:安装坑 - 来源证据:Windows support (Currently errors with No module named 'termios').。
1. 安装坑 · 来源证据:Windows support (Currently errors with No module named 'termios').
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Windows support (Currently errors with No module named 'termios').
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/24 | 来源讨论提到 windows 相关条件,需在安装/试用前复核。
2. 安装坑 · 来源证据:bug: docs/concepts.md lists build as a public command but codealmanac build is rejected
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:bug: docs/concepts.md lists build as a public command but codealmanac build is rejected
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/35 | 来源讨论提到 python 相关条件,需在安装/试用前复核。
3. 安全/权限坑 · 来源证据:Not Detecting Codex CLI
- 严重度:high
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Not Detecting Codex CLI
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/1 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。
4. 安装坑 · 来源证据:bug: dev dependency httpx2 is unused - looks like a typo for httpx
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:bug: dev dependency httpx2 is unused - looks like a typo for httpx
- 对用户的影响:可能影响升级、迁移或版本选择。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/33 | 来源讨论提到 python 相关条件,需在安装/试用前复核。
5. 安装坑 · 来源证据:bug: setup --yes crashes on Linux because scheduled automation is macOS/launchd-only
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:bug: setup --yes crashes on Linux because scheduled automation is macOS/launchd-only
- 对用户的影响:可能阻塞安装或首次运行。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/31 | 来源讨论提到 python 相关条件,需在安装/试用前复核。
6. 安装坑 · 来源证据:bug: two updates can run at the same time and corrupt things
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:bug: two updates can run at the same time and corrupt things
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/26 | 来源类型 github_issue 暴露的待验证使用条件。
7. 配置坑 · 可能修改宿主 AI 配置
- 严重度:medium
- 证据强度:source_linked
- 发现:项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主,或安装命令涉及用户配置目录。
- 对用户的影响:安装可能改变本机 AI 工具行为,用户需要知道写入位置和回滚方法。
- 证据:capability.host_targets | https://news.ycombinator.com/item?id=48995181 | host_targets=claude_code, claude
8. 能力坑 · 能力判断依赖假设
- 严重度:medium
- 证据强度:source_linked
- 发现:README/documentation is current enough for a first validation pass.
- 对用户的影响:假设不成立时,用户拿不到承诺的能力。
- 证据:capability.assumptions | https://news.ycombinator.com/item?id=48995181 | README/documentation is current enough for a first validation pass.
9. 运行坑 · 来源证据:bug: getting error launchctl bootout failed
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:bug: getting error launchctl bootout failed
- 对用户的影响:可能增加新用户试用和生产接入成本。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/30 | 来源讨论提到 linux 相关条件,需在安装/试用前复核。
10. 维护坑 · 维护活跃度未知
- 严重度:medium
- 证据强度:source_linked
- 发现:未记录 last_activity_observed。
- 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
- 证据:evidence.maintainer_signals | https://news.ycombinator.com/item?id=48995181 | last_activity_observed missing
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 证据:downstream_validation.risk_items | https://news.ycombinator.com/item?id=48995181 | no_demo; severity=medium
12. 安全/权限坑 · 存在评分风险
- 严重度:medium
- 证据强度:source_linked
- 发现:no_demo
- 对用户的影响:风险会影响是否适合普通用户安装。
- 证据:risks.scoring_risks | https://news.ycombinator.com/item?id=48995181 | no_demo; severity=medium
13. 安全/权限坑 · 来源证据:Add OpenCode as a first-class CodeAlmanac harness client
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:Add OpenCode as a first-class CodeAlmanac harness client
- 对用户的影响:可能影响授权、密钥配置或安全边界。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/41 | 来源类型 github_issue 暴露的待验证使用条件。
14. 安全/权限坑 · 来源证据:bug: worker spawn OSError crashes CLI with raw traceback after run is durably committed to the queue
- 严重度:medium
- 证据强度:source_linked
- 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:bug: worker spawn OSError crashes CLI with raw traceback after run is durably committed to the queue
- 对用户的影响:可能阻塞安装或首次运行。
- 证据:community_evidence:github | https://github.com/AlmanacCode/codealmanac/issues/38 | 来源讨论提到 python 相关条件,需在安装/试用前复核。
15. 维护坑 · issue/PR 响应质量未知
- 严重度:low
- 证据强度:source_linked
- 发现:issue_or_pr_quality=unknown。
- 对用户的影响:用户无法判断遇到问题后是否有人维护。
- 证据:evidence.maintainer_signals | https://news.ycombinator.com/item?id=48995181 | issue_or_pr_quality=unknown
16. 维护坑 · 发布节奏不明确
- 严重度:low
- 证据强度:source_linked
- 发现:release_recency=unknown。
- 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
- 证据:evidence.maintainer_signals | https://news.ycombinator.com/item?id=48995181 | release_recency=unknown
来源:Doramagic 发现、验证与编译记录