Skip to content

Commit 30f4828

Browse files
author
Lukas Geiger
committed
docs: add DevCenter platform plan
1 parent 8ac19a3 commit 30f4828

3 files changed

Lines changed: 201 additions & 0 deletions

File tree

EXPORTFORMAT.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Exportformat DevCenter
2+
3+
Stand: 2026-05-27
4+
5+
## Zweck
6+
7+
`devcenter-workspace-v1.json` ist das geplante Austauschformat zwischen der DevCenter-Desktop-App und einem späteren Web-/PWA-Companion. Es soll Projektstatus, Analyseberichte, Build-Checklisten und redigierte Konfigurationen transportieren, ohne vollständige Quelltexte, API-Schlüssel, lokale Datenbanken oder Build-Artefakte weiterzugeben.
8+
9+
## Grundregeln
10+
11+
- UTF-8 ohne BOM.
12+
- JSON-Objekt als Wurzel.
13+
- `schema` ist exakt `devcenter-workspace-v1`.
14+
- Export ist redigiert: Secrets, Tokens, Keyring-Werte und lokale Vollpfade werden nicht übernommen.
15+
- Projektinhalte werden nur als Metadaten, Hashes oder ausdrücklich freigegebene Snippets exportiert.
16+
- Import in den Companion ist read-only; er verändert keine lokalen Desktop-Projekte.
17+
18+
## Geplante Struktur
19+
20+
```json
21+
{
22+
"schema": "devcenter-workspace-v1",
23+
"schema_version": 1,
24+
"app": {
25+
"name": "DevCenter",
26+
"version": "1.0.0",
27+
"exported_at": "2026-05-27T00:00:00Z"
28+
},
29+
"project": {
30+
"name": "example-project",
31+
"path_ref": "project-1",
32+
"language": "python",
33+
"frameworks": ["PySide6"],
34+
"has_devcenter_json": true
35+
},
36+
"analysis": {
37+
"summary": {
38+
"files_indexed": 0,
39+
"problems_total": 0,
40+
"warnings_total": 0
41+
},
42+
"problems": []
43+
},
44+
"build": {
45+
"target": "windows-x64",
46+
"one_file": true,
47+
"console": true,
48+
"output_ref": "dist",
49+
"hidden_imports": []
50+
},
51+
"dependencies": {
52+
"requirements": [],
53+
"licenses": []
54+
},
55+
"release": {
56+
"targets": [
57+
"github",
58+
"windows_store",
59+
"macos_direct",
60+
"linux_direct",
61+
"web"
62+
],
63+
"checklists": []
64+
},
65+
"tasks": [],
66+
"redactions": {
67+
"paths": true,
68+
"secrets": true,
69+
"source_content": true
70+
}
71+
}
72+
```
73+
74+
## Redaktionsregeln
75+
76+
| Datentyp | Exportregel |
77+
|---|---|
78+
| API-Schlüssel, Tokens, Keyring-Daten | Nie exportieren. |
79+
| Absolute lokale Pfade | In stabile Referenzen wie `project-1`, `backup-dir-1` oder `dist` umwandeln. |
80+
| Quelltextdateien | Standardmäßig nicht exportieren; nur Name, Endung, Größe, Hash, Analysebefunde. |
81+
| Analysebefunde | Exportieren, wenn sie ohne vollständigen Quelltext verständlich sind. |
82+
| Build-Konfiguration | Exportieren, aber lokale Pfade und Secrets redigieren. |
83+
| Lizenzdaten | Paketname, Version, Lizenz und Quelle exportieren. |
84+
| Aufgaben | Nur offene technische Aufgaben exportieren, keine internen Agenten-Notizen. |
85+
86+
## Akzeptanzkriterien für P0/P1
87+
88+
- Exportfunktion erzeugt valides JSON nach obigem Schema.
89+
- Tests decken Secret- und Pfadredaktion ab.
90+
- Companion kann eine Beispieldatei lokal importieren und anzeigen.
91+
- Kein Export enthält `api_key`, `token`, `secret`, `%APPDATA%`, `C:\Users\` oder unredigierte Projekt-Vollpfade.

PORTIERUNGSPLAN.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Portierungsplan DevCenter
2+
3+
Stand: 2026-05-27
4+
5+
## Kurzentscheidung
6+
7+
DevCenter bleibt zuerst eine lokale Desktop-IDE für Windows und GitHub. Eine gemeinsame Web-/Mobile-Linie ist sinnvoll, aber nicht als vollständiger IDE-Clone: Android, iOS und Web sollen später als schlanker PWA-Companion für Projektüberblick, Analyseberichte, Build-Checklisten und redigierte Arbeitsstands-Exporte entstehen. macOS und Linux werden als Source-Smoke-Ziele aus derselben PySide6-Codebasis geführt; eigene Desktop-Pakete kommen erst nach stabilen Smokes.
8+
9+
## Warum Portierung sinnvoll ist
10+
11+
DevCenter bündelt Editor, statische Analyse, Build, Lizenzsammlung, Dateiindex, Sync und optionalen AI-Assistenten. Der Nutzen ist auf dem Desktop am größten, weil lokale Projektdateien, PyInstaller-Builds, Schlüsselbund, Dateiindex und Terminalprozesse Zugriff auf das echte Dateisystem brauchen. Gleichzeitig entsteht ein mobiler Bedarf: Projektstatus prüfen, Analyseergebnisse ansehen, offene Build-/Store-Punkte nachverfolgen und einem Team oder LLM einen redigierten Projektstand weitergeben.
12+
13+
Die sinnvolle Plattformstrategie trennt deshalb:
14+
15+
- **Desktop-Vollversion:** lokale Entwicklung, Dateiindex, Build, AI-Assistent, Sync und Store-Vorbereitung.
16+
- **Web/PWA-Companion:** lesbarer Projektstatus, Analyse- und Build-Reports, Aufgaben, Checklisten und Import eines redigierten `devcenter-workspace-v1.json`.
17+
- **Native Mobile-Apps:** nur als PWA-Hülle oder späterer Store-Kanal, nicht als parallele IDE-Codebasis.
18+
19+
## Plattformbewertung
20+
21+
| Plattform | Bewertung | Entscheidung |
22+
|---|---|---|
23+
| Windows Store | Möglich, aber nicht kurzfristig. DevCenter ist groß, hat optionalen AI-Key, Build-/Dateisystemzugriffe und komplexe IDE-Workflows. | Vorerst GitHub-only; Store erst nach Secret-Härtung, Store-Listing, MSIX/WACK und klarer Datenschutzabgrenzung. |
24+
| Android | Vollständige IDE nicht sinnvoll, weil lokaler Python-/PyInstaller-/Dateisystemzugriff fehlt. | PWA-Companion für Projektübersicht, Analyseberichte und Checklisten. |
25+
| Webapp | Sinnvoll als Companion und Team-/LLM-Übergabeoberfläche. | Bevorzugter Mobile-/Web-Strang mit Import von `devcenter-workspace-v1.json`. |
26+
| iOS | Native IDE wegen Sandbox, Signierung und Dateisystemzugriff nicht sinnvoll. | PWA/TestFlight-Hülle nur nach funktionierendem Web-Companion. |
27+
| Mac App | Fachlich sinnvoll für Python-Entwicklung, aber AI-Key, PyInstaller, Pfade und Keyring müssen plattformspezifisch getestet werden. | P2 Source-Smoke auf macOS, Paketierung erst danach. |
28+
| Linux Version | Sinnvoll für Entwickler, besonders als Source-Start. AppImage/Flatpak erst nach stabilen Smokes. | P1 Linux-Source-Smoke, P3 Paketierungsentscheidung. |
29+
30+
## Zielarchitektur
31+
32+
### Desktop bleibt autoritativ
33+
34+
Die PySide6-App bleibt die Vollversion. Sie verwaltet lokale Projekte, `devcenter.json`, Einstellungen, Dateiindex, Builds und optionale AI-Nutzung. Keine Mobile- oder Webversion darf API-Schlüssel, lokale Pfade oder Projektinhalte unkontrolliert übernehmen.
35+
36+
### Austauschformat
37+
38+
Der geplante Export heißt `devcenter-workspace-v1.json`. Er enthält nur redigierte, mobile-taugliche Daten:
39+
40+
- Projektmetadaten aus `devcenter.json`
41+
- redigierte Plattform- und Pfadhinweise
42+
- Analysezusammenfassungen ohne vollständige Quelltexte
43+
- Build-Konfiguration ohne absolute Secrets oder lokale Build-Artefakte
44+
- Lizenz-/Dependency-Zusammenfassung
45+
- Aufgaben- und Store-/Release-Checklisten
46+
- optional: kleine, explizit freigegebene Code-Snippets
47+
48+
Details stehen in `EXPORTFORMAT.md`.
49+
50+
### Web/PWA-Companion
51+
52+
Der Companion liegt perspektivisch unter `web_companion/`. Er soll offline-fähig sein, JSON-Dateien lokal im Browser importieren und keine Serverpflicht haben. Eine gehostete Version darf keine Projektdateien hochladen, solange keine explizite Datenschutz- und Sicherheitsentscheidung vorliegt.
53+
54+
## Phasenplan
55+
56+
| Phase | Ziel | Ergebnis |
57+
|---|---|---|
58+
| P0 | Exportvertrag festlegen | `EXPORTFORMAT.md`, TODOs, redigierte Feldliste |
59+
| P1 | Linux-Source-Smoke | Start, Tests, Pfad-/Keyring-/PyInstaller-Abgrenzung dokumentiert |
60+
| P2 | `devcenter-workspace-v1.json` im Desktop erzeugen | Exportfunktion mit Tests, keine Secrets, keine lokalen Vollpfade ohne Redaction |
61+
| P3 | Web/PWA-Companion bauen | Import, Dashboard, Analyse-/Build-/Release-Ansichten, Mobile-Smokes |
62+
| P4 | macOS-Smoke | Start auf Mac Studio oder macOS-Runner, Keyring/Terminal/Build prüfen |
63+
| P5 | Store-Entscheidung | Windows Store nur nach MSIX/WACK, Datenschutztext, Support-URL, Screenshot-Set und API-Key-Härtung |
64+
65+
## Nicht-Ziele
66+
67+
- Kein nativer Android-/iOS-IDE-Clone.
68+
- Kein öffentlicher Webservice, der komplette Projektquellen hochlädt.
69+
- Keine gemeinsame Desktop-/Mobile-Codebasis erzwingen, wenn sie die lokale IDE-Funktionalität verlangsamt.
70+
- Keine Windows-Store-Einreichung, solange AI-Key, Build-Prozesse und Dateisystemrechte nicht sauber abgegrenzt sind.
71+
72+
## Offene Risiken
73+
74+
- Der AI-Assistent darf keine Schlüssel in Exporte schreiben.
75+
- Build- und Sync-Einstellungen enthalten lokale Pfade und müssen redigiert werden.
76+
- PyInstaller- und Terminalfunktionen sind auf macOS/Linux nicht automatisch gleichwertig.
77+
- Ein Web-Companion kann nur Reports und Metadaten anzeigen, nicht die vollständige lokale Entwicklungsumgebung ersetzen.
78+
79+
## Nächste konkrete Schritte
80+
81+
1. Redigierten Export `devcenter-workspace-v1.json` als reine Hilfsfunktion planen und testen.
82+
2. Linux-Source-Smoke mit `python -m unittest discover -s tests -v` und `python -m compileall -q main.py manage_translations.py translator.py src tests` dokumentieren.
83+
3. Web-Companion minimal als statischen Import-Viewer für Projektstatus, Analysebefunde und Release-Checklisten anlegen.
84+
4. Windows-Store-Entscheidung erst nach Secret-/Privacy-Review und Store-Artefaktprüfung wieder aufnehmen.

web_companion/README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# DevCenter Web-Companion
2+
3+
Stand: 2026-05-27
4+
5+
Dieser Ordner ist für einen späteren statischen Web-/PWA-Companion vorgesehen. Der Companion soll keine vollständige IDE ersetzen, sondern redigierte DevCenter-Exporte anzeigen.
6+
7+
## Geplanter Umfang
8+
9+
- `devcenter-workspace-v1.json` lokal im Browser importieren.
10+
- Projektstatus, Analysezusammenfassung, Build-Konfiguration und Release-Checklisten anzeigen.
11+
- Offline-fähig als PWA laufen.
12+
- Android und iOS über dieselbe Weboberfläche bedienen.
13+
- Keine Projektquellen oder API-Schlüssel hochladen.
14+
15+
## Nicht-Ziele
16+
17+
- Kein Code-Editor mit lokaler Ausführung.
18+
- Kein PyInstaller- oder Terminal-Build im Browser.
19+
- Kein Cloud-Service ohne separate Datenschutzentscheidung.
20+
21+
## Nächste Schritte
22+
23+
1. Beispieldatei für `devcenter-workspace-v1.json` erstellen.
24+
2. Minimalen Import-Viewer bauen.
25+
3. Mobile-Smokes für Android und iOS ergänzen.
26+
4. Export-/Importvertrag gegen `EXPORTFORMAT.md` testen.

0 commit comments

Comments
 (0)