opencode source

opencode.session_messages

pass

Per-session message stream with the `seq` order OpenCode assigns internally, alongside the full payload as JSON. Use this when you need exact session-relative ordering rather than `time_created`.

SELECT id, session_id, type, seq, time_created

no filters captured 2026-09-01 10:13:55Zmedian 6480 ms
Verdict: TRUE

All variants returned rows on ≥2 of 3 trials, 0 errors.

rendering…

Summary

VariantTrialsMinMedianMaxRow countsErrors
minimal36466 ms6480 ms6481 ms[1, 1, 1]0
by-session36477 ms6478 ms6506 ms[1, 1, 1]0
filter-type36468 ms6485 ms6487 ms[25, 25, 25]0
aggregate36491 ms6497 ms6501 ms[1, 1, 1]0

Latency per trial

minimalmedian 6480ms
t16480mst26481mst36466ms
scale: 0–6481 ms
by-sessionmedian 6478ms
t16506mst26477mst36478ms
scale: 0–6506 ms
filter-typemedian 6485ms
t16485mst26487mst36468ms
scale: 0–6487 ms
aggregatemedian 6497ms
t16501mst26491mst36497ms
scale: 0–6501 ms

Probe variants — every command + output

minimal3 trials
min 6466ms · median 6480ms · max 6481ms · rows 1,1,1

earliest stream entry

Command
SELECT id, session_id, type, seq FROM opencode.session_messages WHERE session_id = 'ses_0e12f16e3ffeinbgIlSOaMSnFc' ORDER BY seq ASC LIMIT 1
Trials + output
trial 1·6480ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_f1ed12163001puZWnrt7zF2UA4",
  "session_id": "ses_0e12f16e3ffeinbgIlSOaMSnFc",
  "type": "model-switched",
  "seq": "8"
}
columns (4)
idsession_idtypeseq
trial 2·6481ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_f1ed12163001puZWnrt7zF2UA4",
  "session_id": "ses_0e12f16e3ffeinbgIlSOaMSnFc",
  "type": "model-switched",
  "seq": "8"
}
columns (4)
idsession_idtypeseq
trial 3·6466ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_f1ed12163001puZWnrt7zF2UA4",
  "session_id": "ses_0e12f16e3ffeinbgIlSOaMSnFc",
  "type": "model-switched",
  "seq": "8"
}
columns (4)
idsession_idtypeseq
by-session3 trials
min 6477ms · median 6478ms · max 6506ms · rows 1,1,1

full stream order for one session

Command
SELECT id, session_id, type, seq, time_created FROM opencode.session_messages WHERE session_id = 'ses_0ea0e3dc8ffectnX7hbvw2dhgG' ORDER BY seq ASC LIMIT 25
Trials + output
trial 1·6506ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_f15f1c24600154IWf8cYYRl3yQ",
  "session_id": "ses_0ea0e3dc8ffectnX7hbvw2dhgG",
  "type": "model-switched",
  "seq": "1",
  "time_created": "1782779593285"
}
columns (5)
idsession_idtypeseqtime_created
trial 2·6477ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_f15f1c24600154IWf8cYYRl3yQ",
  "session_id": "ses_0ea0e3dc8ffectnX7hbvw2dhgG",
  "type": "model-switched",
  "seq": "1",
  "time_created": "1782779593285"
}
columns (5)
idsession_idtypeseqtime_created
trial 3·6478ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_f15f1c24600154IWf8cYYRl3yQ",
  "session_id": "ses_0ea0e3dc8ffectnX7hbvw2dhgG",
  "type": "model-switched",
  "seq": "1",
  "time_created": "1782779593285"
}
columns (5)
idsession_idtypeseqtime_created
filter-type3 trials
min 6468ms · median 6485ms · max 6487ms · rows 25,25,25

model-switched entries across sessions

Command
SELECT session_id, type, seq FROM opencode.session_messages WHERE type = 'model-switched' ORDER BY time_created DESC LIMIT 25
Trials + output
trial 1·6485ms·rows 25isError=false
First row (click to expand JSON)
{
  "session_id": "ses_0e12f16e3ffeinbgIlSOaMSnFc",
  "type": "model-switched",
  "seq": "8"
}
columns (3)
session_idtypeseq
trial 2·6487ms·rows 25isError=false
First row (click to expand JSON)
{
  "session_id": "ses_0e12f16e3ffeinbgIlSOaMSnFc",
  "type": "model-switched",
  "seq": "8"
}
columns (3)
session_idtypeseq
trial 3·6468ms·rows 25isError=false
First row (click to expand JSON)
{
  "session_id": "ses_0e12f16e3ffeinbgIlSOaMSnFc",
  "type": "model-switched",
  "seq": "8"
}
columns (3)
session_idtypeseq
aggregate3 trials
min 6491ms · median 6497ms · max 6501ms · rows 1,1,1

stream entry types

