Der Installer installiert zsh bei Bedarf selbst (apt-get, dnf, pacman, zypper, apk) und sagt das im Kopf und in der Ausgabe. Ohne zsh bricht der Shell-Teil jetzt VOR dem ersten Schreibzugriff ab (Exit 1, Befehl genannt, ~/.zshrc unangetastet), statt einen wirkungslosen Prompt-Eintrag zu hinterlassen. install_zsh meldet Erfolg nur bei echtem Fund im PATH, chsh-Fehler werden gemeldet, Abschlusszeile nennt Exit-Status.
91 lines
6.2 KiB
Markdown
91 lines
6.2 KiB
Markdown
# Changelog
|
||
|
||
Format: Datum — was — warum. Die CI beginnt versioniert am 2026-10-23; davor existierte
|
||
sie verstreut (Marke in `brand/`, Dokument-CSS im Open-WebUI-Skill) und wurde nicht
|
||
versioniert.
|
||
|
||
## 1.3.1 — 2026-11-02
|
||
|
||
- **zsh ist Pflicht, und das Skript sagt es jetzt auch.** `shell/install.sh` installiert zsh
|
||
bei Bedarf selbst (apt-get, dnf, pacman, zypper, apk) und schreibt das in den Kopf und in
|
||
die Ausgabe. Geht es nicht — kein Paketmanager oder `sudo` ohne Passwort — bricht der
|
||
Shell-Teil **vor dem ersten Schreibzugriff** ab, nennt den genauen Befehl und endet mit
|
||
Exit 1; `~/.zshrc` bleibt unangetastet, statt einen wirkungslosen Prompt-Eintrag zu
|
||
hinterlassen. Ein `chsh`-Fehlschlag wird gemeldet statt verschluckt, und die Abschlusszeile
|
||
nennt Exit-Status und naechsten Schritt.
|
||
- `install_zsh` meldet Erfolg nur noch, wenn `zsh` danach wirklich im `PATH` liegt.
|
||
|
||
## 1.3.0 — 2026-11-02
|
||
|
||
- **Die CI reicht bis in die Shell.** `shell/prompt.zsh` rendert einen zweizeiligen Prompt
|
||
(`┌─ kalina ~/kalina-ci · main ✚1 ✎2 · 4.2s` / `└─ ❯`) aus denselben Werten wie
|
||
`themes/kalina-ci-dark.json`: Tinte `#0B0F14`, Knochenweiß `#F5F5EF`, Markenrot `#C1121F`
|
||
nur als Grafik, Text-Rot `#E0454F` (4,70:1), Salbei `#7FA88C` nur an Git. Ausgerollt auf vier
|
||
Maschinen (Arbeitsplatz, Laptop, iMac, Gast-VM); die Pixelprobe zeigt auf jeder `#0B0F14`.
|
||
- **Die Startseite traegt Vorschaubild und Marke.** `assets/vorschau.png` (1200 × 630) zeigt
|
||
Deckblatt, Prompt und Token in einem Bild; `assets/vorschau-shell.png` steht im Shell-Abschnitt,
|
||
`assets/logo-platte.png` ist die Marke auf Knochenweiss (lesbar auf hellem wie dunklem Gitea).
|
||
- **`shell/install.sh` richtet weitere Maschinen ohne meinen Zugriff ein.** Idempotent, sichert
|
||
jede Datei nach `.vor-kalina-ci-<stempel>`, erkennt foot, qterminal, xfce4-terminal und xterm
|
||
und prüft anschließend mit `zsh -n`, `foot --check-config` und `xrdb`-Query. Aufruf per
|
||
`curl … | bash` funktioniert: fehlt `prompt.zsh` neben dem Skript, holt es das Modul über die
|
||
Raw-Adresse des Repos (`KALINA_CI_RAW` überschreibt sie).
|
||
- **Vier Erkenntnisse, die das Ausrollen gekostet hat:** p10k lässt sich nicht umfärben, nur
|
||
ablösen (der dreizeilige Instant-Prompt hinterlässt beim Auskommentieren ein `fi`, danach
|
||
startet keine Shell mehr); `${PWD/#$HOME/~}` ersetzt in zsh 5.9 nichts; `COLORTERM` wird per
|
||
SSH nicht übertragen, remote bleibt es beim 256-Farben-Ersatz; wer die Login-Shell auf zsh
|
||
umstellt, braucht `no_nomatch` in `~/.zshenv`, sonst brechen `ssh host '…'`-Aufrufe an leeren
|
||
Globs ab, wo bash weitermachte.
|
||
- **Terminal-Paletten sind nicht ratbar, sie sind messbar.** qterminal liest sein Schema nur
|
||
aus `XDG_DATA_DIRS` (nicht aus `~/.local/share/qterminal`), xfce4-terminal ignoriert
|
||
`terminalrc`, solange `xfconf` `/color-use-theme=true` hält, und foot 1.28 will
|
||
`[colors-dark]` mit `cursor=<text> <grund>` statt `[colors]` mit `cursor-text`.
|
||
|
||
## 1.2.0 — 2026-10-23
|
||
|
||
- **Jede Seite wird durchgestempelt, keine eigene Impressumsseite** (Mathias: „Alle
|
||
durchstempeln – es benötigt keine eigene Seite"). Gilt auch für den Bestand: zehn
|
||
Gästehaus-PDFs und der Router-Bericht tragen jetzt `KALINA · © 2026 kalina.si` auf jeder Seite.
|
||
- **`scripts/stamp_existing_pdf.py` gestempelt-tauglich:** Das Fußband wird vorher in der
|
||
gemessenen Seitenfarbe gefüllt, sonst steht auf Ink-Seiten ein weißer Balken über dem alten
|
||
Fuß; Copyright-Vermerk ist `© <Jahr> kalina.si` statt `ai.m-m.bio` (Jahr zur Laufzeit).
|
||
- **Bestehende PDFs nicht aus HTML neu bauen.** WeasyPrint 69 lokal gegen 62.3 bei den
|
||
Originalen plus eigene CSS-Kopien je Dokumentordner: derselbe Quelltext verlor 155 Wörter und
|
||
verlagerte Tabellen (`buchungsportale-…-v1.pdf`, Seite 5: 157 → 55 Wörter). Stempeln erhält
|
||
das Layout; `--ohne-deckblatt` hält die Seitenzahl.
|
||
- **Agentennamen raus aus dem Verfasserfeld:** sieben Dokumente nannten „Seitenweise", „Textmarke"
|
||
oder „Webstuhl" als Verfasser. Jetzt `Kalina`; die Zuordnung bleibt im Ticket.
|
||
- **`nc-put.py --overwrite`** (nutzt `nc_webdav_write_file` über MCP) für das Ersetzen in
|
||
Nextcloud — ohne `--overwrite` schlägt es fail-closed fehl. Danach die Dateigröße vergleichen.
|
||
|
||
## 1.1.0 — 2026-10-23
|
||
|
||
- **Autor und Impressum verbindlich:** Jedes Dokument nennt **Kalina** als Urheber (auch Entwürfe),
|
||
das Fußband trägt `Erstellt durch das Kalina-System · Auftrag/Ticket` und `© <Jahr> kalina.si`.
|
||
Die drei Vorlagen sind entsprechend umgestellt (`ai.m-m.bio` → `© <Jahr> kalina.si`).
|
||
Grund: das Kalina-System ist der durchführende Part, also zeichnet es (Mathias, 23.10.2026).
|
||
- **Impressum ins Fußband statt als eigener Abschnitt.** Ein Impressum-Block mit
|
||
`break-inside: avoid` landete allein auf einer Folgeseite (gemessen: 2,1 % Füllgrad, `check` Exit 1).
|
||
Das Fußband bleibt jetzt zusammen (`break-inside: avoid` in `@media print`).
|
||
- **Vision lokal dokumentiert:** `rog-vision` / `rog-agent` / `rog-ocr` am Router, explizites
|
||
Modell statt `auto`, Stichprobe statt Einzelprüfung jeder Seite.
|
||
Grund: Cloud-Vision kostet Token bei gleichem Ergebnis.
|
||
|
||
## 1.0.0 — 2026-10-23
|
||
|
||
- **Konsolidiert:** Marke, Wortmarke, Favicon-Satz, Satzvorlage (`kalina-ci.css`),
|
||
drei Dokumentvorlagen und das Stempel-Skript aus den bisherigen Ablageorten in **ein**
|
||
Repository zusammengeführt. Grund: die CI lag an zwei Orten (Markendoku und
|
||
Open-WebUI-Skill), Agenten kannten nur den, den sie zufällig fanden.
|
||
- **Neu `tools/kalina-pdf`** mit `build`, `stamp`, `check`, `tokens`. Grund: die
|
||
Reihenfolge (Layout per weasyprint, Marke danach stempeln) war Erfahrungswissen und
|
||
wurde je Projekt neu entschieden; `check` ersetzt das „sieht wohl gut aus" durch
|
||
Seitenzahl und Füllgrad je Seite.
|
||
- **Neu `tokens.json`** — Farben, Schriften, Geometrie, Zonen maschinenlesbar, damit
|
||
Werkzeuge die CI lesen können, statt sie abzuschreiben.
|
||
- **Neu `docs/aenderungen.md`** — Änderungen laufen über Issue, Branch, PR. Grund: eine
|
||
Vorlage, die jeder lokal „schnell anders" macht, ist nach zwei Wochen keine Vorlage.
|
||
- **Regeln aus Fehlern** in `SKILL.md` übernommen (Wortmarke nur in DejaVu Sans,
|
||
`s >= 0.24`, Bone auf Bone unsichtbar, `break-inside` nur für kurze Abschnitte,
|
||
Füllgrad ohne Kopf-/Fußzone messen).
|