Automation editor with graphical schedule and assistant; movable chat list groups
Automations
- Job files hold only the instructions; name, schedule, mode, model, approval
mode and time limit are settings in the database (jobs.settings). Existing
files are adopted on start-up (frontmatter into the database and removed from
the file); plain Markdown files registered later get default settings and stay
switched off until scheduled.
- New automation: name, project and a starting point (blank example structure or
a template) create .codecraft/jobs/<name>.md and open the editor: settings with
a graphical cron builder (next runs in server time via /jobs/schedule), the
instructions in the Markdown editor and an assistant chat
(POST /jobs/{id}/assistant) whose model edits the file; the editor reloads it
after each turn and warns about conflicts with unsaved edits.
- The schedule tool writes prompt-only files with settings.
Chat list
- Folders and projects keep a user-defined order and can be pinned (drag and
drop, or the group's menu), stored per user via /account/sidebar. A new
message moves the chat to the top of its group, no longer the project itself.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
872ebb94dd
commit
05c215f685
19 files changed
+1661
-356
No files matched your search
+53
-10
@@ -344,7 +344,7 @@ export const de: Messages = {
|
||||
"agents.refineShort": "Review ×{n}",
|
||||
"agents.deleteFile": "Agenten-Datei {path} löschen?",
|
||||
"nav.jobs": "Automationen",
|
||||
"jobs.intro": "Agenten, die nach Zeitplan starten. Jede Automation ist eine Markdown-Datei (Auftrag + Zeitplan im Frontmatter) – lass sie dir in einem Chat von einem Agenten anlegen (Tool „schedule“) oder registriere unten eine Datei. Jeder Lauf erscheint als normaler Chat; braucht er eine Freigabe, bekommst du eine Push-Benachrichtigung.",
|
||||
"jobs.intro": "Agenten, die nach Zeitplan starten. Die Anweisungen jeder Automatisierung stehen in einer Markdown-Datei; Name, Zeitplan und Einstellungen legst du hier fest. Mit „Neue Automatisierung“ anlegen und die Anweisungen mit dem Assistenten erarbeiten – oder einen Agenten in einem Chat darum bitten (Tool „schedule“). Jeder Lauf erscheint als normaler Chat.",
|
||||
"jobs.none": "Noch keine Automationen.",
|
||||
"jobs.schedule": "Zeitplan",
|
||||
"jobs.next": "Nächster Lauf",
|
||||
@@ -355,13 +355,12 @@ export const de: Messages = {
|
||||
"jobs.enable": "Aktivieren",
|
||||
"jobs.disable": "Deaktivieren",
|
||||
"jobs.runNow": "Jetzt starten",
|
||||
"jobs.editFile": "Datei bearbeiten",
|
||||
"jobs.remove": "Entfernen",
|
||||
"jobs.deleteConfirm": "Automation „{name}“ entfernen? Die Job-Datei bleibt erhalten.",
|
||||
"jobs.openRun": "Lauf öffnen",
|
||||
"jobs.prompt": "Auftrag",
|
||||
"jobs.register": "Job-Datei registrieren",
|
||||
"jobs.registerHint": "Pfad zu einer Markdown-Datei mit Zeitplan im Frontmatter:",
|
||||
"jobs.register": "Vorhandene Datei registrieren",
|
||||
"jobs.registerHint": "Pfad zu einer Markdown-Datei mit Anweisungen (ältere Dateien mit Zeitplan im Frontmatter werden übernommen):",
|
||||
"jobs.registerBtn": "Registrieren",
|
||||
"jobs.status.running": "läuft",
|
||||
"jobs.status.done": "fertig",
|
||||
@@ -509,6 +508,11 @@ export const de: Messages = {
|
||||
"sidebar.unpin": "Nicht mehr anpinnen",
|
||||
"sidebar.openBeside": "Daneben öffnen",
|
||||
"chat.closePane": "Spalte schließen",
|
||||
"sidebar.groupMenu": "Ordner-Optionen",
|
||||
"sidebar.groupPin": "Oben fixieren",
|
||||
"sidebar.groupUnpin": "Nicht mehr fixieren",
|
||||
"sidebar.groupUp": "Nach oben",
|
||||
"sidebar.groupDown": "Nach unten",
|
||||
"sidebar.moveTo": "In Ordner verschieben…",
|
||||
"sidebar.removeFromFolder": "Aus Ordner entfernen",
|
||||
"sidebar.archiveOne": "Archivieren",
|
||||
@@ -545,14 +549,9 @@ export const de: Messages = {
|
||||
"backup.s3Keep": "Im Bucket behalten (0 = alle)",
|
||||
"backup.last": "Letztes Backup",
|
||||
"backup.s3Ok": "hochgeladen",
|
||||
"jobs.fromTemplate": "Neue Automation aus Vorlage",
|
||||
"jobs.tplName": "Name",
|
||||
"jobs.tplProject": "Projektordner",
|
||||
"jobs.tplSchedule": "Wann",
|
||||
"jobs.tplCronHint": "Cron: Minute Stunde Tag Monat Wochentag (Zeitzone des Servers).",
|
||||
"jobs.tplMode": "Modus",
|
||||
"jobs.tplPrompt": "Aufgabe für den Agenten",
|
||||
"jobs.tplCreate": "Automation anlegen",
|
||||
"new.title": "Neue Session",
|
||||
"new.directory": "Projektverzeichnis",
|
||||
"new.up": "Hoch",
|
||||
@@ -595,8 +594,52 @@ export const de: Messages = {
|
||||
"chat.compactingDetail": "{tokens} von {limit} Tokens ({pct}) – danach arbeitet der Agent mit einer Zusammenfassung weiter",
|
||||
"chat.telegram": "Fragen an Telegram senden",
|
||||
"chat.telegramHint": "Freigaben und Rückfragen dieses Chats auch per Telegram schicken (der gerade in Telegram geöffnete Chat meldet sich immer)",
|
||||
"cron.label": "Zeitplan",
|
||||
"cron.mode.minutes": "Alle paar Minuten",
|
||||
"cron.mode.hourly": "Stündlich",
|
||||
"cron.mode.daily": "Täglich",
|
||||
"cron.mode.weekly": "An Wochentagen",
|
||||
"cron.mode.monthly": "Monatlich",
|
||||
"cron.mode.custom": "Cron-Ausdruck",
|
||||
"cron.every": "Alle",
|
||||
"cron.minutes": "Minuten",
|
||||
"cron.atMinute": "Zur Minute",
|
||||
"cron.days": "Wochentage",
|
||||
"cron.workdays": "Mo–Fr",
|
||||
"cron.onDay": "Am",
|
||||
"cron.at": "um",
|
||||
"cron.customHint": "Minute Stunde Tag Monat Wochentag, z. B. „30 6 * * 1-5“ = Mo–Fr 06:30.",
|
||||
"cron.nextRuns": "Nächste Läufe:",
|
||||
"cron.shortMonths": "Monate ohne diesen Tag werden übersprungen.",
|
||||
"cron.serverTz": "Uhrzeiten in Serverzeit ({tz})",
|
||||
"jobEditor.saved": "Gespeichert",
|
||||
"jobEditor.conflict": "Die Anweisungen wurden inzwischen geändert (z. B. vom Assistenten). Mit deiner Fassung überschreiben?",
|
||||
"jobEditor.overwrite": "Überschreiben",
|
||||
"jobEditor.runUnsaved": "Es gibt ungespeicherte Änderungen – der Lauf verwendet die gespeicherte Fassung. Trotzdem starten?",
|
||||
"jobEditor.discard": "Ungespeicherte Änderungen verwerfen?",
|
||||
"jobEditor.back": "Zurück zu den Automatisierungen",
|
||||
"jobEditor.tab.prompt": "Anweisungen",
|
||||
"jobEditor.tab.settings": "Zeitplan",
|
||||
"jobEditor.tab.assistant": "Assistent",
|
||||
"jobEditor.timeout": "Zeitlimit (Min.)",
|
||||
"jobEditor.bypassHint": "Läuft nachts: Mit „Alles erlauben“ wartet der Lauf nie auf eine Freigabe.",
|
||||
"jobEditor.instructions": "Anweisungen",
|
||||
"jobEditor.instructionsHint": "Der Agent sieht nur diesen Text – keinen Chat, niemanden zum Nachfragen.",
|
||||
"jobEditor.changedOnDisk": "Der Assistent hat die Datei geändert, während du bearbeitet hast.",
|
||||
"jobEditor.reload": "Seine Fassung laden",
|
||||
"jobEditor.assistantIntro": "Erarbeite die Anweisungen zusammen mit einem Modell: Beschreib, was die Automatisierung tun soll – es fragt nach und schreibt die Datei nebenan mit.",
|
||||
"jobEditor.assistantStart": "Assistent starten",
|
||||
"jobEditor.defaultModel": "Server-Standard",
|
||||
"jobs.new": "Neue Automatisierung",
|
||||
"jobs.namePlaceholder": "z. B. Nächtlicher Abhängigkeits-Check",
|
||||
"jobs.fileHint": "Die Anweisungen landen in .codecraft/jobs/<name>.md in diesem Ordner.",
|
||||
"jobs.startWith": "Beginnen mit",
|
||||
"jobs.blank": "Leer",
|
||||
"jobs.blankDesc": "Beispielgliederung zum Ausfüllen mit dem Assistenten",
|
||||
"jobs.createAndEdit": "Anlegen und bearbeiten",
|
||||
"jobs.edit": "Bearbeiten",
|
||||
"jobs.permissionMode": "Freigabemodus",
|
||||
"jobs.permissionModeHint": "Gilt ab dem nächsten Lauf (wird in die Datei geschrieben). „Alles erlauben“: der Lauf fragt nie nach und wartet nicht auf Freigaben.",
|
||||
"jobs.permissionModeHint": "Gilt ab dem nächsten Lauf. „Alles erlauben“: der Lauf fragt nie nach und wartet nicht auf Freigaben.",
|
||||
"instructions.title": "Anweisungen für diesen Chat",
|
||||
"instructions.hint": "Gelten für jede Nachricht in diesem Chat, zusätzlich zum Modus – z. B. Sprache, Ton, Regeln oder der Teil des Projekts, um den es geht.",
|
||||
"instructions.placeholder": "z. B. Antworte immer auf Englisch. Ändere nur Dateien unter api/. Frag, bevor du Abhängigkeiten hinzufügst.",
|
||||
|
||||
Reference in new issue
Block a user