Repository navigation
Agent preset switch on the new-session screen is silently discarded (chip falls back to Standard mode) #10517
neuviletteflux
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
On the new-session screen, choosing a non-default Agent preset ("Creator mode") is silently discarded: no RPC is sent, no toast is shown, and the chip falls back to the session's recorded preset ("Standard mode"). Reproduced on the
desktopprofile of0.2.1-rc.2; aweb-profile deployment of the same npm package switches correctly.Environment
@deepseek-ai/dsh0.2.1-rc.2(desktop app and CLI are the same npm package)standard/ptc/minimal/cordis), coding tools enableddesktopprofile: ~235 sessions.webprofile: ~10 sessions.Steps
Expected
Chip shows "Creator mode"; the Host records
agent-preset/selected: cordis; the first turn is composed oncordis.Actual
agent-preset/selectedevent;agentPresets.*on the Host showslist/retaincalls but noselect.Root cause (as observed)
AgentPresetSeatController.apply()in@deepseek-ai/dsh-client-ui-agent-presetgates the Host call on the client's session-list row:For a new session on the
desktopprofile this row is published withblank: false, while every other source says blank:| Source |
blank| | --- | --- | | clientsessions.listrow (what the seat reads) | false | | clientmanager.summaries[sid].blank| true | |sessionListMetadata.blankprojection | true | | HostsessionController.list()| true | | HostturnBoundary|lastTurn: 0|So
!session.blankis taken, the staged pick is cleared silently, and the chip re-renders frompresetOf(session)=standard.Calling
agentPresets.select(agent, 'cordis')directly on the same blank session succeeds and the chip updates, so the Host and the display path are fine.Why
desktopand notweb(hypothesis)New sessions have
seq = 3(three seed events). The Host list summary falls back toblank: metadata?.blank ?? session.seq === 0; if a list snapshot is produced before that session's projections are ready, the row goes out asblank: false. The client merge is monotonic (blank: existing.blank && mutation.summary.blank— "Blank only lowers"), so a latertruenever repairs it. A large session list on desktop (235 vs 10) widens that window; on the affected client,sessions.refresh()does not repair the row either.Suggested fixes
turnBoundaryprojection, or callagentPresets/selectand surface the existingagent-preset/lockedrefusal as a toast.sessions.listrows consistent withmanager.summaries/sessionListMetadata, and give the monotonic merge a repair path.!session.blankbranch is currently silent; it should report a refusal.Notes
webprofile has a smaller plugin set) if that helps.All reactions