Skip to content

Releases: s-ference/sference-switch

Sference Switch v0.1.8 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 10:52
7517bb3

Sference Switch v0.1.8

The menubar app now learns about a new release the moment you open its
Overview page, instead of up to 6 hours later.

The gateway polls the release manifest on a 6-hour cadence and the app
only rendered that cached answer, so a freshly published release stayed
invisible until the next poll. Opening the Overview now asks the gateway
to re-check immediately (throttled to one real fetch a minute); the
background cadence is unchanged. A failed or offline check still keeps
the last known state and never blocks the page.

Sference Switch v0.1.7 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Sep 07:31
ecba8cc

Sference Switch v0.1.7

Newly released 1M-context Sference models are now picked up
automatically at their real window — no release-time table edit needed.

Claude Code believed models like GLM-5.3 and DeepSeek-V4.1-Flash held
200k tokens, so they compacted at ~180k instead of using their full 1M.
The [1m] picker twin (the id that tells Claude Code a model really holds
1M) gated on a vendored model list that had to be edited on every model
release.

The platform's /v1/models already reports each model's context window;
the switch now reads it and drives the [1m] twin from live data. A 1M
model is covered the moment the catalog advertises it — no binary deploy,
no table edit. The vendored list stays only as an offline fallback for
installs that cannot reach the catalog.

Also in this release: the quick start now opens the app and signs in /
turns the switch on / picks a model, with the terminal commands moved to
a command-line reference appendix (scripting and headless only).

Sference Switch v0.1.6 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Sep 15:05
7200797

Sference Switch v0.1.6

Fixes the v0.1.4/v0.1.5 regression that made most 1M-context models
unusable from Claude Code's /model picker, and removes the stale-daemon
trap that caused it.

1M models route again. Claude Code treats [1m] as a client-side context
selection and strips it before building the request, so a picker entry
of "…-kimi-k3[1m]" arrives at the gateway as the bare id. When a model
also had a hand-written alias in gateway.yaml, that bare id had been
removed from the routing set, and the pick 400'd — on every release
since the [1m] entries shipped. The bare id routes again; the picker
still lists one entry per model.

Upgrades no longer leave the TLS door a build behind. launchd keeps the
root daemon on the inode it booted from, so after every release the
daemon kept serving the previous build's picker injection until a
reboot or a manual kickstart. restart and upgrade --restart now
detect a stale daemon — unprivileged, by comparing its start time with
the binary's mtime — and adopt it with a single password prompt, silent
when there is nothing to adopt. A declined prompt prints the manual fix
and never fails the restart.

Also: the Overview page now shows the running router build and the
on-disk CLI build, with the difference called out when they diverge.

Upgrade from v0.1.5 is strongly recommended.

Sference Switch v0.1.5 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Sep 12:03
333c62e

Sference Switch v0.1.5

Fixes a v0.1.4 regression that made most 1M-context models unusable from
Claude Code's /model picker. Upgrade from v0.1.4 is strongly recommended.

Selecting an entry like "[Sference] Kimi K3 (1M context)" failed
immediately with unknown gateway model "claude-sference-moonshotai-kimi-k3".

When a model's slug already has a hand-written alias in gateway.yaml,
duplicate suppression drops the derived bare id and publishes only the
[1m] id. Request resolution stripped the [1m] suffix before looking the
id up, so it searched for a key the alias set does not contain. Models
without a configured alias kept their derived bare id and worked, which
is why GLM-5.3 and GLM-5.3-Flash were fine while Kimi-K3, GLM-5.2 and
DeepSeek-V4-Flash — the models the shipped gateway.yaml names — were not.

Resolution now tries the exact requested id first and falls back to the
stripped form, so every id the picker publishes routes, and a [1m]
suffix typed onto an undecorated alias still resolves.

Sference Switch v0.1.4 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 21:13
6fc80d8

Sference Switch v0.1.4

1M-context Sference models now serve their real context window in Claude
Code instead of compacting at ~180k.

Claude Code resolves its compaction window as min(believed_model_window,
CLAUDE_CODE_AUTO_COMPACT_WINDOW). An id it does not recognize is believed
to hold 200k tokens, and CLAUDE_CODE_MAX_CONTEXT_TOKENS — the documented
override — is ignored for ids beginning with "claude-", which every
derived alias uses. No user setting could raise the window.

Claude Code treats an id containing [1m] as a 1M-token model, so models
at or above 1M context are now published under a [1m] id: GLM-5.3,
GLM-5.3-Flash, GLM-5.2, Kimi-K3 and DeepSeek-V4-Flash. Models below 1M
keep their bare id and are never decorated. Each model lists once; the
bare id of a 1M model stays routable but is no longer advertised, so
existing sessions and configured aliases are unaffected.

Pair a [1m] model with CLAUDE_CODE_AUTO_COMPACT_WINDOW=950000 for a 950k
working window.

Sference Switch v0.1.3 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Aug 05:16
20260d8

Sference Switch v0.1.3

New Sference catalog models now appear in Claude Code's /model picker
automatically — no gateway.yaml editing.

Claude Code's picker only renders ids matching /(claude|anthropic)/i, so
raw slugs like zai-org/GLM-5.3-Flash could never be picker entries. The
gateway now derives Anthropic-shaped aliases from the catalog it already
holds (offline, from the vendored fallback + on-disk cache) and unions
them with any configured model_aliases. Configured entries win, so
existing installs keep their pinned ids unchanged. /v1/models and
/v1/admin/model-catalog annotate the same union, so the TLS door's
picker injection and the request router always agree.

Also in this release: the curl installer (https://get.sference.com) is
the canonical install path in the docs.

Sference Switch v0.1.2 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Aug 08:50
07a0174

Sference Switch v0.1.2

Fixes bootstrap corruption affecting every v0.1.0 and v0.1.1 install.

The TLS door forwarded Claude Code's Accept-Encoding verbatim, so
Anthropic returned brotli — an encoding the door could not decode. It
then stripped Content-Encoding from the undecoded body, leaving Claude
Code to parse compressed bytes as JSON and discard the entire bootstrap:
model access, org defaults, auto-compact windows and costs, not just the
Sference entries in the /model picker. Clients fell back to stale
on-disk cache, which kept the failure invisible.

The door now requests an uncompressed body, and forwards any encoding it
cannot decode with headers intact rather than corrupting it.

Sference Switch v0.1.1 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Aug 07:44
ec827be

Sference Switch v0.1.1

Sference Switch v0.1.0 (Beta)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Aug 07:22
58f14f7

Sference Switch v0.1.0