Magic Context Monorepo贡献指南:目录地图、Golden测试与提交第一个PR的完整步骤
Magic Context Monorepo贡献指南目录地图、Golden测试与提交第一个PR的完整步骤【免费下载链接】magic-contextUnbounded context. Memory that manages itself. One session, for life. The hippocampus for coding agents, part of CortexKit.项目地址: https://gitcode.com/gh_mirrors/mag/magic-contextMagic Context 是一个 TypeScript 与 Rust 双栈的 Monorepo它为编码 Agent 提供自管理的上下文与长期记忆CortexKit 中的海马体。本文面向新贡献者带你掌握 Magic Context Monorepo 的目录地图、Golden 测试机制并完整走通从克隆仓库到提交第一个 PR 的每一步。 项目速览Magic Context 是什么一句话概括Unbounded context. Memory that manages itself.无限上下文自我管理的记忆。Capture捕获后台 historian 把旧会话压缩成分层摘要同时把值得保留的知识决策、约束、约定提炼为项目记忆Consolidate巩固夜间 dreamer 代理校验、去重、晋升记忆如同睡眠巩固Recall召回每一轮自动注入相关记忆Agent 可随时跨记忆、历史对话和 git 提交搜索更多背景可阅读项目主文档 README.md 和架构说明 docs/architecture/。️ 目录地图Monorepo 全景速览首次进入仓库先记住这张地图完整说明见 STRUCTURE.md目录语言职责packages/plugin/TypeScriptOpenCode 插件 共享 TS 核心绝大多数行为改动从这里开始packages/pi-plugin/TypeScriptPi 与 OMP 插件与 OpenCode 的parity 由PARITY.md追踪packages/cli/TypeScriptsetup/doctor/migrate等 CLI 命令packages/e2e-tests/TypeScript针对 OpenCode 1/2、Pi、OMP、Rust 五种栈的端到端套件crates/mc-module/Rustck-mc子模块transform、historian、工具门面crates/mc-store/Rust单写者 SQLite 存储schema、迁移、CAS 状态转移crates/mc-core/Rust缓存稳定性 transform 与分类逻辑crates/mc-tokenizer/Rust词元估算器scripts/TS/Shell发布、版本同步、缓存击穿分析等工具定位代码的小技巧来自STRUCTURE.md的官方建议这个文件是地图找具体符号请直接搜索代码。常见落点新增 transform 行为 → packages/plugin/src/hooks/magic-context/并同步镜像到 Pi 插件与 Rust 模块新增 Agent 工具 →packages/plugin/src/tools/名称/新增迁移 →migrations.ts加条目并升版本号端到端场景 → packages/e2e-tests/tests/ 中创建并注册进mode-manifest.json 贡献两道硬门槛写代码前必读规则全文在 CONTRIBUTING.md新人最常被拒的两个原因都在这里。第一步先拿到获批的 Issue行为变更必须先有被批准的 IssueBug 修复 → 开 bug issue功能/设计变更 → 开设计提案与维护者讨论方案等待 Issue 被贴上design-approved标签再动手在 PR 正文中用模板的Approved issue: #123或分步 PR 用Refs #123关联 Issue⚠️ 不要使用Closes/Fixes/Resolves——它们会在合并时提前关闭 Issue而维护者希望在功能真正发布时才关闭门槛由草稿转换机制强制未获批的 PR 在打开或被标记为 ready 时会自动转回 draft直到关联 Issue 带有design-approved。第二步覆盖所有已存在的 Harness任何触及 harness 相关表面的改动必须同时覆盖OpenCode 1、OpenCode 2、Pi、OMP 和 Rust 模块凡该表面存在之处。某表面在某 harness 中确实不存在可以标注 not applicable但放着已存在的表面不覆盖PR 会被按形状拒收此前 #450 和 #461 即因此被拒。 Golden 测试这个仓库的质量基石Magic Context 的 TS 与 Rust 双实现要保持行为一致靠的就是Golden 测试黄金快照测试用 TS 真实实现跑一遍典型场景把结果固化为 JSON 快照Rust 测试再逐字段断言自己与快照一致。三件套的位置组成路径作用生成器crates/mc-module/gen/19 个gen-*.ts脚本驱动真实 TS 代码产出快照快照文件crates/mc-module/testdata/40 余个*-golden.jsonRust 测试的断言依据断言代码crates/mc-module/src/differential_goldens.rs 等Rust 侧读取快照并比对以边界判定为例生成器 gen-boundary-golden.ts 通过Bun.resolveSync导入真实 TS 模块产出 boundary-golden.json内含常量表与消息块用例Rust 测试随后断言分组尾巴、预算与触发判定完全一致。修改行为后如何更新快照# 单个快照 bun crates/mc-module/gen/gen-boundary-golden.ts # 差异夹具 DG-1 到 DG-8并更新输入溯源哈希 bash crates/mc-module/gen/regenerate-differential-golden.sh新手常见误区改了 TS 行为却忘记重新生成快照导致 Rust 测试全线飘红。记住口诀——改行为 → 跑生成器 → 提交快照 代码。 提交第一个 PR完整操作步骤1️⃣ 准备环境并克隆仓库唯一硬性依赖是 Bun ≥ 1.4.01.3.x 存在模块解析差异仓库门禁会主动拦截。git clone https://gitcode.com/gh_mirrors/mag/magic-context cd magic-context bun install2️⃣ 本地跑通测试与格式门禁CI 会拒收未格式化的代码提交前务必全部跑绿bun run build # 构建插件 bun run typecheck # 类型检查 bun test # TS 测试 bun run lint # Biome 检查 bun run format # Biome 格式化 cargo test --workspace # Rust 测试 cargo fmt --check # Rust 格式 cargo clippy --workspace --all-targets -- -D warnings # Rust lint懒人一步到位bun run check:all。3️⃣ 填写 PR 模板并提交草稿仓库模板 .github/pull_request_template.md 非常简洁但每一项都是硬性要求首行Approved issue: #→ 填上获批的 Issue 编号Harness coverage五个复选框OpenCode 1 / OpenCode 2 / Pi / OMP / Rust module逐一选择covered、not applicable — surface does not exist there或NOT covered——不允许留空提交时保持draft 状态等 Issue 获得design-approved后再请求 review。4️⃣ 等待评审与合并门禁机器人会检查草稿状态维护者为 Issue 打标后等待中的草稿会被自动转为 ready一个仅修改 OpenCode 文件但对应 Pi 孪生文件未同步的 PR会收到覆盖性提醒提示性质不阻断合并但需人工说明合并后由维护者在功能发布时关闭 Issue✅ 新手自检清单Issue 已获批design-approvedPR 中用Refs/Approved issue关联而非Closes五个 harness 表面逐一处理PR 模板无空项TS 行为变更后已重新生成对应 golden 快照bun test、bun run lint与cargo fmt、cargo clippy全部通过文件命名 kebab-case测试以*.test.ts与代码同目录测试未触碰真实数据库测试预加载会把数据目录指向临时路径 小结贡献 Magic Context 的路径其实很清晰读懂目录地图 → 拿到获批 Issue → 五表面全覆盖 → 用 Golden 测试守住 TS/Rust 一致性 → 提交草稿 PR。这个仓库用门禁与快照把双栈 parity做成了可自动验证的工程纪律对新贡献者既是门槛也是最好的保护——按流程走你的第一个 PR 会比你想象的更顺利。【免费下载链接】magic-contextUnbounded context. Memory that manages itself. One session, for life. The hippocampus for coding agents, part of CortexKit.项目地址: https://gitcode.com/gh_mirrors/mag/magic-context创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

