Commit graph

152 commits

Author SHA1 Message Date
fds2610-bot
b51a0edd8e PR-Tickets: Streifen um 45 Grad gedreht
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:45:35 +02:00
fds2610-bot
d0d0b87af9 Aufnahmeseite: nach dem Upload "gespeichert" statt "verworfen"
Nur der Klick auf Verwerfen zeigt noch "Aufnahme verworfen."

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:43:52 +02:00
fds2610-bot
ab2e3c8b1c CHANGELOG.md anlegen, Eintrag fuer Issue #108 ergaenzen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-01 13:40:47 +02:00
fds2610-bot
72bad859f1 Reload-Countdown laedt die Buero-Visualisierung bei 0 tatsaechlich neu
Bisher zaehlte der Countdown im Header nur rein kosmetisch herunter, ohne
selbst etwas neu zu laden. Ein dauerhaft offener Tab (z.B. auf einer
Monitor-Wand) blieb dadurch auf unbestimmte Zeit bei der beim Laden
geholten JS-Version haengen, auch wenn ein Fix laengst gemergt und per
Auto-Update deployt war - so blieben z.B. die in PR #106 entfernten
KPI-Graphen auf bereits offenen Tabs weiter sichtbar (Issue #108).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-01 13:39:56 +02:00
fds2610
b60a36832a Merge pull request 'Voice-Bot: Zustand transcribing haelt den Bildschirm aktiv' (#109) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/109
2026-10-01 13:34:44 +02:00
fds2610-bot
dbeaf54801 Voice-Bot: Zustand transcribing haelt den Bildschirm aktiv
Waehrend der Transkription keine idle-Aktivitaeten (Kaffee, Zeitung).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:34:14 +02:00
fds2610
be34718cdb Merge pull request 'KPI "Hooks heute", Update-Event des Monitorings, PR-Flag bestehender Tickets' (#107) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/107
2026-10-01 12:53:02 +02:00
fds2610-bot
65f6bc6c2e Update-Event des Monitorings und PR-Flag bestehender Tickets
update.sh meldet nach dem Neustart ein Event (POST /api/v1/events/system, Admin-Key).
upsertPullRequest markiert bereits vorhandene Tickets als Pull Request, damit sie den
/pulls/-Link bekommen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 12:48:10 +02:00
fds2610-bot
fb0baff3df KPI "Hooks heute": nur die heute empfangenen Hooks zaehlen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:32:41 +02:00
fds2610
ca6772f8c0 Merge pull request 'KPIs: keine Graphen mehr in Kachel und Detail-Modal' (#106) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/106
2026-10-01 11:30:42 +02:00
fds2610-bot
266432c7df KPIs: keine Graphen mehr in Kachel und Detail-Modal
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:29:56 +02:00
fds2610
f4497400bc Merge pull request 'Offene PRs als Tickets in der Spalte Fertig' (#105) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/105
2026-10-01 11:28:18 +02:00
fds2610-bot
f14d851410 Offene PRs als Tickets in der Spalte Fertig darstellen
PRs werden beim Sync als Tickets (is_pull_request) angelegt, mit
Projektfarbe, schwarzen Querstreifen und PR-Nummer; im Spalten-Modal
mit Link auf den PR.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:27:27 +02:00
fds2610
3b357be460 Merge pull request 'Update-Fallback: Deploy-Check, wenn die Zahl offener PRs sinkt' (#104) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/104
2026-10-01 11:20:13 +02:00
fds2610-bot
9c87840253 Update-Fallback: Deploy-Check, wenn die Zahl offener PRs sinkt
Der sync-Container legt api/data/deploy-requested an, sobald die Zahl offener
PRs sinkt. deploy-webhook.py prueft dann per git fetch, ob origin/main vor dem
lokalen Stand liegt, und startet nur dann update.sh. Fallback fuer einen
verpassten Push-Webhook ohne zusaetzliche Codeberg-Verbindung.

Ausloeser waehrend eines laufenden Updates werden nicht mehr verworfen,
sondern loesen einen Folgelauf aus.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 08:27:39 +02:00
fds2610
ed0652ddd5 Merge pull request 'Ticketliste im Spalten-Modal: neuestes Ticket zuerst' (#103) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/103
2026-10-01 07:55:53 +02:00
fds2610-bot
dc311f2862 Ticketliste im Spalten-Modal: neuestes Ticket zuerst
Die Spalten-Ansicht selbst braucht weiterhin "aeltestes zuerst" fuer
die Board-Regel (aelteste 4 einzeln, Rest als Stapel, F3), daher wird
die Liste nur fuer die Modal-Ausgabe (Klick auf eine Kanban-Spalte)
umgedreht.

Schließt #102

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-01 07:52:07 +02:00
fds2610
8f6af53bbd Merge pull request 'Eventanzeige: Events im Modal auf den aktuellen Tag filtern' (#101) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/101
2026-10-01 07:33:54 +02:00
fds2610-bot
4eb80f603d Eventanzeige: Events im Modal auf den aktuellen Tag filtern
Das Event-Modal zeigte bisher die volle vom Server gelieferte Liste
(bis zu 200 Events) ungefiltert an und war dadurch schnell unuebersichtlich.
filterEventsForToday() schraenkt die Anzeige auf Events des aktuellen
Kalendertags (lokale Zeitzone, wie formatEventTime()) ein.

Schliesst #100

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-01 07:28:16 +02:00
fds2610
a62bb384af Merge pull request 'Buero-Szene: kaputte Referenz auf umbenannte Variable behoben' (#99) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/99
2026-09-23 12:55:47 +02:00
fds2610-bot
d2dc7e1414 Buero-Szene: kaputte Referenz auf umbenannte Variable behoben
updateAgentsLayer() referenzierte nach dem Voice-Bot-Umbau (be1d613) noch
isRealAgent, obwohl die Variable in isVoiceBot umbenannt wurde. Das warf bei
jedem Rendern und jedem Ticket-getriebenen Board-Besuch einen ReferenceError,
der die Aktualisierung der Agenten-Schicht abbrach - dadurch blieb der PO
unsichtbar und Ticket-Statuswechsel wurden nicht mehr visuell nachvollzogen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 12:43:01 +02:00
fds2610
c321260172 Merge pull request 'Buero-Visualisierung: PO-Agent unabhaengig von API-Erreichbarkeit anzeigen' (#98) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/98
2026-09-23 11:48:22 +02:00
fds2610-bot
a7eb91ac40 Buero-Visualisierung: PO-Agent unabhaengig von API-Erreichbarkeit immer anzeigen
Der PO laeuft auf dem Monitoring-Server selbst und repraesentiert dessen
interne Prozesse. Bisher wurde er als "abwesend" gezeichnet, sobald der
Browser die API kurzzeitig nicht erreichen konnte (isLive=false) - obwohl
der Server und seine Prozesse in diesem Fall weiterliefen. Der feste
PO-Platz zeigt den PO jetzt unabhaengig von isLive.

Schliesst #97

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 09:00:28 +02:00
fds2610
6a35712d66 Merge pull request 'Buero-Visualisierung: irrefuehrenden "API nicht erreichbar"-Banner nach erfolgreichem Live-Fetch beheben' (#96) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/96
2026-09-23 08:50:14 +02:00
fds2610-bot
a93c940680 Buero-Visualisierung: Render-Fehler nach erfolgreichem Live-Fetch nicht mehr als "API nicht erreichbar" melden
refresh() zeigte den roten Banner bisher fuer jeden Fehler im gesamten try-Block, auch wenn
loadLiveData() laengst erfolgreich war und erst das anschliessende Verarbeiten/Zeichnen der
Live-Daten scheiterte (Issue #94: Produktion meldete "API nicht erreichbar", obwohl ein
direkter curl-Aufruf die API nachweislich erreichte). Jetzt entscheidet ausschliesslich der
Erfolg von loadLiveData() ueber Banner/Demo-Fallback; ein spaeterer Fehler beim Verarbeiten
wird nur noch geloggt, ohne die Erreichbarkeit faelschlich zu verneinen.

Getestet: composer test (262 Tests) und npm test/frontend (98 Tests) in Docker, beide gruen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 08:48:58 +02:00
fds2610
18990c2d80 Merge pull request 'Update-Sicherheit: Tests vor Dienst-Neustart, API-Banner uebersteht Render-Fehler' (#95) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/95
2026-09-23 08:28:44 +02:00
fds2610-bot
172b863c4f Update-Sicherheit: Tests vor Dienst-Neustart, API-Banner uebersteht Render-Fehler
update.sh startete api/web/sync bereits neu, bevor die Testsuiten liefen - schlugen sie
danach fehl, brach das Skript per set -e ab, aber die Produktion lief bereits mit dem
fehlerhaften Stand weiter. deploy-webhook.py meldet einen solchen Abbruch nirgends aktiv,
nur still im Log - ein Update konnte so unbemerkt eine kaputte Version live schalten.

Zusaetzlich: setApiBanner(true) steht jetzt in einem eigenen finally im Demo-Fallback von
boot()/refresh() - ein Fehler beim Neuzeichnen der Szene darf nicht mehr verhindern, dass
der "API nicht erreichbar"-Banner erscheint.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 22:29:40 +02:00
fds2610
191baa767c Merge pull request 'Kanban-Board: Ticket-Nummer auf den Zetteln' (#92) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/92
2026-09-21 15:10:49 +02:00
fds2610-bot
9ce938c45b Kanban-Board: Ticket-Nummer auf den einzelnen Zetteln anzeigen (nicht am Stapel)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 15:05:42 +02:00
fds2610
806fcdfb43 Merge pull request 'Sprachaufnahmen: eine Warteschlange für alle statt Zuweisung an Agenten' (#90) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/90
2026-09-21 13:42:57 +02:00
fds2610-bot
be1d61350b Sprachaufnahmen: eine Warteschlange fuer alle statt Zuweisung an Agenten
In Produktion lag eine Sprachnachricht unbearbeitet in der Warteschlange des
OPs-Agenten: aufgenommen wurde ueber seine Figur, abgeholt wird aber nur von
der Maschine, auf der whisper.cpp laeuft. Die Agent-Zuweisung hat eine
Zustaendigkeit vorgetaeuscht, die es nicht gibt - welches Ticket in welchem
Repo entsteht, entscheidet der abholende Bot anhand des Transkripts.

- Migration 007: voice_recordings ohne agent_id. Bestehende Aufnahmen behalten
  ihren Status, die haengengebliebene wandert damit in die globale Warteschlange.
- Migration 008: neue Agenten-Rolle "voice" fuer den Voice-Bot.
- Endpunkte ohne Agent im Pfad: POST/GET /api/v1/recordings,
  GET /api/v1/recordings/{id}/audio, PATCH /api/v1/recordings/{id} - und ohne
  Ownership-Check, an dem die Abholung mit fremdem Key bisher scheiterte.
- GET /api/v1/agents traegt pending_recordings jetzt neben der Liste statt an
  jedem Agenten.
- Frontend: nur noch die Figur des Voice-Bots verlinkt auf record.html (ohne
  ?agent=), Zaehler und Mikrofon-Deko sitzen an seinem Schreibtisch. Die
  Aufnahmeseite nennt den abholenden Bot und bittet darum, das Projekt am
  Anfang der Aufnahme zu nennen.

Die Bot-Seite (bin/voice-recording-agent.sh) folgt in fds2610/Agent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 13:41:47 +02:00
fds2610
2818585876 Merge pull request 'Ticket-Details: Repo und Ticket-# in der Überschrift, Beschreibung auf 10 Zeilen kürzen' (#89) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/89
2026-09-21 13:06:51 +02:00
fds2610-bot
5a00a668ec Ticket-Details: Repo und klickbare Ticket-Nummer in der Ueberschrift, Beschreibung auf 10 Zeilen gekuerzt
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 13:05:50 +02:00
fds2610
32e405252b Merge pull request 'OPs-Agent repariert seine Praesenz nach dem naechsten Update selbst' (#87) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/87
2026-09-13 21:49:12 +02:00
fds2610-bot
79d97985f3 OPs-Agent repariert seine Praesenz nach dem naechsten Update selbst
Der OPs-Agent war seit seiner Registrierung am 31.08. nie praesent: seine
monitor-api.conf stammt von vor Issue #75 und kennt MONITOR_AGENT_ID nicht,
report_activity() in check_fds.sh meldete deshalb stillschweigend nichts -
waehrend die Systemmeldungen mit demselben Key weiter ankamen.

- API: jeder mit X-Api-Key authentifizierte Request frischt last_seen_at auf
  (AgentRepository::touch(), Zustand/Ticket bleiben). Greift auch, wenn auf dem
  Ping-Rechner noch ein aelteres check_fds.sh liegt.
- API: neuer Endpunkt GET /api/v1/agents/me liefert den Agenten zum Key.
- check_fds.sh: fehlt MONITOR_AGENT_ID, wird sie ueber /agents/me ermittelt
  und in monitor-api.conf nachgetragen (ohne Admin-Key).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F5rnDxZCwLYiEVyfrAvsAA
2026-09-13 21:47:32 +02:00
fds2610
42fb7fbe08 Merge pull request 'Sprachaufnahme: Agent-Kachel, Aufnahme-Webseite und API-Warteschlange' (#86) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/86
2026-09-04 09:03:59 +02:00
fds2610-bot
9426406ee5 Sprachaufnahme: Agent-Kachel, Aufnahme-Webseite und API-Warteschlange
Setzt den in #84 skizzierten Workflow um: record.html nimmt im
Handy-Browser eine Sprachnotiz per MediaRecorder auf und laedt sie
unauthentifiziert zu POST /api/v1/agents/{id}/recordings hoch. Ein
Klick auf die Personen-Figur jedes registrierten Agenten in der
Buero-Visualisierung verlinkt dorthin, ein Zaehler am Schreibtisch
zeigt offene Aufnahmen. Der Agent selbst holt seine Warteschlange
ueber die bestehenden Api-Key-authentifizierten Endpunkte ab
(GET .../recordings, GET /recordings/{id}/audio) und markiert eine
Aufnahme nach der Transkription per PATCH als erledigt - die
eigentliche Transkription (whisper.cpp/faster-whisper) bleibt
agent-seitig, siehe fds2610/Agent#17.

Schliesst #85
2026-09-03 21:26:28 +02:00
fds2610
72095095c5 Merge pull request 'Systemkacheln untereinander mit Servernamen daneben' (#83) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/83
2026-09-02 16:11:34 +02:00
fds2610-bot
6a7e9cec22 Systemkacheln untereinander mit Servernamen daneben
Das dreispaltige Kachelraster im System-Monitor wird durch eine einspaltige
Liste ersetzt: halb so grosse Kacheln, rechts daneben der Servername. Der Name
wird auf die verbleibende Breite gekuerzt, der ungekuerzte Name bleibt als
<title>-Tooltip erhalten (Issue #73).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GQ56Rs4sxgwwBjowtThpr
2026-09-02 16:10:40 +02:00
fds2610
8873b610ad Merge pull request 'Systemkacheln zeigen Haken bzw. X statt zweier gleicher LEDs' (#82) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/82
2026-09-02 16:01:04 +02:00
fds2610-bot
1181478d7d Systemkacheln zeigen Haken bzw. X statt zweier gleicher LEDs
Jede Kachel trug zwei Rack-Balken mit je einer LED. Beide LEDs hingen an
derselben Statusklasse der Kachelgruppe und zeigten damit immer dasselbe -
zwei gruene Punkte pro Server ohne zusaetzliche Aussage.

Stattdessen jetzt ein Symbol pro Kachel: gruener Haken bei "ok", rotes X
bei "error" (mehr kennt SystemRepository::STATUSES nicht). Gezeichnet als
Pfad statt als Textglyphe, damit eine fehlende Schriftart auf dem
Wandmonitor keine leere Kachel ergibt, und ueber die volle Kachelflaeche
skaliert - seit Issue #73 steht der Servername im Tooltip, die Flaeche ist
also frei.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GQ56Rs4sxgwwBjowtThpr
2026-09-02 15:59:32 +02:00
fds2610
1c4535821d Merge pull request 'Kaffeetasse: verbliebenen weissen Kreis entfernt und Icon zentriert' (#81) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/81
2026-09-02 15:56:58 +02:00
fds2610-bot
59083e0ae0 Kaffeetasse: verbliebenen weissen Kreis entfernt und Icon zentriert
Schliesst #79
2026-09-02 15:55:10 +02:00
fds2610
20e78fe028 Merge pull request 'Kaffeetasse: ueberarbeitetes Design in der Kaffee-Ecke' (#80) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/80
2026-09-02 15:43:04 +02:00
fds2610-bot
de90a7d171 Kaffeetasse: zwei weisse Kreise durch eine zentrierte, doppelt so grosse Tasse ersetzt
Schliesst #79
2026-09-02 15:40:57 +02:00
fds2610
f2fc2bc2e0 Merge pull request 'Entwickler-Agent laeuft sichtbar zum Board bei in_arbeit-Wechseln' (#78) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/78
2026-09-02 14:51:45 +02:00
fds2610-bot
2dbdd9ceac Entwickler-Agent laeuft jetzt sichtbar zum Board bei in_arbeit-Wechseln
Bisher meldeten Agenten walking_to_board/interacting_with_board fuer
Ticket-Uebernahmen faktisch nie, wodurch das Ticket ohne sichtbaren
Board-Besuch die Spalte wechselte. office-render.js taktet den Besuch
jetzt selbst (analog zu PO-/Tuerbesuchen): der zustaendige Agent laeuft
vom eigenen (dann leeren) Schreibtisch zum Board, verschiebt dort
sichtbar das Ticket und laeuft zurueck. Eine echte Meldung des Agenten
(walking_to_board/interacting_with_board) hat weiterhin Vorrang und
unterdrueckt den selbst getakteten Besuch.

Schliesst #76
2026-09-02 12:57:03 +02:00
fds2610
23b2387a8a Merge pull request 'OPs-Agent bleibt in der Praesenz: check_fds.sh meldet working/idle' (#77) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/77
2026-09-02 12:50:20 +02:00
fds2610-bot
51c6a7b648 OPs-Agent bleibt in der Praesenz: check_fds.sh meldet working/idle
check_fds.sh rief last_seen_at des OPs-Agenten nie an - der Agent fiel zehn
Minuten nach seiner Registrierung dauerhaft vom Schreibtisch, obwohl der
Ping-Check normal weiterlief. Das Skript meldet jetzt zu Beginn "working" und
am Ende (auch bei einem fruehen Abbruch, per trap) "idle" per
POST /api/v1/agents/{id}/activity, analog zum Cron-Skript des
Entwickler-Agenten. Fehler dabei werden nur protokolliert, nicht fatal.

Dafuer braucht monitor-api.conf zusaetzlich MONITOR_AGENT_ID:
register-ops-agent.sh schreibt sie bei einer Neuregistrierung mit und
traegt sie bei einer bestehenden, aber noch unmigrierten Datei ohne
Neuregistrierung nach.

Schliesst #75.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-02 12:49:34 +02:00
fds2610
d10c999542 Merge pull request 'Servernamen im System-Monitor nur noch als Tooltip statt ueberlappend' (#74) from fds2610-bot/monitor:main into main
Reviewed-on: https://codeberg.org/fds2610/monitor/pulls/74
2026-09-02 12:35:12 +02:00