···2323 startedAt: string;
2424 endedAt: string;
2525 matchCount: number;
2626- matchSeq: number;
2727- matchRole: "user" | "assistant";
2828- matchTimestamp: string;
2626+ matchSource: "message" | "session";
2727+ matchSeq: number | null;
2828+ matchRole: "user" | "assistant" | "session";
2929+ matchTimestamp: string | null;
2930 score: number;
3031 snippet: string;
3132}
3233```
3434+3535+`matchSource = "session"` means the hit came from session-level fields such as title, derived summary, compact handoff, or reasoning summary rather than a concrete message. In that case `matchSeq` is `null`; use `read-page` first instead of fabricating a `read-range --seq` anchor.
33363437## read-range
3538