Projekt-Identität und -Config neu: .ai-control/config.json mit UUID und Name
- Projekt-Config zieht von ai-control.json nach .ai-control/config.json um, das Icon liegt daneben und synct mit dem Projekt. - Jedes Projekt trägt eine UUID (id) und den Anzeigenamen (name) in der Config; die UUID ist Registry-Schlüssel und project-Parameter aller Commands, der Name reine Darstellung. - Pool-Zuordnung ist maschinenlokal und liegt in der projects.json-Registry, nicht mehr in der syncbaren Projekt-Config. - open_terminal prüft die ID im Ordner gegen die Registry (verschobene oder ersetzte Ordner scheitern laut). - Import übernimmt eine mitgebrachte ID, legt Arbeitsordner und Archiv-Home an und zieht die Archiv-Permission nach. - Migration beim App-Start: Alt-Datei umziehen, Pool in die Registry, Icons aus ~/.config/ai-control/icons ins Projekt, Registry auf UUIDs. - ProjectConfig reicht unbekannte Keys per serde(flatten) durch den Round-Trip (Regressionstest config_roundtrip_erhaelt_fremde_keys).
This commit is contained in:
@@ -9,7 +9,7 @@ use std::process::Command;
|
||||
|
||||
use crate::domain::paths::Paths;
|
||||
use crate::domain::pool::APIKEY_FILE;
|
||||
use crate::domain::project::TerminalConfig;
|
||||
use crate::domain::project::ProjectConfig;
|
||||
use crate::platform::{Anchor, TrayCallbacks};
|
||||
|
||||
// ---------- Prozesse ----------
|
||||
@@ -77,7 +77,7 @@ pub(crate) fn symlink(_target: &Path, _link: &Path) -> Result<(), String> {
|
||||
|
||||
// ---------- Desktop-Integration (nur Linux substantiell) ----------
|
||||
|
||||
pub(crate) fn write_terminal_desktop(_paths: &Paths, _project: &str, _cfg: &TerminalConfig) {}
|
||||
pub(crate) fn write_terminal_desktop(_paths: &Paths, _project: &str, _cfg: &ProjectConfig) {}
|
||||
pub(crate) fn remove_terminal_desktop(_paths: &Paths, _project: &str) {}
|
||||
pub(crate) fn sync_all_desktops(_paths: &Paths) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user