Files
codecraft/CHANGELOG.md
T
2026-11-09 09:31:31 +01:00

110 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to CodeCraft. Versions follow [Semantic Versioning](https://semver.org/);
until 1.0, minor versions may contain breaking changes.
## [v202611-00001] – 2026-11-09
### Added
- **Image generation picks the model:** the agent drafts cheap previews, asks which one to
refine (with the price of the final model), then creates the final image with the best model
for the purpose (photo, illustration, text, design). Models that take a reference image
(Nano Banana Pro edit) refine the chosen draft. Known fal.ai models come with sensible
defaults; `stage`, `good_for` and `reference_param` in `[images].models` override them.
- **Restore a backup** in *Settings → Audit*: a stored backup or an uploaded zip. The current
state is backed up first (`…-before-restore.zip`), then CodeCraft restarts with the restored
database and configuration.
- **Test connection** in the provider form checks URL and key before saving.
- **Status LEDs** in the sidebar for server connection, models and MCP servers (green, yellow,
red in vivid variants of the theme colors); a click opens an overview of every provider and
MCP server with its state, latency and tool count.
- `scripts/release.sh`: tag, multi-arch image and Gitea release in one step.
### Changed
- Saving a provider (or reloading providers) checks its status right away instead of at the
next five-minute check.
### Fixed
- opencode Zen/Go: requests carry the session in `x-opencode-session`; opencode Go rejected
them without it ("Request is missing x-opencode-session").
- Two backups in the same second no longer overwrite each other.
## [0.1.0] – 2026-11-09
First public release.
### Agents and chat
- Agent loop with streaming, task lists, subagents (parallel and in the background, on other
models), skills, slash commands, `AGENTS.md` / `CLAUDE.md`, automatic context compaction.
- Modes: **build**, **plan** (read-only) and **craft** (study a website, app, game or old
program and build your own version, with visual comparison, clean room or deep mode),
plus custom modes and subagents. Review loops per mode.
- Tools: files, shell with background processes, web fetch and search, LSP diagnostics after
edits, OpenSCAD for 3D printing, Ghidra for old binaries, image generation (fal.ai), and an
interactive **browser** (click, type, run JavaScript, screenshots, console errors; private
network addresses are blocked).
- MCP servers (stdio and Streamable HTTP, elicitation, tools loaded on demand).
- Permissions per tool and per shell command pattern, modes *ask*, *auto*, *accept edits* and
*bypass*; permission cards with diffs; questions from agents and MCP servers.
- Checkpoints and rewind, fork, regenerate, accept changes hunk by hunk, git worktrees per
session, reasoning effort per message, voice input, `@file` mentions, attachments.
- Project memory (`.codecraft/memory.md`, written by the agent) and personal memory.
- Hooks before and after tool calls, on prompts and at the end of a turn.
### Models
- Anthropic natively and every OpenAI-compatible API (Gemini, OpenRouter, opencode,
fal.ai, Ollama, vLLM, llama.cpp, LM Studio).
- Prices per model, concurrency limits per host and model, monthly budgets.
- **Model fallback** when a host is unreachable or a budget is used up.
- **Provider status**: every 5 minutes each provider's model list is checked (no tokens).
### Web app
- Installable PWA with push notifications (permissions, questions, finished turns) and a
**share target**: text and links shared from other apps start a chat or go into a recent one.
- Guided start screen, file manager with previews (PDF, Office, 3D models, images), web
terminal, image gallery, git panel.
- **Command palette** (Ctrl/Cmd+K) and keyboard shortcuts; **prompt templates** with
placeholders (personal and global); sessions can be **pinned, archived and filed into
folders**, grouped by date or project.
- Statistics: tokens, cache hits, time to first token, prefill and output speed and cost per
request; cost and tokens per day, an activity heatmap of the last 14 days, tables per model,
provider, mode, user and session. Optional **daily cost summary** as a push at 20:00.
- 15 colour themes, each light and dark; English and German.
- "What's new" after updates; admins see when a new release is available.
### Automations and integrations
- **Automations**: agents on a cron schedule from a Markdown job file, created by an agent,
from a **template** or by hand; **incoming webhooks** start them (shared secret or
Gitea/GitHub HMAC signature; the payload is passed to the agent).
- **API tokens** with full or read-only scope.
- **Prometheus metrics** at `/metrics` (own bearer token) and JSON logs
(`CODECRAFT_LOG_FORMAT=json`).
- **Backups**: daily zip of database and config, keep 30, optional copy to any S3-compatible
bucket; download from the settings.
### Terminal client
- `codecraft`: a full-screen terminal client like Claude Code or opencode. The agent loop,
tools and history stay on your machine; models, modes, rules, skills and the theme come
from the server, which counts usage and costs. Also runs **without a server**: a guided
setup connects Anthropic, OpenAI, Gemini, OpenRouter, opencode or local servers (Ollama,
LM Studio, llama.cpp/vLLM, detected automatically).
- No prebuilt binaries in this release: install it from source with
`cargo install --locked --git https://git.familie-zink.org/zink/codecraft codecraft-cli`.
### Users and security
- Local accounts (Argon2) and single sign-on via OpenID Connect; admins and users, private
folders per user, shared folders, read-only session sharing, audit log.
- Shell commands of non-admin users run in a bubblewrap sandbox.
- Multi-arch Docker image (amd64, arm64).
[0.1.0]: https://git.familie-zink.org/zink/codecraft/releases/tag/v0.1.0