Command
SELECT type, COUNT(*) AS n FROM opencode.session_messages GROUP BY type ORDER BY n DESC
Trials + output
trial 1·6501ms·rows 1isError=false
First row (click to expand JSON)
{
  "type": "model-switched",
  "n": "34"
}
columns (2)
typen
trial 2·6491ms·rows 1isError=false
First row (click to expand JSON)
{
  "type": "model-switched",
  "n": "34"
}
columns (2)
typen
trial 3·6497ms·rows 1isError=false
First row (click to expand JSON)
{
  "type": "model-switched",
  "n": "34"
}
columns (2)
typen

All returned rowsacross all non-errored trials · filterable · paginated

112 rows stored · 112 returned · page 1/5
00msg_f1ed12163001puZWnrt7zF2UA4ses_0e12f16e3ffeinbgIlSOaMSnFcmodel-switched8
11msg_f1ed12163001puZWnrt7zF2UA4ses_0e12f16e3ffeinbgIlSOaMSnFcmodel-switched8
22msg_f1ed12163001puZWnrt7zF2UA4ses_0e12f16e3ffeinbgIlSOaMSnFcmodel-switched8
33msg_f1ed12163001puZWnrt7zF2UA4ses_0e12f16e3ffeinbgIlSOaMSnFcmodel-switched8
04msg_f15f1c24600154IWf8cYYRl3yQses_0ea0e3dc8ffectnX7hbvw2dhgGmodel-switched11782779593285
15msg_f15f1c24600154IWf8cYYRl3yQses_0ea0e3dc8ffectnX7hbvw2dhgGmodel-switched11782779593285
26msg_f15f1c24600154IWf8cYYRl3yQses_0ea0e3dc8ffectnX7hbvw2dhgGmodel-switched11782779593285
37msg_f15f1c24600154IWf8cYYRl3yQses_0ea0e3dc8ffectnX7hbvw2dhgGmodel-switched11782779593285
08ses_0e12f16e3ffeinbgIlSOaMSnFcmodel-switched8
09ses_0e766b809ffeshwyTrMZEDcVs1model-switched1
010ses_0e76b33bfffecf7eMhdilfI0rtmodel-switched1
011ses_0ea0e3dc8ffectnX7hbvw2dhgGmodel-switched1
012ses_0ea0e52a8ffess7OW0OmIbMYoZmodel-switched1
013ses_0ea12844fffeOU16eHs2RgAJGgmodel-switched1
014ses_0ea12985cffeVgRTRcIfIos62Lmodel-switched1
015ses_0ea12b575ffeU3coZGYoShSlt9model-switched1
016ses_0ea12cdd7ffe3vWShdUYyl8rOkmodel-switched1
017ses_0ea12e8acffemVhd6xlfMQ2B1ymodel-switched1
018ses_0ea130477ffeFvppjpvaHLNiXrmodel-switched1
019ses_0ea131ee5ffeYpD3h0MJcujlMZmodel-switched1
020ses_0ea13398fffeiziWpO5cMAh388model-switched1
021ses_0ea1356b4ffejOg6ZH6omwA46smodel-switched1
022ses_0ea137146ffe39rFmpWDmVQTzSmodel-switched1
023ses_0ea138d62ffeN1nRwkwzt8rSjJmodel-switched1
024ses_0ea13a890ffeyuzrYqvsuWwLmimodel-switched1

Column profile

4 columns actually returned by coral. Catalog claims no required filters. Click a column to drill in.

#ColumnInferred typeNon-nullNullsSample value(s)
1idstring88"msg_f1ed12163001puZWnrt7zF2UA4""msg_f15f1c24600154IWf8cYYRl3yQ"
2session_idstring124"ses_0e12f16e3ffeinbgIlSOaMSnFc""ses_0ea0e3dc8ffectnX7hbvw2dhgG"
3typestring160"model-switched"
4seqstring124"8""1"

Trial comparison

Variant / comboTrial #LatencyRowsStatusFirst key returned
minimalt16480ms1okid, session_id, type
minimalt26481ms1okid, session_id, type
minimalt36466ms1okid, session_id, type
by-sessiont16506ms1okid, session_id, type
by-sessiont26477ms1okid, session_id, type
by-sessiont36478ms1okid, session_id, type
filter-typet16485ms25oksession_id, type, seq
filter-typet26487ms25oksession_id, type, seq
filter-typet36468ms25oksession_id, type, seq
aggregatet16501ms1oktype, n
aggregatet26491ms1oktype, n
aggregatet36497ms1oktype, n

Catalog vs. response schemaclaimed guide vs columns coral actually returned

Catalog guide (verbatim)
SELECT id, session_id, type, seq, time_created
Columns coral returned (4)
idsession_idtypeseq
Probed by bld-dabqr1nqj5pc73dgn3h0-676t6 at 2026-09-01T10:13:55Z
JSON record: reports/opencode/tables/session_messages.json
first_run_at: 2026-09-01T08:53:51Z
last_retried_at: 2026-09-01T10:13:55Z
retry_count: 3
View version history →