Georg Bauer 35087580d5 Add quick actions to sessions
Rename, AI retitle, pin and archive, reached from the "..." button on
every session row and in the chat header. Sessions carry one lifecycle
state (normal, pinned, archived) rather than independent flags, so the
sidebar groups them without an unrepresentable pinned-and-archived case.

The AI retitle runs as a one-shot against the transient KV cache through
a new CheckpointTarget::OneShot, leaving no session or checkpoint behind
while still reporting as local work in the metrics.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 12:15:58 +02:00
2026-07-25 12:15:58 +02:00
2026-07-25 12:15:58 +02:00
2026-07-25 12:15:58 +02:00
2026-07-24 11:27:25 +02:00
2026-07-24 11:27:25 +02:00
2026-07-24 12:36:48 +02:00
2026-07-24 12:23:50 +02:00
2026-07-25 09:31:55 +02:00

DS4Server

DS4Server is a native macOS coding-agent application that rewrites the DwarfStar (ds4) inference engine in Rust. It uses Rust and Iced and will combine local model loading, an OpenAI-compatible localhost endpoint, and project-scoped agent chat in one app.

DS4Server vendors and adapts the Metal kernels and Objective-C Metal glue from DwarfStar (ds4). Their copyright and license notices are retained in native/metal/LICENSE.

The current milestone provides a Codex-inspired project/session layout. A native macOS folder picker selects each workspace, then the app asks for its display name. Projects, sessions, and model preferences are persisted through Diesel in SQLite. Open Preferences with Command-, to configure model, generation, runtime, local endpoint, and idle-unload settings. The separate Model Manager (Shift-Command-M) lists local main and DSpark artifacts, their on-disk sizes and state, and lets you download, resume, validate, or delete them. Rust-native background work shows live byte progress, speed, and ETA in Model Manager and the app status bar. Stopping or quitting keeps the partial file; the next Download/Resume action continues from that exact byte after relaunch. Exact size and SHA-256 verification happen before an artifact becomes usable.

The selected DeepSeek V4 Flash model can run directly from a project session. The model, KV/compressor state, 43-layer graph, sampling, and lifecycle are owned by Rust; a fixed snapshot of the Objective-C Metal boundary and unchanged Metal kernels is vendored and built inside this repository. Tokens stream into the chat UI, Stop cancels generation, follow-up turns reuse durable transcript and KV state, and the model unloads after the idle timeout. The graph uses the full configured context with the ratio-4 sparse indexer.

The app also listens on 127.0.0.1:4000 by default for GET /v1/models and POST /v1/chat/completions; the port is configurable in Preferences. The endpoint and local chat share the single model owner. External conversations are client-managed and never enter the project, session, message, or transcript database; only opaque content-addressed KV cache files are retained. Model discovery advertises only supported main artifacts that are fully downloaded and verified on disk.

cargo install cargo-packager --locked --version 0.11.8
make bundle
open target/release/DS4Server.app

State is stored at:

~/Library/Application Support/DS4Server.rfc1437.de/data.sqlite3
~/Library/Application Support/DS4Server.rfc1437.de/kv-cache/

Deleting a project or session removes only DS4Server metadata. It never deletes the referenced project directory. See PLAN.md for the implementation roadmap.

Description
A Rust implementation of ds4 with a macos UI for local AI use on the go.
Readme MIT 6.3 MiB
Languages
Metal 45.6%
Rust 44.3%
C 9.6%
Python 0.5%