Repository navigation
v0.3.0 — harness profiles and the task trace
[0.3.0] — 2026-10-11
Two headlines. Harness profiles: Claude Code, Codex and Pi are each
one declarative HarnessProfile, with conformance tests over every row
and a shared TypeScript shim runtime. A new harness is now a new
profile, not a fork. Task trace: one durable kind: task note
follows a unit of work across in-session subagents, /wrap, and devloop
runs. The trace is verified end to end by the task-360 evaluation suite
on real Claude and Pi sessions.
Upgrade notes
- Run
weave doctor --migrateonce. It folds stored task asks to
github:owner/repo#Nrefs, rejoins split task notes, and upgrades
pre-#260 devloop rounds. - The Codex skill bundle moved from
skills/tocodex/skills/(PR
#276). Re-point hand-made links in~/.codex/skills/to
<repo>/codex/skills/thinkweave-*. - Pi needs the
pi-mcp-adapterextension for MCP
(pi install npm:pi-mcp-adapter).weave doctor --mcp --harness pi
checks for it.
Added
HarnessProfilecontract (#191, PR #201): Claude Code, Codex, Pi
and OpenCode are profile data. A parametrised conformance suite and an
AST guard against per-harness forks enforce it.docs/HARNESSES.md
generates its capability matrix from the profiles, and install output
names every degradation.- shim-core (#194, PR #201): a shared TypeScript translator runtime
for harnesses that expose lifecycle events but not Claude Code hooks. - Pi at E3 (captured) (#114, PRs #207, #211): the Pi shim captures
prompts, tool calls and stops, and injects SessionStart context.
weave import piimports Pi transcripts. MCP routes through
pi-mcp-adapter, and skills link into~/.pi/agent/skills. - Task trace (#184 stack, PRs #222, #227, #229, #240, #260, #261,
#263, #277, #301): thekind: tasknote contract; live subagent
boundary capture;weave task open|close|render; a task note as a
ledger of rounds; a task pass in the/wrapfinalize tail;
devloop rounds that land on the epic's task;child_ofedges; and
an Open Tasks section in SessionStart. The outcome-judge closes tasks
whose tracker issue closed, and files PR review comments as
feedback_fornotes. - task-360 evaluation suite (PRs #261, #264, #267, #272, #301):
evals/task360/drives named scenarios through Claude Code, Codex and
Pi in a throwaway vault. An oracle scores each scenario from the
index. /explain(#298, PR #300): composes a session or diff explainer
into one vault note.weave explain locate|checkfinds and validates
these notes.- Session notes record their harness and model (#285, PR #301).
Changed
- Leaner Claude Code context (PR #276): Claude Code no longer lists
each skill twice, and SessionStart drops placeholder sections.
weave_project_snapshotstill serves the full payload. - Index-backed retrieval (PR #206): timelines, prompts and landings
query the index instead of scanning the vault.weave timelinedrops
from over 60 s to about 0.04 s. - Plugin-route launchers bootstrap their dependencies once (#164, PR
#201).
Fixed
/wrapfails loudly (PR #278): a droppedweave_create, a no-op
weave_extract, or an empty finalize now reports an error instead of
exit 0.- Codex capture fidelity (PRs #208, #212): PostToolUse events land,
one session maps to one note, and guardian sidecars are filtered out. - Wrap and judge resolve session notes by exact id and the harness
session id (PRs #209, #214, #233). - shim-core builds and its test suite runs again:
npm testpasses a
file glob on Node 24, and the subagent hooks have timeout budgets
(PR #213).