feat: add host-local custom project icons (#2335)
* feat(projects): add local icons and colors * refactor(projects): simplify appearance handling * fix(projects): serialize appearance saves * test(app): update project appearance expectations * test: fix project appearance CI expectations * refactor(projects): organize appearance code * fix(server): adopt main's reconcile model in project appearance updates * fix(projects): preserve host-local appearance targets * fix(desktop): restore Linux development startup Ubuntu can block Electron's unprivileged user-namespace fallback while the npm-installed sandbox helper is not SUID. Disable the Chromium process sandbox only in the Linux development runner so packaged desktop policy remains unchanged. * feat(projects): add custom project icons Keep URL acquisition in the client so the host daemon only validates uploaded bytes. Project name and icon changes share one adaptive edit sheet. * refactor(settings): scope projects by host --------- Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
This commit is contained in:
co-authored by
Mohamed Boudra
parent
706ae3d9bb
commit
800bd2bef1
@@ -1664,6 +1664,7 @@ export const es: TranslationResources = {
|
||||
vimHint: "Se aplica a archivos fuente en web y escritorio.",
|
||||
},
|
||||
hostSections: {
|
||||
projects: "Proyectos",
|
||||
connections: "Conexiones",
|
||||
agents: "Agents",
|
||||
workspaces: "Workspaces",
|
||||
@@ -2173,24 +2174,23 @@ export const es: TranslationResources = {
|
||||
},
|
||||
},
|
||||
project: {
|
||||
noEditableTarget: "No tenemos una copia editable de este proyecto en ningún host conectado.",
|
||||
noEditableTarget: "Este proyecto no se puede editar en este host.",
|
||||
backToProjects: "Volver a proyectos",
|
||||
switchHost: "Cambiar de anfitrión",
|
||||
rename: {
|
||||
renamedToast: "Proyecto renombrado",
|
||||
errorFallback: "No se pudo cambiar el nombre del proyecto",
|
||||
renameLabel: "Cambiar nombre del proyecto",
|
||||
resetLabel: "Restablecer el nombre del proyecto al valor predeterminado",
|
||||
projectNameLabel: "Nombre del proyecto",
|
||||
saveLabel: "Guardar nombre del proyecto",
|
||||
cancelLabel: "Cancelar cambio de nombre",
|
||||
reset: "Reiniciar",
|
||||
edit: {
|
||||
title: "Editar proyecto",
|
||||
name: "Nombre",
|
||||
nameLabel: "Nombre del proyecto",
|
||||
icon: "Icono",
|
||||
chooseImage: "Elegir imagen",
|
||||
useAutomatic: "Usar automático",
|
||||
imageUrl: "URL de imagen o sitio web",
|
||||
save: "Guardar cambios",
|
||||
savedToast: "Proyecto actualizado",
|
||||
},
|
||||
readFailures: {
|
||||
invalidTitle: "paseo.json no se pudo analizar",
|
||||
invalidDescription: "Fije el archivo en el disco y luego vuelva a cargarlo.",
|
||||
missingTitle: "Este anfitrión no tiene este proyecto",
|
||||
missingWithHosts: "Cambie a otro host de arriba o vuelva a cargar.",
|
||||
missingSingleHost: "El anfitrión seleccionado no tiene registro de este proyecto.",
|
||||
transportTitle: "No se pudo cargar paseo.json",
|
||||
transportFallback: "El anfitrión no respondió.",
|
||||
|
||||
Reference in New Issue
Block a user