-
v0.1.0 Stable
released this
2026-10-14 20:35:51 +00:00 | 1 commits to main since this releaseAdded
Projektgerüst mit npm-Workspaces (shared, server, web), TypeScript, ESLint, Prettier und Vitest.
Lokales Dev-Forgejo per Docker mit Seed-Skript: Testuser, Beispiel-Repos und OAuth-App.
Release-Skript scripts/version-bump.mjs.
Anmeldung mit dem Forgejo-Account (OAuth2 mit PKCE); nur freigeschaltete Nutzer (ALLOWED_USERS), Sitzung im verschlüsselten Cookie, automatische Token-Erneuerung, Sitzungen enden spätestens 90 Tage nach dem Login.
Server-API für Repos, Ordnerbaum, Notizen, Bilder und Commits (mehrere Änderungen in einem Commit, Konflikterkennung mit Angabe der betroffenen Datei).
Schutzmaßnahmen: CSRF-Schutz, Schreiben nur von Notizen und Bildern (nie in .forgejo/, .github/ u. Ä.), strikte Security-Header, keine Tokens in Logs oder Antworten.
Live-Integrationstests gegen das lokale Forgejo (npm run test:integration) und .env.example.
Docker-Image (ohne root, schreibgeschütztes Dateisystem, Healthcheck) und Compose-Setup mit Caddy-Beispiel für den Betrieb auf einem eigenen Server.
/healthz meldet die laufende App-Version ({"status":"ok","version":"…"}).
Installierbare Web-App (PWA) mit Anmeldung über Forgejo, Repo-Auswahl (Filter, „zuletzt genutzt“) und Ordnernavigation: am iPhone Ordner für Ordner, am Laptop mit Ordnerbaum; hell/dunkel nach Systemeinstellung.
Notizen anlegen, umbenennen/verschieben und löschen, jeweils als ein Commit; Notizvorschau als Text, Links „In Forgejo öffnen“ und „Verlauf in Forgejo“. Dateinamen, die unter Windows Probleme machen oder sich nur in der Groß-/Kleinschreibung unterscheiden, werden abgelehnt.
Browser-Tests mit Playwright (WebKit im iPhone-Format und Chromium) gegen das lokale Forgejo: npm run test:e2e.
WYSIWYG-Editor für Notizen (MDXEditor) mit Toolbar über der Tastatur, Checklisten, Tabellen, Codeblöcken und Quelltextmodus; Frontmatter als einklappbares YAML-Feld. Der Editor wird erst beim Öffnen einer Notiz geladen.
Speichern als Commit per Button oder Cmd/Ctrl+S, mit vorbelegter Commit-Nachricht und Ansicht der Änderungen. Unveränderte Absätze bleiben byte-genau erhalten; ohne Änderung entsteht kein Commit.
Entwürfe werden auf dem Gerät gesichert und nach einem Neuladen angeboten; Warnung beim Verlassen mit ungespeicherten Änderungen.
Konfliktdialog, wenn die Notiz inzwischen in Forgejo geändert wurde: Remote-Version laden (eigene Fassung bleibt als Entwurf), trotzdem überschreiben oder als Kopie speichern.
Notizen, die der Editor nicht darstellen kann (HTML, Fußnoten, Referenz-Links), öffnen in einem Text-Editor und werden unverändert gespeichert.
Bilder einfügen per Toolbar-Button (am iPhone Kamera, Mediathek oder Dateien), aus der Zwischenablage oder per Drag & Drop: automatisch auf höchstens 2560 px verkleinert, ohne Standort- und andere EXIF-Daten, und im selben Commit wie die Notiz gespeichert. Noch nicht gespeicherte Bilder bleiben im Entwurf erhalten.
Bilder in Notizen werden im Editor angezeigt (relative und repo-absolute Pfade; fehlende Bilder als Platzhalter). Der Ablageordner lässt sich per .mdnotes.json (attachmentDir) festlegen, Standard ist attachments/.
Fixed
Das Request-Log zeigt mit ausgelieferter Web-App die tatsächliche Route statt /* (vor dem ersten Release gefunden). Erfolgreiche Healthchecks erscheinen nur im Debug-Log.
Docs
ADR-001: Editor-Entscheidung für MDXEditor, inklusive „Absatz-Übernahme“ beim Speichern (unveränderte Blöcke bleiben byte-genau erhalten).
ADR-001 ergänzt: Drei-Wege-Abgleich mit dem Editor-Stand nach dem Laden, Text-Editor für nicht darstellbare Notizen, Ladegröße des Editors.
ADR-002: Verifizierte Fakten zur Forgejo-Integration (ChangeFiles-API, Konflikte per 409, OAuth2 mit PKCE ohne Scopes, Refresh-Token-Rotation).
ADR-003: Server-Architektur, Sicherheitsmodell und API-Vertrag v0.1.0.
Deployment-Anleitung docs/DEPLOYMENT.md: OAuth-App in Forgejo, Konfiguration, Caddy, Update, Notfall.
Security
Offene Weiterleitung über returnTo nach dem Login verhindert (im Security-Review vor dem ersten Release gefunden).
Warnung beim Start, wenn FORGEJO_INTERNAL_URL unverschlüsselt (http) ist.
Roh-HTML in Notizen erreicht den WYSIWYG-Editor nicht mehr; solche Notizen öffnen im Text-Editor (im Security-Review gefunden).
Sehr große Bilder (über 40 MB oder 50 Megapixel) werden vor dem Dekodieren abgelehnt, damit sie den Browser nicht abstürzen lassen (im Security-Review gefunden).Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)