docs: handoff/status aktualisiert — delete-event erledigt, design-todos offen
- nip-09-delete-event für duplikat 1744905463975 festgehalten - open-todos ergänzt: kind:5-filter in spa, repo/nostr-konflikt-mgmt, delete-subcommand in pipeline - option 3 (menü+impressum+startseite) als design-todo klargestellt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
34c62cb944
commit
3f8d3e7592
|
|
@ -43,17 +43,66 @@ läuft ja schon, ob manuell oder via CI ist für den Cutover egal.
|
|||
|
||||
Hugo-Altbestand bleibt als Archiv im `hugo-archive`-Branch.
|
||||
|
||||
### Option 3 — Menü-Navigation + Impressum in der SPA
|
||||
### Option 3 — Startseite + Menü-Navigation + Impressum in der SPA
|
||||
|
||||
**Unabhängig von allem anderen**, kann parallel gemacht werden.
|
||||
**Unabhängig von Cutover**, aber Voraussetzung für diesen: ohne Design wäre
|
||||
die Hauptdomain eine rohe Post-Liste.
|
||||
|
||||
- Header-Navigation in `app/src/routes/+layout.svelte` (Home, Archiv, Impressum,
|
||||
Mastodon-Link)
|
||||
- `/impressum/`-Route mit rechtlichem Text
|
||||
- **Startseite** bekommt ein eigenes Design (nicht nur Post-Liste dump)
|
||||
- **Menü-Navigation** in `app/src/routes/+layout.svelte` (Home, Archiv,
|
||||
Impressum, Mastodon-Link)
|
||||
- **Impressum** als Static-Page (SvelteKit-Route `/impressum/`), **nicht**
|
||||
als Nostr-Event — soll nicht als Blog-Beitrag in Listen erscheinen.
|
||||
Text ist bereits im `content/`-Ordner (Repo-Quelle); die einzige
|
||||
rechtlich relevante HTML-Datei, die auf dem Server liegt.
|
||||
|
||||
**Aufwand:** 30–60 min.
|
||||
### Option 4 — SPA respektiert `kind:5`-Deletion-Events
|
||||
|
||||
### Option 4 — Pipeline weg von GitHub (self-hosted CI)
|
||||
**Status:** aktuell filtert die SPA nicht nach NIP-09. Wenn ein Event per
|
||||
`kind:5`-Referenz gelöscht wurde (z. B. `7f5d08b8…` deletet `89609df5…`
|
||||
für `d=1744905463975` am 18.04.), zeigen Relays es meist nicht mehr aus —
|
||||
aber die SPA würde es trotzdem rendern, falls ein Relay es doch liefert.
|
||||
|
||||
**Zu tun:** im `kind:30023`-Loader (`app/src/lib/nostr/...`) einen
|
||||
Cross-Check auf `kind:5`-Events einbauen. Events, deren Addressable-Pointer
|
||||
(`30023:pubkey:d-tag`) in einem `kind:5` referenziert ist, werden
|
||||
gefiltert. Defensive Maßnahme für zukünftige Duplikate / Soft-Deletes.
|
||||
|
||||
### Option 5 — Repo/Nostr-Konflikt-Management
|
||||
|
||||
**Warum:** aktuell ist die Pipeline eine einseitige Straße — Repo → Nostr.
|
||||
Wenn du via Client (Habla, Yakihonne, Amber) auf Nostr editierst,
|
||||
überschreibt der nächste Pipeline-Lauf deine Client-Edits mit dem (alten)
|
||||
Repo-State. Das ist ein echter Datenverlust-Risikofaktor.
|
||||
|
||||
**Zu tun:**
|
||||
- **Defensiv (`created_at`-Check):** Pipeline liest vor Publish das
|
||||
aktuelle Event vom Relay und vergleicht `created_at`. Wenn das
|
||||
Remote-Event neuer ist: Abbruch mit Warnung.
|
||||
- **Reverse-Sync (`pull-from-nostr`-Subcommand):** liest Events, vergleicht
|
||||
mit Repo, zeigt Diffs. Manuelle Konfliktauflösung.
|
||||
|
||||
Keine Eile, solange du nicht parallel editierst. Erst relevant, wenn du
|
||||
dich an Habla & Co. gewöhnst.
|
||||
|
||||
### Option 6 — NIP-09-Delete als Pipeline-Subcommand
|
||||
|
||||
**Status:** heute einmalig per `nak event -k 5 …` mit neu erzeugter Bunker-
|
||||
URL erledigt (Duplikat `1744905463975`). Das war ein Workaround um das
|
||||
„already connected"-Problem unserer Pipeline-Signer-Wiederverwendung.
|
||||
|
||||
**Zu tun:** in `publish/src/subcommands/` einen `delete`-Subcommand bauen,
|
||||
der NIP-09 sauber erledigt und unsere stabile Signer-Identität nutzt.
|
||||
|
||||
```
|
||||
deno task publish-delete --slug <slug>
|
||||
# oder
|
||||
deno task publish-delete --event-id <hex>
|
||||
```
|
||||
|
||||
Jetzt nicht dringend — nur bauen, wenn der Fall öfter eintritt.
|
||||
|
||||
### Option 7 — Pipeline weg von GitHub (self-hosted CI)
|
||||
|
||||
**Wann:** Wenn der Optiplex-Server steht und ein zentraler Ort für Dienste
|
||||
existiert.
|
||||
|
|
|
|||
|
|
@ -120,6 +120,12 @@ Alles in `.env.local` — gitignored, nicht committet.
|
|||
- ✅ **`spa` → `main` gemergt**, GitHub-Actions-Workflow manuell verifiziert
|
||||
(Run #1: signer ok, outbox ok, blossom-liste ok, mode=diff posts=0).
|
||||
**Alle 24 Tasks des Publish-Pipeline-Plans abgeschlossen.**
|
||||
- ✅ **Staging-Deploy-Infrastruktur:** `scripts/deploy-svelte.sh` mit
|
||||
drei Targets (`svelte`/`staging`/`prod`), dynamisches `og:url` und
|
||||
`canonical` via `__SITE_URL__`-Platzhalter. Staging-Subdomain
|
||||
`staging.joerg-lohrer.de` bedient jetzt `joerglohrer26/` (Cutover-Ziel).
|
||||
- ✅ **Duplikat-Event `1744905463975` via NIP-09 gelöscht** (Delete-Event
|
||||
`7f5d08b8…`, auf alle 5 Relays). Nach Migration nicht mehr auffindbar.
|
||||
|
||||
## Live-Verifikation
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue