Set GIT_AUTHOR_*/GIT_COMMITTER_* from Settings → Account → Git (also inside the sandbox), so a repository's own user.name/user.email no longer wins; tell agents not to change the git identity. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
191 lines
9.6 KiB
Markdown
191 lines
9.6 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to CodeCraft. Versions follow [Semantic Versioning](https://semver.org/);
|
||
until 1.0, minor versions may contain breaking changes.
|
||
|
||
## [Unreleased]
|
||
|
||
### Fixed
|
||
|
||
- Commits by agents, terminals and the git panel always use the name and e-mail from
|
||
*Settings → Account → Git* – also in repositories that have their own `user.name`/`user.email`
|
||
(agents had set those as a workaround while no identity was configured). Agents are told not
|
||
to change the git identity.
|
||
|
||
## [v202611-00004] – 2026-11-09
|
||
|
||
### Added
|
||
|
||
- **Chats side by side:** *Open beside* in a chat's sidebar menu shows up to three chats as
|
||
columns, each with its own tabs and composer (desktop).
|
||
- **My modes:** every user can create personal modes under *Settings → My modes* (kind, tools,
|
||
read-only, prompt, model); they appear only for that user.
|
||
- **Budget warnings** as push notifications for admins (warning share and 100 %) for the total,
|
||
provider and image budgets and the opencode Go windows; the status overlay shows all budgets.
|
||
- `scripts/move-server.sh` moves an installation to another Docker host with bind mounts
|
||
(e.g. Unraid), `scripts/smoke-test.sh` checks a running instance.
|
||
|
||
### Changed
|
||
|
||
- File manager tabs of a chat are stored on the server, so they are the same on every device.
|
||
|
||
## [v202611-00003] – 2026-11-09
|
||
|
||
### Added
|
||
|
||
- The Docker image ships the terminal client again (static Linux x86_64 and aarch64 binaries):
|
||
`curl -fsSL https://<your-server>/cli/install.sh | sh`, download links in the settings and
|
||
`codecraft update` work without building from source.
|
||
- File manager: *Open chat here* in a folder's menu starts a chat in that folder.
|
||
- **Tabs in a chat:** open terminals and file managers next to the chat (topbar buttons or
|
||
"+" in the tab strip), as many as needed. Terminals of a chat keep running on the server until
|
||
they are closed, so they are there again after a reload or on another device (output is
|
||
replayed); they end when the chat is deleted or the server restarts.
|
||
- **Chat mode:** *New session → Just chat* (and mode `chat`) for plain conversation – a lean
|
||
prompt with date and personal memory, web search and fetch only, no project or files.
|
||
- **Own modes:** *Settings → Agents & commands → New mode* with kind (coding or conversation),
|
||
read-only switch, tool checkboxes, prompt, model and review loop; custom modes show up in
|
||
*New session* and the mode selector.
|
||
- The chat shows when the conversation is being compacted – automatically because the context
|
||
is nearly full (with tokens and share of the limit) or on request – and labels the summary.
|
||
|
||
### Changed
|
||
|
||
- The mode selector in the composer is a dropdown.
|
||
|
||
### Removed
|
||
|
||
- *Settings → Config file* no longer offers to move `${NAME}` values into the configuration (a
|
||
one-time migration); `${NAME}` references keep working.
|
||
|
||
### Fixed
|
||
|
||
- Session updates from background tasks (title, token usage, phase, todos) and from the UI
|
||
no longer overwrite each other. Often the first answer's token usage was lost, so automatic
|
||
compaction and the context display started one turn late.
|
||
|
||
## [v202611-00002] – 2026-11-09
|
||
|
||
### Added
|
||
|
||
- **opencode prices:** *Fetch prices* reads prices, context and output limits, image input and
|
||
reasoning from opencode's model list (Zen and Go), including long-context tiers and
|
||
peak-hour or date-based factors. Costs apply them per request (`price_tiers`,
|
||
`price_multipliers` on a model).
|
||
- **opencode costs and Go limits:** the cost opencode reports per response is recorded instead
|
||
of an estimate, and with a *plan limit* on the provider the Go allowance is tracked in the
|
||
5-hour, 7-day and monthly windows (budget table and status overlay; usage through CodeCraft
|
||
only).
|
||
- **Settings → Config file** lists `${NAME}` references and moves the values of set variables
|
||
into the configuration, so `.env` only needs deployment settings.
|
||
|
||
### Changed
|
||
|
||
- Examples and forms no longer suggest environment variables for keys; `.env.example` holds
|
||
deployment settings only.
|
||
|
||
## [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
|