explainshell 项目开发指南:从 man 手册解析、LLM 选项提取到匹配与部署的完整工程实践

explainshell 项目开发指南:从 man 手册解析、LLM 选项提取到匹配与部署的完整工程实践

后端开发工具 【免费下载链接】explainshell match command-line arguments to their help text 项目地址: https://gitcode.com/gh_mirrors/ex/explainshell 点击查看 免费下载 导读 本文以 explainshell 仓库根目录下的 AGENTS.md 为骨架,结合 Makef…

2026/10/7 8:42:26 阅读更多 →
一条命令接入多个AI宿主:agent-memory的Claude Code、Codex CLI与Muse Code集成配置全解

一条命令接入多个AI宿主:agent-memory的Claude Code、Codex CLI与Muse Code集成配置全解

一条命令接入多个AI宿主:agent-memory的Claude Code、Codex CLI与Muse Code集成配置全解 【免费下载链接】agent-memory Long-term memory runtime for AI agents — plain Markdown as the source of truth, local ranked retrieval, and an independent sleep-tim…

2026/10/7 8:41:25 阅读更多 →
再论勾股定理成立的条件-37

再论勾股定理成立的条件-37

观察,不难发现,这个复合模式的一半是递归二分的, 由 和 合成。而另一半则是本身就是二分的,它由 直接构成,实际上还有单独一个质数构成的情况。这种递归使得基于这种模式的构建过程形成间接等级:用这种模式…

