Brings over the uncommitted agent-mei work (Mac checkout, Sep 22) plus box follow-ups (Oct 17: agent_mei action namespace in keymap/zed.rs, MEI_BRIDGE.md, RENAME_AGENT_MEI.md, unmetered receipts report 0 uJ). joule_core, JOULE_CODE_* and JouleDB names unchanged. *.bak.* scratch files excluded.
27 lines
3.7 KiB
Markdown
27 lines
3.7 KiB
Markdown
# agent-mei — Developer Inventory & Audit
|
||
|
||
> Generated 2026-06-14 from a four-part audit of the fork. This is the **internal inventory** of what we built, what we gutted, what's actually live, and how it wires together — the map that keeps a 245-file divergence from a 1,000-crate editor maintainable.
|
||
|
||
agent-mei ("Joule Code") is a hard fork of Joule (`zed@e2e7a67`, baseline commit `a084434`) turned into an **energy-metered, federated, no-phone-home agentic coding editor**. Everything new lives in one crate, **`crates/agent_mei_panel`** (~10.9k LOC, 14 files); everything removed is upstream's native agent/telemetry/update surface.
|
||
|
||
## The documents
|
||
|
||
| Doc | What it answers |
|
||
|-----|-----------------|
|
||
| [ARCHITECTURE.md](ARCHITECTURE.md) | How it wires together — cascade data flow (L0→L4), Joule integration seams, the 16 dep boundary, the subsystem graph, integration risks |
|
||
| [MODULES.md](MODULES.md) | Function breakdown — per-file purpose + key functions/types, the `AgentMeiPanel` struct, a codebase review |
|
||
| [STATUS.md](STATUS.md) | Fruition audit — what's actually **live** vs **scaffold/aspirational**, the claim-vs-reality table, the `#[ignore]`'d tests |
|
||
| [UPSTREAM_DIVERGENCE.md](UPSTREAM_DIVERGENCE.md) | What was removed/modified vs upstream Joule, the privacy hardening, dangling-risk check |
|
||
| [FINDINGS.md](FINDINGS.md) | The prioritized, actionable gaps the audit surfaced (the fix list) |
|
||
|
||
## Executive summary
|
||
|
||
**The shape.** A small set of GPUI-free, pure, unit-tested substrate modules (`sessions`, `hooks`, `cascade_gate`, `tool_gate`, `methodology`, `codebase_index`, `edit_blocks`, `fim_local`, `local_agent`, `mcp_client`, `sandbox_bridge`) plus one GPUI-bound orchestrator (`agent_mei_panel.rs`, 5,335 LOC) that wires them into the editor. The spine is the **cascade**: `submit_prompt` → L0 cache → L1 deterministic → L2 retrieval → L3 on-device model → L4 ACP, each tier gated by `authorize_tier` and closing through a common metering+sealing path. Real crypto/energy/cascade work is delegated to `open-standards` git deps, not faked locally.
|
||
|
||
**What's real (CI-tested).** The enforcement-and-accounting machinery: the cascade dispatch, both JCP gates (cascade-tier + agent-tool), deny-capable hooks (PreTool/PreMerge), the hash-chained sealed ledger (with tamper detection), git-worktree sessions (with gated merge), the control protocol + MCP bridge + fleet relay, and the conformance harness. ~270 real assertions; the conformance test guards against a vacuous pass.
|
||
|
||
**What's aspirational / unverified.** Concentrated in one place: **anything requiring a loaded local model** (L2 embedding separation, L3 edit quality, codebase-index retrieval, FIM infill) is proven only by `#[ignore]`'d tests + manual runs, never in CI. The "live-verified" phrasing rests on manual drives.
|
||
|
||
**The divergence.** 245 files, +13.5k / −187.6k. We deleted the upstream `agent` (~75k LOC) and `agent_ui` (~74k) crates wholesale (replaced by `agent_mei_panel`), plus `sidebar`, `skill_creator`, `auto_update*`, `acp_tools`, `eval_*`. We neutralized telemetry/crash/sign-in/auto-update/registry-auto-fetch and added an egress backstop — all verified against `PRIVACY_HARDENING.md`. The fork **compiles clean**; no load-bearing danglers.
|
||
|
||
**The top gaps** (see [FINDINGS.md](FINDINGS.md)): emitted `CodingOp`s are author-anonymous (`[0u8;32]`) despite a real identity existing; L0 keys on intent only (blind to buffer state); L4 closes seal only if the ACP thread emits a diff event (can be silently lost); the release "ship door" is structurally un-passable today; a handful of load-bearing `let _ =` discards; `JOULE_CODE.md` is stale (says path deps, they're git deps); 8 gutting warnings + a broken `visual-tests` feature.
|