v0.7.0 — TypeScript on Bun, single core across four runtimes
open-second-brain v0.7.0
Single TypeScript source of truth on the Bun runtime. Hermes, Claude Code, Codex, and OpenClaw all consume the same src/core/* modules; the duplicate JavaScript copy under openclaw/*.js and the parallel Python implementation under src/open_second_brain/*.py are gone.
Affected runtimes / agents
| Runtime | Plugin format | Status in v0.7.0 |
|---|---|---|
| Hermes | Python plugin (plugins/hermes/) + MCP server |
Plugin shim slimmed; MCP entry unchanged (command: o2b, args: [mcp, --vault, …]). Identity reminder via pre_llm_call. |
| Claude Code | .claude-plugin/ + .mcp.json |
Marketplace install path; bundled agent-event-log skill ships in cache. |
| Codex | .codex-plugin/ (now also plugins/codex/) |
Codex 0.129+ rejects self-marketplace path: "." — plugin metadata moved to plugins/codex/ subdir. |
| OpenClaw | Native TS plugin (openclaw/index.js) |
Bundle is now bun build --target=node of src/openclaw/index.ts; imports the same core. Per-turn identity via before_prompt_build hook. |
Highlights
- Single core: no more parallel JS / Python implementations of the vault / event-log / config / doctor logic.
- Security fix (
event_log_append):dateparameter validated againstYYYY.MM.DD; rejects..segments and impossible calendar dates, blocking path traversal outside<vault>/Daily/. - Identity hallucination guard: model-supplied runtime names (
codex,codex-cli,codex-exec,claude-code,hermes,openclaw) are filtered; the server falls back to the persistedagent_nameinstead of writing wrong-identity entries. - JSON-RPC compliance:
idvalidated asstring | number | null. - Bundled
agent-event-logskill: stronger trigger description with a language-policy that follows the user's session language without naming any concrete language. - CI: matrix-tested against the declared minimum Bun (1.1.0) and
latest;verifyjob gates release publication. - Tests: 176
bun:testcases (incl. 12-worker concurrent-append lock test) + 13 Python shim cases +tsc --noEmit.
Breaking changes
o2bCLI requires Bun >=1.1.0. Wrapper script aborts with an install hint if Bun is missing or older.- Python
open_second_brainpackage and its pip entry points (o2b,vault-log,o2b-mcp) are removed.
Migration
# 1. Install Bun
curl -fsSL https://bun.sh/install | bash
# 2. Update plugin checkout (Hermes / Claude / Codex / OpenClaw — any)
# Then refresh CLI symlinks:
o2b install-cli
# 3. Verify
o2b doctor --vault <path> --repo <repo>Hermes / Claude Code / Codex / OpenClaw runtime configurations do not change — same MCP entry, same plugin manifest references.
See CHANGELOG for the full breakdown.