- Claude Code as an engine: chats on a "claude-code/<alias>" model run through
the claude CLI (stream-json); tool approvals go through our permission
system. Sign in from the web UI (URL + pasted code), CLI version and update
from Settings; the Docker image contains the CLI.
- Small models (8k context) for side tasks: input is cut to the model's
context window; one-line chat status, "What does this do?" on approvals,
"Plan as automation" (job draft from a chat).
- Mobile: top bar no longer widens the page, image viewer (zoom, swipe, mark
up, use in message), jump to previous own message, message menu, time under
every message.
- Approvals: push actions (allow/reject), "always allow in this project"
(never for dangerous commands) with revoke.
- Per turn: changed files with diffs and rollback; project check command with
a green/red badge and "let the agent fix it".
- Colour tags for chats in the colours of the active theme.
- Project defaults for new chats, project page (timeline), offline queue.
Tested in a throwaway container with a mock model (8k small model): 26 API
checks passed (permissions, diffs, checks, defaults, job draft, side-task
budget, Claude Code status/login URL, unsigned-in chat).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Personal API tokens (full/read scope, expiry, revoke) and CLI password login
- Cargo workspace: codecraft-core (types, providers, permission rules) shared by
server and the upcoming terminal client; server re-exports the old paths
- CLI server API: /cli/config, /cli/skill, /cli/tool (server MCP tools),
/llm/stream model gateway with budgets and usage per user
- Theme/language preferences mirrored to the server; personal memory endpoint
- Statistics: provider and mode tables stacked; CLI usage labelled
- cli/: work in progress (terminal client is being rewritten as a local TUI)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>