Repository navigation
1.0.15: session resume (no args) returns the caller's own session over stdio (regression from 1.0.14) #152
Description
Activity
Still reproduces on the published 1.0.16 (npm latest / GitHub v1.0.16,
contextstream-mcp 1.0.16, Built 2026-10-05), linux-x86_64, stdio, same account and folder. Checked 2026-10-05 ~10:32–10:35pm PT.No-arg resume, same steps as above:
- Run
A223246:resumereturnedsession e1858b61withRecent requests: - resume self-exclusion probe A223246(its own request). - Run
B223308:resumereturnedsession 9c34970a,Unresolved self-exclusion probe request B223308(its own snapshot).
With the id 1.0.16's
initnow prints (Session id: <id>. To resume the previous session, call session(action="resume", session_id="<id>")):- Run
C223339:initprintedfa8ead90-….session(action="resume", session_id="fa8ead90-…")still returned the caller's own session,session 43132d3b,Recent requests: - resume withid probe C223339. No-arg resume in the same process returned the same thing. - So over stdio the id
initprints doesn't match the id the run's transcript/snapshot is stored under (43132d3b…), and passing it doesn't exclude the current session. The documented workaround doesn't help stdio callers. - I didn't see the "no id was passed" note in the no-arg
resumetext over stdio, and there was nostructuredContenton theresumeresults.
1.0.14 control right after run C (published 1.0.14, same flow, no args): returned
session 43132d3b/resume withid probe C223339, which is the previous session, as expected.So the stdio regression from 1.0.15 is still there in 1.0.16. Main's 3241462 (resume hint in the structured result, staged for 1.0.17 in #154) looks aimed at the hosted Claude Code path. Please check this stdio flow against the 1.0.17 build before it publishes.
- Run
Still reproduces on the published 1.0.17 (npm latest / GitHub v1.0.17, tag commit
3fe78356,contextstream-mcp 1.0.17, Built 2026-10-06), linux-x86_64, stdio, installed withscripts/mcp.sh(checksum matches). Checked 2026-10-06 ~9:53–9:54am PT.No-arg resume (init, context, capture, resume_list, resume):
- Run
A095316:resumereturnedsession 72603319withRecent requests: - resume self-exclusion probe A095316(its own request). - Run
B095339(new process, ~20s later):resumereturnedsession 1ae14fc4with- resume self-exclusion probe B095339(its own again, not A's).
With the id
initprints:- Run
C095402:initprintedSession id: d445e2c2-….session(action="resume", session_id="d445e2c2-…")returnedsession 8667eca5/resume withid probe C095402(the caller's own session). No-arg resume in the same process returned the same.
There's still no
structuredContenton any stdioresumeresult, andresume_listreturns "No resume cards yet (project)." So the 1.0.17 change that moves the resume hint into the structured result doesn't change what stdio callers get back. Same results as on 1.0.15 and 1.0.16.- Run
Still reproduces over stdio on the published 1.0.18 (npm latest / GitHub v1.0.18, tag commit
3c048360,contextstream-mcp 1.0.18, Built 2026-10-07), linux-x86_64, installed withscripts/mcp.sh(checksum matches). The hosted gateway (also reporting 1.0.18) handles the same flow correctly. Checked 2026-10-07 ~10:04–10:08am PT, same account, workspaceTesting, one new project folder.stdio, no-arg resume (init, context, capture, resume_list, resume):
- Run
A100441:resumereturnedsession fca245acwithRecent requests: - resume self-exclusion probe A100441(its own request). - Run
B100504(new process, ~20s later):resumereturnedsession 6f7f9713(rebuilt from snapshot),Resume self-exclusion probe B100504(its own again, not A's).
stdio, with the id
initprints:- Run
C100526:initprintedSession id: bd830f25-….session(action="resume", session_id="bd830f25-…")returnedsession f1741ee5/resume withid probe C100526(the caller's own session). No-arg resume in the same process returned the same. - Still no
structuredContenton any stdioresumeresult.
Hosted HTTP (
https://mcp.contextstream.io/mcp?default_context_mode=fast, the headerssetup --editors claudewrites to.mcp.json), same steps:- Run
H1100623:initprinted1abed299-….resumewith that id and with no args both returnedsession f1741ee5/resume withid probe C100526, the previous session.structuredContentwas present. - Run
H2100701:initprinted437ec7c5-….resumewith that id and with no args both returnedsession 1abed299/hosted resume probe H1100623, the previous session again.
So on hosted the transcript is stored under the id
initprints (H2 got back1abed299, which was H1's init id) and self-exclusion works. Over stdio the stored id differs from whatinitprints (bd830f25vsf1741ee5), so the guidance 1.0.18 adds to the tool text and rules ("pass the id init returned") doesn't help stdio callers.resume_listreturns "No resume cards yet (project)." on both transports.- Run
Summary
On the published
@contextstream/mcp-server@1.0.15(npm latest / GitHub v1.0.15),session(action="resume")with noresume_id/session_idreturns the caller's own current session when run over local stdio, after the session has done real work. The same flow on published 1.0.14 correctly returns the previous session. The 1.0.15 changelog says resume now leaves out the sessioninitjust opened, so this looks like a regression for stdio clients.Environment
contextstream-mcp 1.0.15installed from npm (npm i @contextstream/mcp-server@1.0.15), linux-x86_64, stdio transport (binary launched directly, MCP JSON-RPC over stdin/stdout)CONTEXTSTREAM_API_KEYSteps to reproduce
In one fresh stdio process, with a unique marker
TAGper run:initialize+notifications/initializedinitwithfolder_path=<project dir>contextwithuser_message="resume self-exclusion probe <TAG>"sessionwithaction="capture",event_type="note",title="resume probe <TAG>"sessionwithaction="resume_list"sessionwithaction="resume"(noresume_id, nosession_id)Expected
Step 6 returns the previous session (the last run), not the one making the call.
Actual (1.0.15)
Step 6 returns the current session. Two runs on 2026-10-05 ~2:58pm PT:
A145823:Resume (no card yet; rebuilt from transcript): session ae5629b4 ...withRecent requests: - resume self-exclusion probe A145823(its own request)B145845:... session d697d301 ...withRecent requests: - resume self-exclusion probe B145845(its own request)resume_listreportsNo resume cards yet (workspace).in every run.1.0.14 comparison (same flow, interleaved runs)
session d697d301/probe B145845, i.e. the previous session, as expected.Notes
initin 1.0.15 doesn't print a session id, so a stdio caller has no id to pass assession_idto work around it.Found during a production smoke of the published 1.0.15 package.