Commit Graph

10 Commits

Author SHA1 Message Date
wandering1 acacbb2d91 Roles: refresh the live selection when re-pointing a reused Session
Deploying dee76b1 proved a raw durable append insufficient: the 07:54 dispatch recorded the wandering selection, yet the request assembled half a second later still carried the deepseek header, because prompt assembly reads the Session Controller's in-memory selection and the internal Agent controller caches one per Agent. Call its own selectForNextRequest primitive — append plus cache refresh, still without saving the deployment default — and fall back to the public selectModel if the surface moves. Fixture gains the Controller; two cases pin fast-path and fallback.
2026-11-02 08:02:57 +08:00
wandering1 dee76b1b4a Roles: re-point reused Sessions when a role model drifts
A role model only seeded brand-new Sessions, so Workers created before a settings change kept their old route forever — the operator's complaint that the default model 'did not take effect'. On dispatch, ensure() now compares the durable selection or header of an existing Session against the configured role model and appends a model/selection event when they drift, leaving the deployment default alone. Seven unit cases cover drift, idempotence, effort, and precedence.
2026-11-02 04:54:32 +08:00
wandering1 d527ad8045 Sessions: account a restored Session to its Workspace
Ensure() only registered a Workspace when the Session was new, so Sessions restored from disk never entered the Workspace record and stayed invisible in the panel. Always create (idempotent) and attach an unaccounted Session; warn on attach failure. Tests gain a shared Workspace fixture.
2026-11-02 04:28:26 +08:00
wandering1 3bee231da6 Execution: reclaim the directories of Ended Tickets after a retention 2026-11-02 01:46:33 +08:00
wandering1 b348d69beb Overview: report liveness and a Source whose poll loop stopped 2026-11-02 01:22:34 +08:00
wandering1 a662188a57 Panel: switch the deployment default model from the header
The panel could show the DSH default model but not change it, so an operator
who wanted a different Executor or Assessor model had to edit the profile by
hand. PUT default-model routes a switch through the Session Controller, which
is the same path the DSH picker uses: it retargets the master Session and lets
agent-default-model persist the choice into the profile through configEditor.

switchDefaultModel refuses a provider the catalog cannot route and a model its
group does not offer, and reports unchanged rather than writing the same value
again. selectModel saves the default in the background, so the switch polls the
catalog until the saved selection appears instead of assuming the write landed;
effort is compared against the selection the Controller resolved, because it
fills in a default effort the caller never sent.

The refusal carries its reason as a code, which ApiError now keeps so the panel
can word it in the operator's language instead of showing host English.
2026-11-02 00:12:23 +08:00
wandering1 589b5a6533 Sources: accept login:password Basic credential for Gitea (API + git store) 2026-11-01 20:46:07 +08:00
wandering1 e8b91abb2c Infra: write gitea git-credentials line with the deployment's own scheme 2026-11-01 19:46:29 +08:00
dev 4379973775 Sources: add Gitea; fix Windows shims for shell tool, repo paths and stateDir 2026-11-01 19:32:40 +08:00
DeepSeek Harness Team 6337fc823c feat: add the dsh-superagent research prototype 2026-10-31 20:05:39 +08:00