Elf Tests: welche Dateinamen als README gelten, dass Markdown Vorrang hat, dass an einer Zeilengrenze gekuerzt wird und dass base64 mit Umlauten und Zeilenumbruechen richtig ankommt. Im Browser gegen vercel/swr geprueft, dazu ein erfundenes README fuer die relativen Links, die swr nicht hergibt: aufgeloeste Pfade, unveraenderte absolute Links, Anker bleiben Anker, kein img im Dokument und kein a im a. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+23
@@ -299,6 +299,29 @@ App und Infrastruktur. Sie gehören trotzdem in **eine** Karte.
|
||||
Der Projektdialog bearbeitet weiterhin nur das führende Repository; weitere verwaltet das
|
||||
Git-Panel. Beim Anlegen eines Projekts entsteht aus den Git-Feldern das erste.
|
||||
|
||||
### 4.0a README-Vorschau
|
||||
|
||||
Das README des führenden Repositories steht auf der Projektseite — man muss nicht ins Git
|
||||
wechseln, nur um zu sehen, worum ein halbvergessenes Projekt eigentlich ging. Lange
|
||||
READMEs sind eingeklappt, ein Knopf zeigt alles.
|
||||
|
||||
- Geholt wird **höchstens einmal am Tag**, wie die Heatmap. GitHub hat einen eigenen
|
||||
Endpunkt, der jede Schreibweise findet; bei GitLab und Gitea braucht es zwei Aufrufe
|
||||
(Wurzelverzeichnis auflisten, dann die Datei holen).
|
||||
- Erkannt werden `README.md` und die üblichen Varianten, Groß- und Kleinschreibung egal.
|
||||
Markdown hat Vorrang — nur das lässt sich wirklich darstellen.
|
||||
- Bei 60 000 Zeichen wird an einer **Zeilengrenze** abgeschnitten, damit kein halber
|
||||
Codeblock stehen bleibt.
|
||||
- **Relative Links** werden gegen das Verzeichnis der Datei im Repository aufgelöst, sonst
|
||||
liefen sie ins Leere.
|
||||
- **Bilder werden nicht geladen.** Die Content-Security-Policy erlaubt `img-src` nur von
|
||||
der eigenen Instanz; sie dafür zu öffnen hieße, jedem fremden README das Nachladen
|
||||
beliebiger Bilder zu gestatten — also auch Zählpixeln. Für Abzeichen und
|
||||
Bildschirmfotos, die in einer Vorschau ohnehin Beiwerk sind, ist das kein guter Tausch.
|
||||
Stattdessen steht ein anklickbarer Verweis mit dem Alternativtext.
|
||||
- Der Inhalt stammt aus einem fremden Repository und läuft deshalb durch dieselbe
|
||||
Bereinigung wie Notizen (`rehype-sanitize`).
|
||||
|
||||
### 4.1 Unterstützte Systeme
|
||||
|
||||
| System | API | Authentifizierung | Besonderheit |
|
||||
|
||||
+3
-8
@@ -20,20 +20,14 @@ erreichbar ist. Der Zeitplan bleibt als Rückfalllösung.
|
||||
|
||||
---
|
||||
|
||||
### 1.2 README-Vorschau `S`
|
||||
|
||||
Das README aus dem Repo holen und auf der Projektseite anzeigen. Ein
|
||||
zusätzlicher API-Aufruf, Markdown kann Nebula schon. Erspart den Wechsel ins
|
||||
Git, nur um zu sehen, worum ein halbvergessenes Projekt eigentlich ging.
|
||||
|
||||
### 1.3 Läuft es noch? `M`
|
||||
### 1.2 Läuft es noch? `M`
|
||||
|
||||
Eine Health-Check-URL je Projekt, die der Zeitgeber regelmäßig anpingt.
|
||||
Nebula wüsste dann, ob ein Projekt nicht nur existiert, sondern auch läuft.
|
||||
Nutzt Zeitgeber und Benachrichtigungen, die es schon gibt. Der SSRF-Schutz
|
||||
greift dabei wie bei den Git-Aufrufen.
|
||||
|
||||
### 1.4 Persönliche API-Token `M`
|
||||
### 1.3 Persönliche API-Token `M`
|
||||
|
||||
Derzeit geht die API nur mit Sitzungscookie. Ein Token je Konto würde
|
||||
`curl`-Aufrufe und Handy-Shortcuts erlauben — Idee aus dem Terminal anlegen,
|
||||
@@ -115,6 +109,7 @@ Damit klar ist, was **nicht** kommt und warum:
|
||||
| **v1.1.0** Freie Reihenfolge im Brett, Mehrfachauswahl, installierbar als App, Änderungsverlauf | ✓ |
|
||||
| **v1.2.0** Commit-Heatmap über ein Jahr, Projektvorlagen | ✓ |
|
||||
| **v1.3.0** Wiederkehrende Aufgaben, Barrierefreiheit nach WCAG 2.1 AA | ✓ |
|
||||
| **v1.4.0** README-Vorschau auf der Projektseite | ✓ |
|
||||
|
||||
Zur Entscheidung beim Export: Git-Tokens gehen **nicht** mit. Die Verbindung wird nur
|
||||
beschrieben, das Token ist nach dem Import neu zu hinterlegen. Snapshots bleiben
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nebula",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"private": true,
|
||||
"description": "Nebula – Dashboard fuer Vibe-Coding Projekte mit Git-Anbindung (GitHub, GitLab, Gitea)",
|
||||
"scripts": {
|
||||
|
||||
@@ -41,6 +41,32 @@ export const KIND_META: Record<ChangeKind, { label: string; className: string }>
|
||||
};
|
||||
|
||||
export const CHANGELOG: Release[] = [
|
||||
{
|
||||
version: "1.4.0",
|
||||
date: "2026-07-26",
|
||||
headline: "Worum ging es hier nochmal?",
|
||||
changes: [
|
||||
{
|
||||
kind: "neu",
|
||||
text:
|
||||
"README-Vorschau auf der Projektseite. Erspart den Wechsel ins Git, nur um zu " +
|
||||
"sehen, worum ein halbvergessenes Projekt eigentlich ging.",
|
||||
},
|
||||
{
|
||||
kind: "besser",
|
||||
text:
|
||||
"Relative Links im README zeigen dorthin, wo sie hingehören — aufgelöst gegen " +
|
||||
"das Verzeichnis der Datei im Repository.",
|
||||
},
|
||||
{
|
||||
kind: "besser",
|
||||
text:
|
||||
"Bilder im README werden bewusst nicht geladen, sondern als anklickbarer " +
|
||||
"Verweis gezeigt. Die Content-Security-Policy dafür zu öffnen hieße, jedem " +
|
||||
"fremden README das Nachladen beliebiger Bilder zu erlauben — auch Zählpixeln.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "1.3.0",
|
||||
date: "2026-07-26",
|
||||
|
||||
Reference in New Issue
Block a user