2026/10/7 8:41:25 阅读更多 →

最新新闻

Electron Forge 多路日志聚合渲染指南:multi-logger 标签页终端 UI 深度解析

Electron Forge 多路日志聚合渲染指南:multi-logger 标签页终端 UI 深度解析

开发工具桌面应用前端构建 【免费下载链接】forge :electron: A complete tool for building and publishing Electron applications 项目地址: https://gitcode.com/gh_mirrors/fo/forge 点击查看 免费下载 导读 electron-forge/multi-logger 是 Electron Forge …

2026/10/7 9:59:41 阅读更多 →
《刺客信条:影》光追全局光照深度解析:从RTGI原理到显卡配置实战

《刺客信条:影》光追全局光照深度解析:从RTGI原理到显卡配置实战

《刺客信条:影》我首发就进去了,玩到奈绪江第一次钻进那间漏雨的农舍时,我停下来盯着木地板看了十几秒——雨水从屋瓦的缝隙滴下来,落在地面的水渍上,那摊水像一面镜子,完整映出了房梁和倾斜的纸窗。说真的…

2026/10/7 9:59:41 阅读更多 →
在 Beaker 浏览器中掌握 lit-html:高效、表达力强、可扩展的 JavaScript HTML 模板引擎

在 Beaker 浏览器中掌握 lit-html:高效、表达力强、可扩展的 JavaScript HTML 模板引擎

前端 【免费下载链接】beaker An experimental peer-to-peer Web browser 项目地址: https://gitcode.com/gh_mirrors/be/beaker 点击查看 免费下载 导读 lit-html 是一套基于 JavaScript 模板字面量(template literals)的 HTML 模板方案&a…

2026/10/7 9:59:41 阅读更多 →
在 iOS 二进制中挖掘硬编码 HTTP URL:MASTG-DEMO-0084 实战剖析(OWASP MASTG)

在 iOS 二进制中挖掘硬编码 HTTP URL:MASTG-DEMO-0084 实战剖析(OWASP MASTG)

文档教程网络安全 【免费下载链接】mastg The OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security W…

2026/10/7 9:59:41 阅读更多 →
xberg 中配置 LLM 并发:max_concurrency 与提取线程预算的独立调优

xberg 中配置 LLM 并发:max_concurrency 与提取线程预算的独立调优

后端AI 应用NLP 【免费下载链接】xberg Polyglot document intelligence with a Rust core: extract text, metadata, images, tables, and structured data from 106 formats across 140 file extensions, plus code intelligence for 371 languages. Fifteen bindings, with …

2026/10/7 9:59:41 阅读更多 →
云端任务输出增长后:本地扩容数据盘与项目网盘的关机计费边界

云端任务输出增长后:本地扩容数据盘与项目网盘的关机计费边界

云端 GPU 任务跑了一段时间以后,存储判断通常会比创建实例时复杂。 原因很简单:模型输出、日志、检查点或成果文件已经产生,此时即使计算实例已经关机,文件占用并不会因为“计算停止”自动消失。 因此,遇到“实例已经关…

2026/10/7 9:58:40 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →