Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "2718lab-devkit",
"version": "1.1.3",
"version": "1.1.4",
"description": "Local MCP server for developer workflow coordination, indexing, and evidence handling.",
"author": {
"name": "2718lab",
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ body:
id: version
attributes:
label: DevKit version
placeholder: "v1.1.3"
placeholder: "v1.1.4"
validations:
required: true

Expand Down
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,31 @@ only after the CI and artifact checks pass.

## [Unreleased]

## [1.1.4] - 2026-09-04

### Added

- Added a hostless, compile-only MCP Fast Lane planning path. Caller-supplied
workspace and snapshot identifiers remain selectors: a read-only local
RuntimeRoot resolves the registered workspace, requires the exact current
`INDEX_READY` snapshot and Git binding, and emits a bounded, exact-key
`team-efficiency/fast-lane-plan-v2` descriptor.

### Fixed

- Normalize the no-null public plan before calculating assignment and plan
identities, so `plan_item_id` and `plan_hash` can be recomputed exactly from
inactive plans and read-only as well as writer assignments.
- Fail closed with the snapshot's precise stable error whenever local planning
observes any Project Index state other than `INDEX_READY`.

### Security

- Plan-v2 is planning data only: it fixes `plan_only=true`,
`dispatch_state="not_dispatched"`, and `execution_authorized=false`. It does
not spawn an agent, claim a lease, create a worktree, mutate Git, or dispatch
work; those actions remain outside the compiler contract.

## [1.1.3] - 2026-09-01

### Added
Expand Down
87 changes: 46 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
[简体中文](README.zh-CN.md)

# 2718lab DevKit — Codex + MCP v1.1.3
# 2718lab DevKit — Codex + MCP v1.1.4

[![version](https://img.shields.io/badge/version-v1.1.3-blue)](./.codex-plugin/plugin.json)
[![version](https://img.shields.io/badge/version-v1.1.4-blue)](./.codex-plugin/plugin.json)
[![license](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)

2718lab DevKit is a Codex-first engineering toolkit: a local, stdio-only MCP
runtime for bounded project indexing, Atlas evidence, Relay lifecycle
coordination, and deterministic Fast Lane planning, plus a compact Skill bundle
of reference manuals. This repository carries the versioned v1.1.3 package.
of reference manuals. This repository carries the versioned v1.1.4 package.
The checked-in manifest and allowlist define the executable runtime surface;
the manual map, install, build, and verification sections below describe the
supported workflow.

The current release retains a deliberately fail-closed Fast Lane preview. The public compiler
and CLI return `NO_SAFE_WORK` with zero assignments: they do not consume host
status or live-account inputs, and have no worktree execution path. Host
execution remains an external Desktop-host bridge requirement.
The public Python compiler and CLI retain the deliberately fail-closed
`team-efficiency/fast-lane-plan-v1` preview. The MCP `fastlane_compile` tool
instead resolves caller-supplied workspace/snapshot selectors through its local
RuntimeRoot and returns a verified `team-efficiency/fast-lane-plan-v2` planning
descriptor. That descriptor is `plan_only`: it never dispatches, claims a
lease, creates a worktree, or authorizes execution.

For storage-governed execution, v1.1.3 references compatible Host source only
The prior v1.1.3 storage-governance integration references compatible Host source only
on Ayleovelle's user-fork
[`codex/host-1.1.3-storage-governance-upstream`](https://github.com/Ayleovelle/codex/tree/codex/host-1.1.3-storage-governance-upstream)
branch, pinned to immutable commit
Expand Down Expand Up @@ -59,12 +61,12 @@ and continue to fail closed.
- The optional Codex Skill bundle is part of DevKit's documentation surface. It
provides short, module-specific manuals without becoming a second runtime or
an executable prompt/agent surface.
- Fast Lane is a pure MCP runtime compiler. Its public surface is presently
authority-inert and fail-closed: it emits no assignments and never spawns
agents, edits Git, runs commands, or executes worktrees. Host execution is
reserved for a future external Desktop-host bridge contract. The RuntimeRoot
host-private V2/V3 bootstrap path is covered with injected test doubles only;
no external host embedding or operational/host-integrated GO is claimed.
- Fast Lane is a pure planning compiler. The MCP tool can emit bounded
`team-efficiency/fast-lane-plan-v2` assignments only after its private
RuntimeRoot verifies a registered `INDEX_READY` snapshot, Git HEAD, and full
write-scope coverage. Every result remains `plan_only`; no agent, Git command,
lease, or worktree action is executed. The public Python compiler/CLI remains
the authority-inert plan-v1 diagnostic surface.

## Module overview

Expand All @@ -82,11 +84,11 @@ and continue to fail closed.
## Overall workflow

The repository workflow defaults to Fast Lane. `workflow-design` prepares a
bounded input; `fastlane_compile` or `team_efficiency.py` then returns an
authority-inert, fail-closed plan. `fast-lane-routing` documents the intended
future host-consumption boundary; neither a skill nor the current compiler
starts agents or creates/executes cross-session worktrees. The current path is
to inspect the blocked plan and retain authority outside this repository.
bounded input. MCP `fastlane_compile` verifies the persisted local project
snapshot and returns a plan-v2 descriptor; `team_efficiency.py` retains the
blocked plan-v1 diagnostic path. Neither path starts agents or creates/executes
cross-session worktrees. A coordinator must separately validate route
availability, claim a lease, and dispatch any selected work.

```mermaid
flowchart TD
Expand All @@ -95,9 +97,9 @@ flowchart TD
C["mcp-tools/server.py<br/>stdio entry"] --> D["Project Index / Checkpoint<br/>Atlas / Relay"] --> E["Bounded result<br/>host action"]
end
subgraph FAST["Fast Lane"]
F["fast-lane request"] --> G["team_efficiency.py<br/>public compiler"]
G --> X["Fail closed<br/>NO_SAFE_WORK, zero assignments"]
H["Future external Desktop-host bridge<br/>contract only"] -. "not shipped or invoked" .-> G
F["fast-lane request"] --> G["MCP fastlane_compile<br/>private RuntimeRoot verification"]
G --> X["plan-v2<br/>plan_only, not dispatched"]
F --> H["public Python / CLI"] --> I["plan-v1<br/>NO_SAFE_WORK"]
end
B -->|MCP tools| C
B -->|Fast Lane| F
Expand Down Expand Up @@ -177,7 +179,7 @@ source of record remains `main` and immutable release tags.

Maintainers build that snapshot with the dedicated marketplace allowlist:

python .codex-plugin/build_main_artifact.py --plugin-root . --allowlist .codex-plugin/marketplace-artifact-allowlist.json --output <artifact-output-dir>/2718lab-devkit-marketplace-v1.1.3.zip
python .codex-plugin/build_main_artifact.py --plugin-root . --allowlist .codex-plugin/marketplace-artifact-allowlist.json --output <artifact-output-dir>/2718lab-devkit-marketplace-v1.1.4.zip

## Install and run locally

Expand Down Expand Up @@ -224,7 +226,7 @@ handles or falls back to an unrelated local start.
The allowlisted builder creates a deterministic ZIP outside the plugin source
tree. Choose an output directory outside the source tree:

python .codex-plugin/build_main_artifact.py --plugin-root . --output <artifact-output-dir>/2718lab-devkit-v1.1.3.zip
python .codex-plugin/build_main_artifact.py --plugin-root . --output <artifact-output-dir>/2718lab-devkit-v1.1.4.zip

The artifact contains the manifest, .mcp.json, LICENSE, the locked Python
project, and the runtime files selected by
Expand Down Expand Up @@ -334,24 +336,27 @@ cleanup target.

The Fast Lane compiler is in
mcp-tools/devkit_fastlane/scripts/fastlane_routing.py and
mcp-tools/devkit_fastlane/scripts/team_efficiency.py. The public MCP entry is
`fastlane_compile`; every current invocation is deliberately blocked with
`NO_SAFE_WORK` and zero assignments unless the request is the closed
`fastlane-host-dispatch-request-v1` shape and this MCP process owns an
authenticated inherited host bridge. In that private case the host supplies
one-time registry-bound compiler evidence and receives a typed dispatch batch.
mcp-tools/devkit_fastlane/scripts/team_efficiency.py. The MCP `fastlane_compile`
entry returns `team-efficiency/fast-lane-plan-v2` only after a read-only
RuntimeRoot unit of work resolves the registered workspace and snapshot. The
snapshot must be current, `INDEX_READY`, bound to the repository Git HEAD, and
its persisted `include_paths` must fully cover every writer `write_scope`.

- `reasoning_effort` is required and accepts only `low`, `medium`, `high`,
`xhigh`, or `max`; worker dispatch never accepts `ultra`.
- The public compiler/CLI does not consume host status, account usage, index
evidence, or a worktree root.
- The compiler never creates a worktree, selects a route, or runs a command.
The authenticated session ACKs terminal slots and requests refill only at the
next host boundary. The compiler can only commit the fully hash-bound batch to the private
host bridge; the host remains the execution authority.
- Missing, stale, mismatched, replayed, or caller-supplied evidence keeps the
result at `NO_SAFE_WORK`. Filesystem paths are never accepted as compiler
evidence.
`xhigh`, or `max`; the MCP output never dispatches a worker.
- `team-efficiency/fast-lane-plan-v2` fixes `plan_only=true`,
`dispatch_state="not_dispatched"`, and `execution_authorized=false`.
Assignments use `team-efficiency/local-writer-plan-v1`; path-free
`index_evidence` includes snapshot/binding hashes, `include_paths_hash`, and
the compiled `scope_hash`.
- `INDEX_STALE` rejects filesystem or Git drift. `INDEX_PARTIAL` rejects either
a partial snapshot or any snapshot whose include roots omit a writer scope.
- Caller IDs are selectors, not authority material. The public MCP request and
public `compile_fast_lane` Python API accept no local index root, Git HEAD, or
private planning material.
- The public Python compiler/CLI still does not consume host status, account
usage, index evidence, or a worktree root and remains the blocked plan-v1
diagnostic boundary.

### Account-usage boundary

Expand Down Expand Up @@ -390,7 +395,7 @@ freeze a transient regression count.

## Version

This repository represents the versioned v1.1.3 package. Release notes are
This repository represents the versioned v1.1.4 package. Release notes are
in [CHANGELOG.md](CHANGELOG.md); build and install from the checked-in manifest,
artifact allowlist, and locked dependency set. A maintainer dispatches Release
from current `main`; it validates all declared gates, creates the annotated tag,
Expand Down
76 changes: 41 additions & 35 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
[English](README.md)

# 2718lab DevKit —— Codex + MCP v1.1.3
# 2718lab DevKit —— Codex + MCP v1.1.4

[![版本](https://img.shields.io/badge/version-v1.1.3-blue)](./.codex-plugin/plugin.json)
[![版本](https://img.shields.io/badge/version-v1.1.4-blue)](./.codex-plugin/plugin.json)
[![许可证](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE)

2718lab DevKit 是一个 Codex-first 工程工具包:它包含一个本地、仅 stdio
传输的 MCP 运行时,用于有边界的项目索引、Atlas 证据、Relay 生命周期协调和
确定性的 Fast Lane 规划;同时还包含一组精简的 Skill 说明书。本仓库承载版本化的
v1.1.3 包;已提交的 manifest 和 allowlist 定义可执行运行时范围,说明书导航、
v1.1.4 包;已提交的 manifest 和 allowlist 定义可执行运行时范围,说明书导航、
安装、构建和验证章节共同给出支持的工作流。

当前版本保留刻意 fail-closed 的 Fast Lane 预览。公共编译器和 CLI 固定返回
`NO_SAFE_WORK` 与零 assignments:不会消费 host-status 或实时账号输入,也没有
worktree 执行路径。宿主执行属于未来外部 Desktop-host bridge 合同的要求。
公共 Python 编译器和 CLI 继续保留刻意 fail-closed 的
`team-efficiency/fast-lane-plan-v1` 预览。MCP `fastlane_compile` 则通过本地
RuntimeRoot 解析 caller 提供的 workspace/snapshot selector,并返回已验证的
`team-efficiency/fast-lane-plan-v2` 规划描述符。该描述符固定为 `plan_only`:不会
派发、领取 lease、创建 worktree 或授权执行。

对于受存储治理的执行,v1.1.3 只引用 Ayleovelle 用户 fork 上的兼容 Host 源码:
此前 v1.1.3 的存储治理集成只引用 Ayleovelle 用户 fork 上的兼容 Host 源码:
[`codex/host-1.1.3-storage-governance-upstream`](https://github.com/Ayleovelle/codex/tree/codex/host-1.1.3-storage-governance-upstream)
分支,固定到不可变提交
[`c3dde23bec21c45d10740f2eec09d9a1b87cd329`](https://github.com/Ayleovelle/codex/commit/c3dde23bec21c45d10740f2eec09d9a1b87cd329)。
Expand Down Expand Up @@ -45,11 +47,11 @@ stock Codex Host 没有经过证明的 protected broker,继续 fail-closed。
静态 prompt agent 或模型运行器。
- 可选的 Codex Skill bundle 是 DevKit 的说明书表面,提供简短的模块化手册;
它不构成第二个运行时,也不是可执行的 prompt/agent 表面。
- Fast Lane 是 MCP runtime 中的纯本地编译器。其公共面当前没有调度权限并且
fail-closed:不会产生 assignment,也不会 spawn agent、修改 Git、运行命令或
执行 worktree。宿主执行预留给未来的外部 Desktop-host bridge 合同。
RuntimeRoot 的 host-private V2/V3 bootstrap 仅由注入的测试替身覆盖;
没有 external host embedding 实证,也不声称 operational/host-integrated GO
- Fast Lane 是纯规划编译器。只有 server 私有 RuntimeRoot 验证已注册的
`INDEX_READY` snapshot、Git HEAD 和完整 writer scope 覆盖后,MCP 工具才会
产出有界的 `team-efficiency/fast-lane-plan-v2` assignments。所有结果仍为
`plan_only`,不执行 agent、Git 命令、lease 或 worktree 动作。公共 Python
编译器/CLI 继续作为无 authority 的 plan-v1 诊断面

## 核心模块速览

Expand All @@ -66,11 +68,11 @@ stock Codex Host 没有经过证明的 protected broker,继续 fail-closed。

## 整体工作流

仓库级默认工作流是 Fast Lane。`workflow-design` 准备有界输入;
`fastlane_compile` 或 `team_efficiency.py` 随后只返回无权限、fail-closed 的计划。
`fast-lane-routing` 记录的是预期的未来宿主消费边界;skill 和当前编译器均不会
启动 agent,也不会创建或执行跨会话工作树。当前路径只用于检查被阻断的计划,
权限仍保留在本仓库之外
仓库级默认工作流是 Fast Lane。`workflow-design` 准备有界输入;MCP
`fastlane_compile` 验证持久化本地项目 snapshot 后返回 plan-v2 描述符,
`team_efficiency.py` 则保留被阻断的 plan-v1 诊断路径。两条路径都不会启动 agent,
也不会创建或执行跨会话工作树。协调器必须另行验证 route availability、领取 lease
并派发所选工作

```mermaid
flowchart TD
Expand All @@ -79,9 +81,9 @@ flowchart TD
C["mcp-tools/server.py<br/>stdio 入口"] --> D["Project Index / Checkpoint<br/>Atlas / Relay"] --> E["有界结果<br/>宿主动作"]
end
subgraph FAST["Fast Lane"]
F["fast-lane request"] --> G["team_efficiency.py<br/>公共编译器"]
G --> X["失败关闭<br/>NO_SAFE_WORK,零 assignments"]
H["未来外部 Desktop-host bridge<br/>仅合同"] -. "未交付或调用" .-> G
F["fast-lane request"] --> G["MCP fastlane_compile<br/>私有 RuntimeRoot 验证"]
G --> X["plan-v2<br/>plan_only,未派发"]
F --> H["公共 Python / CLI"] --> I["plan-v1<br/>NO_SAFE_WORK"]
end
B -->|MCP 工具| C
B -->|Fast Lane| F
Expand Down Expand Up @@ -155,7 +157,7 @@ Fast Lane 不含额度协调器合同;公共编译器和 CLI 不读取、协

维护者使用专用的 marketplace allowlist 构建该快照:

python .codex-plugin/build_main_artifact.py --plugin-root . --allowlist .codex-plugin/marketplace-artifact-allowlist.json --output <artifact-output-dir>/2718lab-devkit-marketplace-v1.1.3.zip
python .codex-plugin/build_main_artifact.py --plugin-root . --allowlist .codex-plugin/marketplace-artifact-allowlist.json --output <artifact-output-dir>/2718lab-devkit-marketplace-v1.1.4.zip

## 本地安装与运行

Expand Down Expand Up @@ -195,7 +197,7 @@ RELAY_CAPABILITY_BROKER_UNAVAILABLE。服务器不会暴露原始 handle,也

allowlist builder 会在插件源码树之外生成确定性的 ZIP。请选择源码树之外的输出目录:

python .codex-plugin/build_main_artifact.py --plugin-root . --output <artifact-output-dir>/2718lab-devkit-v1.1.3.zip
python .codex-plugin/build_main_artifact.py --plugin-root . --output <artifact-output-dir>/2718lab-devkit-v1.1.4.zip

产物包含 manifest、.mcp.json、LICENSE、锁定的 Python 项目,以及
.codex-plugin/main-artifact-allowlist.json 选中的运行时文件。它的可执行运行时
Expand Down Expand Up @@ -289,20 +291,24 @@ embedding 或本地路径放宽的证据。

Fast Lane 编译器位于
mcp-tools/devkit_fastlane/scripts/fastlane_routing.py 和
mcp-tools/devkit_fastlane/scripts/team_efficiency.py。公共 MCP 入口为
`fastlane_compile`;当前每一次调用都会刻意以 `NO_SAFE_WORK` 和零 assignments
被阻断;唯一例外是 exact-key 的 `fastlane-host-dispatch-request-v1`,且当前 MCP
进程确实持有经过认证的 inherited host bridge。此时宿主通过一次性、registry-bound
的 compiler evidence 回传精确事实,并接收 typed dispatch batch。
mcp-tools/devkit_fastlane/scripts/team_efficiency.py。MCP `fastlane_compile` 只有在
只读 RuntimeRoot UoW 解析已注册 workspace/snapshot 后才返回
`team-efficiency/fast-lane-plan-v2`。snapshot 必须 current、处于 `INDEX_READY`、
绑定仓库 Git HEAD,且持久化 `include_paths` 完整覆盖每个 writer `write_scope`。

- `reasoning_effort` 必填且只接受 `low`、`medium`、`high`、`xhigh` 或
`max`;worker 调度永不接受 `ultra`。
- 公共编译器/CLI 不消费 host-status、账号用量、index evidence 或 worktree root。
- 编译器不会创建 worktree、选择路由或运行命令;认证 session 只在 terminal ACK
后请求下一宿主边界补位。编译器只能把完整 hash-bound batch 提交给私有宿主桥,
真正执行权限仍属于宿主。
- evidence 缺失、过期、错配、重放或来自 caller 自报时仍保持 `NO_SAFE_WORK`;
filesystem path 永远不能充当 compiler evidence。
`max`;MCP 输出永不派发 worker。
- `team-efficiency/fast-lane-plan-v2` 固定 `plan_only=true`、
`dispatch_state="not_dispatched"`、`execution_authorized=false`。
assignment 使用 `team-efficiency/local-writer-plan-v1`;无路径的
`index_evidence` 包含 snapshot/binding hashes、`include_paths_hash` 与已编译
`scope_hash`。
- filesystem 或 Git 漂移返回 `INDEX_STALE`;snapshot 本身 partial,或其 include
roots 遗漏任一 writer scope,均返回 `INDEX_PARTIAL`。
- caller ID 只是 selector,不是 authority material。公共 MCP request 与公共
`compile_fast_lane` Python API 均不接受本地 index root、Git HEAD 或私有规划材料。
- 公共 Python 编译器/CLI 仍不消费 host-status、账号用量、index evidence 或
worktree root,并继续作为被阻断的 plan-v1 诊断边界。

### 账号用量边界

Expand Down Expand Up @@ -336,7 +342,7 @@ CI 和全新产物检查才是当前测试计数的唯一来源。它们验证

## 版本

本仓库代表版本化的 v1.1.3 包。发布说明见
本仓库代表版本化的 v1.1.4 包。发布说明见
[CHANGELOG.md](CHANGELOG.md);构建和安装请以已提交的 manifest、产物 allowlist
和锁定依赖为准。维护者从 current `main` 手动 dispatch Release;它通过全部 gates
后才创建注释 tag 并发布匹配的 GitHub Release。单独 push tag 不会触发发布。
Expand Down
Loading