Dashboard › opencode › Distillation
318367e1-6872-4ae9-ae35-325dfe53bf0e["lore_tm_v1_wkMe5vXCnZLqX1TOG8s2oy3nNLAheJKw0JHpnHXvWgo","lore_tm_v1_NNNJANcH1ODQM1pcRMMTNlzkY36EGEndRlTOwFvJygU"]
Date: Sep 8, 2026
snapshot() across Core tests, including /home/byk/Code/opencode-v2-pilot/packages/core/test/wellknown.test.ts, tool-websearch.test.ts, tool-subagent.test.ts, tool-registry.test.ts, codemode.test.ts, codemode/instructions.test.ts, and mcp.test.ts./home/byk/Code/opencode-v2-pilot/packages/core/test/tool-registry.test.ts:784-808 verifies executor defects remain defects: a defect tool whose execute returns Effect.die("unexpected executor defect") is executed through service.snapshot(), caught with Effect.catchDefect(Effect.succeed), and expected to yield exactly "unexpected executor defect"./home/byk/Code/opencode-v2-pilot/packages/core/test/tool-registry.test.ts:812-819 verifies execution is exposed only through a snapshot: Tool.Service has no direct definitions, execute, or settle properties, while service.snapshot is a function./home/byk/Code/opencode-v2-pilot/packages/core/test/tool-registry.test.ts:822-848 verifies complete call identity reaches tool execution. The expected Tool.Context contains sessionID, the spread identity, id: Tool.CallID.make("call-context"), and a progress function./home/byk/Code/opencode-v2-pilot/packages/core/test/tool-registry.test.ts:850-879 parameterizes final-hook content normalization over 4 cases in order: 1. string content "hooked" → text "hooked"; 2. empty string "" → text ""; 3. missing content undefined → text '{"text":"hooked"}'; 4. empty content array [] → text '{"text":"hooked"}'. The tool / execute.after hook replaces completed results with output: { text: "hooked" }, the parameterized content, and metadata: { source: "hook" }; snapshot execution must normalize content to one { type: "text", text: input.text } item while preserving output and metadata./home/byk/Code/opencode-v2-pilot/packages/core/test/tool-registry.test.ts:881-904 begins a test named "normalizes image tool output once and drops unresizable images" using a snapshot tool. Its output includes PNG data-URI files named frame.png, too-large.png, and corrupt.png, followed by a text content item.