Claude Code engine, image viewer, colour tags, checks per turn and more
- 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>
This commit is contained in:
1 parent
084452abf6
commit
62fe5bf467
42 files changed
+3734
-55
No files matched your search
@@ -366,6 +366,98 @@ export const en = {
|
||||
"media.open": "Open",
|
||||
"media.prev": "Previous",
|
||||
"media.next": "Next",
|
||||
"msg.actions": "Message actions",
|
||||
"msg.copy": "Copy text",
|
||||
"msg.copied": "Copied",
|
||||
"msg.copyFailed": "Copying is not possible here",
|
||||
"msg.quote": "Quote in reply",
|
||||
"msg.forkHere": "Fork from here",
|
||||
"chat.jumpPrevOwn": "Previous own message",
|
||||
"viewer.annotate": "Mark up",
|
||||
"viewer.annotateFailed": "This image cannot be edited",
|
||||
"viewer.attach": "Attach to message",
|
||||
"viewer.undo": "Undo",
|
||||
"viewer.tool.pen": "Pen",
|
||||
"viewer.tool.arrow": "Arrow",
|
||||
"viewer.tool.rect": "Rectangle",
|
||||
"viewer.useInChat": "Use in message",
|
||||
"viewer.attached": "Image attached to the message",
|
||||
"turn.changes": "{n} file(s) changed",
|
||||
"turn.noChanges": "No file changes found for this turn.",
|
||||
"turn.noDiff": "No text diff available.",
|
||||
"turn.truncated": "The diff is shortened.",
|
||||
"turn.new": "new",
|
||||
"turn.deleted": "deleted",
|
||||
"turn.rollback": "Roll back to before this turn",
|
||||
"job.plan": "Plan as automation",
|
||||
"job.planHint": "Turns this chat into instructions for a recurring automation (switched off until you set the schedule)",
|
||||
"job.drafting": "Drafting the automation from this chat …",
|
||||
"color.label": "Colour of this chat",
|
||||
"color.red": "Red",
|
||||
"color.orange": "Orange",
|
||||
"color.yellow": "Yellow",
|
||||
"color.green": "Green",
|
||||
"color.aqua": "Teal",
|
||||
"color.blue": "Blue",
|
||||
"color.purple": "Purple",
|
||||
"claude.title": "Claude Code",
|
||||
"claude.intro": "Chats with a \"Claude Code\" model are run by the Claude Code CLI on the server – with your Claude subscription or Anthropic Console account. Sign in here once; approvals, push and the sandbox work as usual.",
|
||||
"claude.notInstalled": "Claude Code is not installed on the server.",
|
||||
"claude.console": "Anthropic Console (API billing) instead of the Claude subscription",
|
||||
"claude.signIn": "Sign in",
|
||||
"claude.openLogin": "Open the sign-in page",
|
||||
"claude.step1": "Sign in at Anthropic in any browser (also on another device) and allow access.",
|
||||
"claude.step2": "Paste the code the page shows afterwards:",
|
||||
"claude.codePlaceholder": "Code from the sign-in page",
|
||||
"claude.confirm": "Confirm",
|
||||
"claude.signedIn": "Signed in to Claude Code",
|
||||
"claude.signedInAs": "Signed in: {who}",
|
||||
"claude.expires": "valid until {date}",
|
||||
"claude.logout": "Sign out",
|
||||
"claude.logoutConfirm": "Sign out of Claude Code on the server?",
|
||||
"claude.version": "CLI {version}",
|
||||
"claude.updateAvailable": "Update available: {version}",
|
||||
"claude.upToDate": "up to date",
|
||||
"claude.update": "Install update",
|
||||
"claude.updating": "Installing …",
|
||||
"claude.updated": "Claude Code updated to {version}",
|
||||
"claude.updateFailed": "The update failed (details below)",
|
||||
"claude.updateAdmin": "An administrator can install it.",
|
||||
"claude.checkNow": "Check for updates",
|
||||
"claude.updateLog": "Output of the update",
|
||||
"check.menu": "Check after each turn …",
|
||||
"check.title": "Check after each turn",
|
||||
"check.hint": "Command that runs in {project} after every turn that changed files (e.g. cargo test, npm test). The result appears as a badge on the turn. Empty = off.",
|
||||
"check.saved": "Check saved",
|
||||
"check.removed": "Check removed",
|
||||
"check.running": "Check running …",
|
||||
"check.passed": "Check passed",
|
||||
"check.failed": "Check failed",
|
||||
"check.timeout": "Check timed out",
|
||||
"check.noOutput": "(no output)",
|
||||
"check.fix": "Let the agent fix it",
|
||||
"check.fixPrompt": "The check of the project failed after your last change. Please fix the cause and run it again. Output:",
|
||||
"projectDefaults.save": "Use as project default",
|
||||
"projectDefaults.remove": "Remove project default",
|
||||
"projectDefaults.hint": "New chats in this project folder start with this chat's model, mode, colour, instructions and folder",
|
||||
"projectDefaults.saved": "New chats in this project will start like this one",
|
||||
"projectDefaults.removed": "Project default removed",
|
||||
"outbox.waiting": "{n} message(s) waiting for a connection",
|
||||
"outbox.sendNow": "Send now",
|
||||
"outbox.discard": "Discard",
|
||||
"outbox.saved": "No connection – the message is saved and sent when you are back online",
|
||||
"project.open": "Project overview",
|
||||
"project.newChat": "New chat",
|
||||
"project.today": "Today",
|
||||
"project.yesterday": "Yesterday",
|
||||
"project.chats": "{n} chat(s)",
|
||||
"project.files": "{n} file(s) changed",
|
||||
"project.archived": "{n} archived",
|
||||
"project.checksFailed": "{n} failed check(s)",
|
||||
"project.empty": "No chats in this folder yet.",
|
||||
"viewer.title": "Image viewer",
|
||||
"viewer.open": "Open in new tab",
|
||||
"viewer.download": "Download",
|
||||
"media.back": "Back to the overview",
|
||||
"chat.turnUsageHint": "All {n} requests of this answer (tokens sent/received, cost)",
|
||||
"chat.reviewRound": "Review {round}: changes requested",
|
||||
@@ -723,6 +815,16 @@ export const en = {
|
||||
|
||||
"permission.title": "Permission required",
|
||||
"permission.allowOnce": "Allow once",
|
||||
"permission.projectCommand": "Always allow \"{prefix}\" in this project",
|
||||
"permission.projectTool": "Always allow {tool} in this project",
|
||||
"permission.projectHint": "Remembered for this project folder, in all chats, also after a restart. Revoke it in the ⋯ menu.",
|
||||
"permission.explain": "What does this do?",
|
||||
"permission.explaining": "Explaining …",
|
||||
"permProject.title": "Project permissions",
|
||||
"permProject.intro": "Allowed without asking in this project folder (all chats):",
|
||||
"permProject.empty": "Nothing is allowed for this project yet. The button \"Always allow … in this project\" on an approval adds entries here.",
|
||||
"permProject.revoke": "Revoke",
|
||||
"permProject.menu": "Project permissions",
|
||||
"permission.alwaysTool": "Always allow {tool} in this session",
|
||||
"permission.alwaysCommand": "Always allow \"{prefix}\" in this session",
|
||||
"permission.reject": "Reject",
|
||||
|
||||
Reference in new issue
Block a user