Sessions and deltas
How a session id lets later Fuse calls in the same task skip files the agent already holds, so multi-turn refinement does not re-pay tokens.
A task is rarely one call. An agent surveys, plans context for one area, then plans
context for a related one, and the second call often overlaps the first. Session-delta
is how Fuse avoids resending what the agent already holds: pass the same sessionId across
calls and Fuse omits files it sent earlier in that session, so multi-turn refinement does
not re-pay tokens for unchanged context.
How It Works
A session is an opaque string you choose and reuse across calls in one task. Fuse tracks,
per session, which files it has emitted and a hash of the content it sent. On a later call
with the same sessionId:
- A file sent earlier with the same content is omitted.
- A file whose content changed since it was sent is resent (the new content matters).
- A file not yet seen in the session is sent normally.
Tracking is by content hash, not just path, so a file the agent already has is skipped while a file that changed is delivered fresh. The omitted files are not silently dropped: the response carries a note listing them, with a reminder to re-request any file by path if the agent no longer holds it.
Before and After
The first call on a session returns the scoped set in full:
fuse_context(path="C:/Projects/MyApp/src", seeds=["OrderService"], sessionId="task-42")
# returns OrderService.cs, Order.cs, IOrderRepository.cs, PricingPolicy.csA later call in the same task, on a related seed that shares some of those files, returns only the new ones and notes what it skipped:
fuse_context(path="C:/Projects/MyApp/src", seeds=["PricingPolicy"], sessionId="task-42")
# returns DiscountRule.cs, TaxPolicy.cs
# note: omitted 1 file already sent this session: PricingPolicy.csThe second call pays only for the files the agent does not already have.
Honest Note
Session state is per-session and held in memory in the running fuse mcp serve process, which
is the session boundary. It is never persisted, so it is lost when the server process
exits, and resetting a session makes the next call resend everything. Session-delta is a
property of the MCP server across a live agent conversation; a one-off CLI run does not
carry session state between invocations.
Try a Delta
Call fuse_context twice with sessionId="task-42" and overlapping seeds. Confirm that
the second response lists unchanged repeated files as omitted. Edit one omitted file and
repeat the call; Fuse should resend that path because its content hash changed.