Add Web Push, guided start screen, SVG icons, chunked uploads, rename
- Web Push (VAPID + RFC 8291, pure Rust): permission/question/finished notifications while no app window is visible; settings with test button - Guided new-session flow: task, craft target (website/app/game/old software/fresh), clean room or deep, description, model, folder (new, existing or cloned git repository); originals upload to original/ - Craft phase bar (craft_phase tool) for study/specify/build/check/ready - Chunked uploads (8 MB) up to server.max_upload_mb (default 500 MB) - All UI glyphs and emojis replaced by themeable SVG icons - Rename dialog with manual name or model-generated suggestion Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
013695722a
commit
a0d0e707f2
48 files changed
+2724
-228
No files matched your search
+75
-1
@@ -210,6 +210,74 @@ export const de: Messages = {
|
||||
|
||||
"session.untitled": "Neue Session",
|
||||
|
||||
"wizard.title": "Was möchtest du machen?",
|
||||
"wizard.subtitle": "Aufgabe wählen, beschreiben, was du willst, dann auf Start drücken.",
|
||||
"wizard.whatToDo": "Was möchtest du machen?",
|
||||
"wizard.task.craft": "Etwas craften",
|
||||
"wizard.task.craftDesc": "Website, App, Spiel oder altes Programm nachbauen – oder etwas Neues bauen",
|
||||
"wizard.task.build": "Am Code arbeiten",
|
||||
"wizard.task.buildDesc": "In einem Projekt umsetzen, reparieren und ausführen",
|
||||
"wizard.task.plan": "Planen",
|
||||
"wizard.task.planDesc": "Nur lesen: analysieren und einen Plan vorschlagen",
|
||||
"wizard.whatToRecreate": "Was möchtest du nachbauen?",
|
||||
"wizard.target.website": "Eine Website",
|
||||
"wizard.target.app": "Eine App",
|
||||
"wizard.target.game": "Ein Spiel",
|
||||
"wizard.target.software": "Alte Software",
|
||||
"wizard.target.fresh": "Nichts – neu anfangen",
|
||||
"wizard.cleanDesc": "Nur aus dem Sichtbaren: Screenshots, sichtbarer Text, Verhalten",
|
||||
"wizard.deepDesc": "Auch Quellen und Binärdateien untersuchen (Ghidra) – nachbilden, nie kopieren",
|
||||
"wizard.softwareNeedsDeep": "Für die Analyse eines Programms braucht es den Deep-Modus (Dekompilieren). Im Clean Room werden nur Screenshots und deine Beschreibung genutzt.",
|
||||
"wizard.sayWhat": "Sag, was du willst",
|
||||
"wizard.placeholder.website": "Besondere Wünsche? z. B. nur die Startseite, in React, dunkles Theme …",
|
||||
"wizard.placeholder.app": "Beschreibe die App, hänge Screenshots an …",
|
||||
"wizard.placeholder.game": "Beschreibe das Spiel, hänge Screenshots an …",
|
||||
"wizard.placeholder.software": "Was ist das für ein Programm? Worauf soll die neue Version laufen? Programm, Archiv oder Installer anhängen.",
|
||||
"wizard.placeholder.fresh": "Zum Beispiel: eine Website für meine Bäckerei",
|
||||
"wizard.placeholder.task": "Was soll gemacht werden?",
|
||||
"wizard.enterHint": "Enter zum Starten · Shift+Enter für neue Zeile · Dateien ablegen oder einfügen",
|
||||
"wizard.softwareHint": "Programm mit Bibliotheken, zip/tar.gz oder Installer anhängen – landet in original/",
|
||||
"wizard.attach": "Dateien anhängen",
|
||||
"wizard.ideas": "Ideen:",
|
||||
"wizard.idea.siteLanding": "Nur die Startseite, als reines HTML/CSS",
|
||||
"wizard.idea.siteShop": "Alle Seiten, in React mit Tailwind",
|
||||
"wizard.idea.appTodo": "Eine To-do-App wie auf meinen Screenshots",
|
||||
"wizard.idea.appNotes": "Eine Notiz-App mit dem gleichen Layout",
|
||||
"wizard.idea.gameSnake": "Ein einfaches Snake-Spiel im Browser",
|
||||
"wizard.idea.gameBreakout": "Ein Breakout-Klon mit eigener Grafik",
|
||||
"wizard.idea.swDos": "Ein altes DOS-Spiel – die neue Version soll im Browser laufen",
|
||||
"wizard.idea.swTool": "Ein altes Windows-Tool – als plattformübergreifende App nachbauen",
|
||||
"wizard.idea.freshBakery": "Eine Website für meine Bäckerei",
|
||||
"wizard.idea.freshSnake": "Ein einfaches Snake-Spiel",
|
||||
"wizard.idea.planFeature": "Ein neues Feature für dieses Projekt planen",
|
||||
"wizard.idea.planRefactor": "Die größten Schwächen finden und ein Refactoring vorschlagen",
|
||||
"wizard.idea.buildTests": "Tests für das Kernmodul schreiben und Fehler beheben",
|
||||
"wizard.idea.buildBug": "Finde und behebe den Fehler: ",
|
||||
"wizard.builtBy": "Gebaut von",
|
||||
"wizard.newFolderIn": "Gespeichert in einem neuen Ordner in",
|
||||
"wizard.existingFolder": "Arbeitet in",
|
||||
"wizard.chooseFolder": "Ordner wählen…",
|
||||
"wizard.useNewFolder": "Neuen Ordner verwenden",
|
||||
"wizard.start": "Start",
|
||||
"wizard.creatingFolder": "Ordner wird angelegt…",
|
||||
"wizard.uploading": "Dateien werden hochgeladen…",
|
||||
"wizard.starting": "Wird gestartet…",
|
||||
"phase.study": "Studieren",
|
||||
"phase.specify": "Spezifizieren",
|
||||
"phase.build": "Bauen",
|
||||
"phase.check": "Prüfen",
|
||||
"phase.ready": "Fertig",
|
||||
"wizard.cloning": "Repository wird geklont…",
|
||||
"wizard.originalTitle": "Original-Software hochladen",
|
||||
"wizard.originalHint": "Programmordner als zip, tar.gz, 7z, Installer oder einzelne Dateien – bis 500 MB pro Datei. Klicken oder hier ablegen.",
|
||||
"wizard.whereLabel": "Wo soll gebaut werden?",
|
||||
"wizard.whereNew": "Neuer Ordner",
|
||||
"wizard.whereExisting": "Bestehender Ordner",
|
||||
"wizard.whereGit": "Git-Repository",
|
||||
"wizard.cloneInto": "Geklont nach",
|
||||
"rename.title": "Session umbenennen",
|
||||
"rename.generateWith": "Namen vorschlagen mit",
|
||||
"rename.generate": "Generieren",
|
||||
"new.title": "Neue Session",
|
||||
"new.directory": "Projektverzeichnis",
|
||||
"new.up": "Hoch",
|
||||
@@ -317,7 +385,13 @@ export const de: Messages = {
|
||||
"settings.notifications": "Benachrichtigungen",
|
||||
"settings.notificationsEnable": "Aktivieren",
|
||||
"settings.notificationsOn": "Aktiv",
|
||||
"settings.notificationsHint": "Benachrichtigen, wenn ein Agent eine Frage stellt, während die App im Hintergrund ist.",
|
||||
"settings.pushTest": "Test senden",
|
||||
"settings.pushTestSent": "Testbenachrichtigung gesendet",
|
||||
"settings.pushTestNone": "Kein Gerät angemeldet",
|
||||
"settings.pushDisable": "Ausschalten",
|
||||
"settings.pushUnsupported": "Dieser Browser unterstützt keine Push-Benachrichtigungen. Auf iPhone/iPad: CodeCraft zuerst zum Home-Bildschirm hinzufügen.",
|
||||
"settings.pushDenied": "Benachrichtigungen sind für diese Seite blockiert – in den Browser-Einstellungen erlauben.",
|
||||
"settings.notificationsHint": "Push-Benachrichtigungen auf diesem Gerät, wenn ein Agent eine Freigabe braucht, eine Frage stellt oder eine längere Aufgabe beendet – nur wenn CodeCraft nicht geöffnet ist.",
|
||||
"settings.server": "Server",
|
||||
"settings.workspace": "Workspace",
|
||||
"settings.defaultModel": "Standardmodell",
|
||||
|
||||
+75
-1
@@ -209,6 +209,74 @@ export const en = {
|
||||
|
||||
"session.untitled": "New session",
|
||||
|
||||
"wizard.title": "What do you want to do?",
|
||||
"wizard.subtitle": "Pick a task, say what you want, then press Start.",
|
||||
"wizard.whatToDo": "What do you want to do?",
|
||||
"wizard.task.craft": "Craft something",
|
||||
"wizard.task.craftDesc": "Recreate a website, app, game or old program – or build something new",
|
||||
"wizard.task.build": "Work on code",
|
||||
"wizard.task.buildDesc": "Implement, fix and run things in a project",
|
||||
"wizard.task.plan": "Plan",
|
||||
"wizard.task.planDesc": "Read-only: analyse and propose a plan",
|
||||
"wizard.whatToRecreate": "What do you want to recreate?",
|
||||
"wizard.target.website": "A website",
|
||||
"wizard.target.app": "An app",
|
||||
"wizard.target.game": "A game",
|
||||
"wizard.target.software": "Old software",
|
||||
"wizard.target.fresh": "Nothing – start fresh",
|
||||
"wizard.cleanDesc": "Only from what you can see: screenshots, visible text, behaviour",
|
||||
"wizard.deepDesc": "Also study sources and binaries (Ghidra) – re-create, never copy",
|
||||
"wizard.softwareNeedsDeep": "Analysing a program needs Deep mode (decompiling). In clean room mode only screenshots and your description are used.",
|
||||
"wizard.sayWhat": "Say what you want",
|
||||
"wizard.placeholder.website": "Anything special? e.g. only the start page, in React, dark theme …",
|
||||
"wizard.placeholder.app": "Describe the app, attach screenshots …",
|
||||
"wizard.placeholder.game": "Describe the game, attach screenshots or a video description …",
|
||||
"wizard.placeholder.software": "What is the program? What should the new version run on? Attach the program, an archive or installer.",
|
||||
"wizard.placeholder.fresh": "For example: a website for my bakery",
|
||||
"wizard.placeholder.task": "What should be done?",
|
||||
"wizard.enterHint": "Enter to start · Shift+Enter for a new line · drop or paste files",
|
||||
"wizard.softwareHint": "Attach the program with its libraries, a zip/tar.gz or an installer – it goes to original/",
|
||||
"wizard.attach": "Attach files",
|
||||
"wizard.ideas": "Ideas:",
|
||||
"wizard.idea.siteLanding": "Only the start page, as plain HTML/CSS",
|
||||
"wizard.idea.siteShop": "All pages, in React with Tailwind",
|
||||
"wizard.idea.appTodo": "A to-do app like in my screenshots",
|
||||
"wizard.idea.appNotes": "A notes app with the same layout",
|
||||
"wizard.idea.gameSnake": "A simple snake game in the browser",
|
||||
"wizard.idea.gameBreakout": "A breakout clone with original graphics",
|
||||
"wizard.idea.swDos": "An old DOS game – the new version should run in the browser",
|
||||
"wizard.idea.swTool": "An old Windows tool – rebuild it as a cross-platform app",
|
||||
"wizard.idea.freshBakery": "A website for my bakery",
|
||||
"wizard.idea.freshSnake": "A simple snake game",
|
||||
"wizard.idea.planFeature": "Plan a new feature for this project",
|
||||
"wizard.idea.planRefactor": "Find the biggest weaknesses and propose a refactoring",
|
||||
"wizard.idea.buildTests": "Add tests for the core module and fix what fails",
|
||||
"wizard.idea.buildBug": "Find and fix the bug: ",
|
||||
"wizard.builtBy": "Built by",
|
||||
"wizard.newFolderIn": "Saved in a new folder in",
|
||||
"wizard.existingFolder": "Works in",
|
||||
"wizard.chooseFolder": "Choose a folder…",
|
||||
"wizard.useNewFolder": "Use a new folder",
|
||||
"wizard.start": "Start",
|
||||
"wizard.creatingFolder": "Creating folder…",
|
||||
"wizard.uploading": "Uploading files…",
|
||||
"wizard.starting": "Starting…",
|
||||
"phase.study": "Study",
|
||||
"phase.specify": "Specify",
|
||||
"phase.build": "Build",
|
||||
"phase.check": "Check",
|
||||
"phase.ready": "Ready",
|
||||
"wizard.cloning": "Cloning repository…",
|
||||
"wizard.originalTitle": "Upload the original software",
|
||||
"wizard.originalHint": "Program folder as zip, tar.gz, 7z, an installer or single files – up to 500 MB each. Click or drop here.",
|
||||
"wizard.whereLabel": "Where should it be built?",
|
||||
"wizard.whereNew": "New folder",
|
||||
"wizard.whereExisting": "Existing folder",
|
||||
"wizard.whereGit": "Git repository",
|
||||
"wizard.cloneInto": "Cloned into",
|
||||
"rename.title": "Rename session",
|
||||
"rename.generateWith": "Suggest a name with",
|
||||
"rename.generate": "Generate",
|
||||
"new.title": "New session",
|
||||
"new.directory": "Project directory",
|
||||
"new.up": "Up",
|
||||
@@ -316,7 +384,13 @@ export const en = {
|
||||
"settings.notifications": "Notifications",
|
||||
"settings.notificationsEnable": "Enable",
|
||||
"settings.notificationsOn": "Enabled",
|
||||
"settings.notificationsHint": "Notify when an agent asks a question while the app is in the background.",
|
||||
"settings.pushTest": "Send test",
|
||||
"settings.pushTestSent": "Test notification sent",
|
||||
"settings.pushTestNone": "No device subscribed",
|
||||
"settings.pushDisable": "Turn off",
|
||||
"settings.pushUnsupported": "This browser does not support push notifications. On iPhone/iPad: add CodeCraft to the home screen first.",
|
||||
"settings.pushDenied": "Notifications are blocked for this site – allow them in the browser settings.",
|
||||
"settings.notificationsHint": "Push notifications on this device when an agent asks for permission, asks a question or finishes a longer task – only while CodeCraft is not open.",
|
||||
"settings.server": "Server",
|
||||
"settings.workspace": "Workspace",
|
||||
"settings.defaultModel": "Default model",
|
||||
|
||||
Reference in new issue
Block a user