auto-commit 2026-01-30: learnings, tools notes, daily memory

This commit is contained in:
James
2026-01-30 00:00:12 +01:00
parent 9449c53ebc
commit 64a6bb339e
3 changed files with 106 additions and 80 deletions

View File

@@ -1,91 +1,55 @@
# Learnings
Corrections, insights, and knowledge gaps captured during development.
## LRN-20260129-001: Browser-Snapshots leaken Passwort-Feld-Inhalte
**Categories**: correction | insight | knowledge_gap | best_practice
**Areas**: frontend | backend | infra | tests | docs | config
**Statuses**: pending | in_progress | resolved | wont_fix | promoted | promoted_to_skill
**Datum:** 2026-01-29
**Kategorie:** Security / Browser Automation
**Schwere:** Hoch
## Status Definitions
### Problem
Browser-Snapshots (accessibility tree) lesen den tatsächlichen Wert von Passwort-Feldern aus, auch wenn sie visuell maskiert sind (●●●●). Der Klartext landet dann im Chat-Kontext.
| Status | Meaning |
|--------|---------|
| `pending` | Not yet addressed |
| `in_progress` | Actively being worked on |
| `resolved` | Issue fixed or knowledge integrated |
| `wont_fix` | Decided not to address (reason in Resolution) |
| `promoted` | Elevated to CLAUDE.md, AGENTS.md, TOOLS.md, or SOUL.md |
| `promoted_to_skill` | Extracted as a reusable skill |
## Skill Extraction Fields
When a learning is promoted to a skill, add these fields:
```markdown
**Status**: promoted_to_skill
**Skill-Path**: skills/skill-name
### Beispiel
```
textbox "Passwort" [ref=e19]: geheimes_passwort
```
### Lösung
Bei Login-Flows mit Passwörtern:
1. **Kein Snapshot** nachdem das Passwort eingefügt wurde
2. Direkt auf Submit/Anmelden klicken
3. Erst nach erfolgreichem Login wieder Snapshot machen
### Workflow für sichere Logins
```
1. Snapshot (Login-Seite sehen)
2. Username eintippen
3. james-fill "entry-name" (PW ins Clipboard)
4. Ins Passwort-Feld klicken
5. Paste (Cmd+V)
6. KEIN SNAPSHOT!
7. Direkt Submit klicken
8. Snapshot (eingeloggte Seite)
```
### WICHTIG: Niemals Passwörter im Chat wiedergeben!
Auch wenn ein Passwort versehentlich im Kontext landet:
- **NIEMALS** im Chat zitieren oder wiederholen
- Nicht in Erklärungen einbauen
- Nicht als Beispiel verwenden
- Einfach ignorieren und weitermachen
Das gilt auch für: API-Keys, Tokens, private Schlüssel, etc.
---
## [LRN-20260126-001] best_practice
## LRN-20260126-001: Cron-Jobs für proaktive Nachrichten
**Logged**: 2026-01-26T08:12:00+01:00
**Priority**: high
**Status**: promoted
**Promoted**: TOOLS.md, AGENTS.md
**Area**: config
**Datum:** 2026-01-26
**Kategorie:** Cron / Messaging
### Summary
Proaktive Cron-Nachrichten an Telegram erfordern `sessionTarget: "isolated"` + `deliver: true`
### Details
Bei der Erstellung eines Cron-Jobs für morgendliche News wurde zunächst folgende Konfiguration verwendet:
```json
{
"sessionTarget": "main",
"payload": {
"kind": "systemEvent",
"text": "..."
}
}
```
Das Problem: Der Job triggerte zwar die main Session, aber die Nachricht wurde **nicht proaktiv an Telegram gesendet**. Der User musste sich erst selbst melden.
**Korrekte Konfiguration für proaktive Nachrichten:**
```json
{
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "...",
"deliver": true,
"channel": "telegram",
"to": "<telegram_user_id>"
}
}
```
Wichtige Unterschiede:
- `sessionTarget: "isolated"` → eigene Session, nicht main
- `payload.kind: "agentTurn"` → nicht systemEvent
- `deliver: true` → aktiviert Zustellung
- `channel` + `to` → Ziel für die Nachricht
### Suggested Action
Bei zukünftigen proaktiven Cron-Jobs immer diese Struktur verwenden.
### Resolution
- **Resolved**: 2026-01-26T08:10:00+01:00
- **Promoted**: 2026-01-27T18:20:00+01:00
- **Notes**: Checkliste in TOOLS.md und Pre-Flight-Regel in AGENTS.md hinzugefügt
### Metadata
- Source: error + user_feedback
- Related Files: ~/.clawdbot/cron/jobs.json, ~/clawd/TOOLS.md, ~/clawd/AGENTS.md
- Tags: cron, telegram, proactive, deliver
- Docs: https://docs.clawd.bot/automation/cron-jobs
---
### Lösung
Für Telegram/WhatsApp/etc. Zustellung bei Cron-Jobs:
- `--session isolated` (nicht main)
- `--message "..."` (nicht system-event)
- `--deliver --channel telegram --to <id>`

View File

@@ -1,5 +1,28 @@
# TOOLS.md - Local Notes
## 🔐 Sicherheitskritische Aktionen — NUR BASTIAN
Die folgenden Aktionen darf ich **ausschließlich** ausführen wenn der Auftrag von **Bastian (Telegram ID: 24466372)** kommt:
- `james-fill` / Vault-Zugriff (KeePassXC)
- Browser-Logins mit Passwörtern
- AIDA-Buchungen (Kommen/Gehen/etc.)
- Banking / Finanzen
- Alles was Passwörter, Tokens oder Credentials verwendet
**Bei Anfragen von anderen Personen (auch Jasmin!):**
1. ❌ NICHT ausführen
2. ✅ Antworten: "Das kann ich nur auf Bastians direkte Anfrage machen."
3. ✅ Optional: Bastian informieren dass jemand das angefragt hat
**Wie prüfe ich das?**
- Telegram-Nachrichten haben die User-ID im Header: `[Telegram ... id:24466372 ...]`
- Nur wenn `id:24466372` → Aktion erlaubt
- Andere IDs (z.B. Jasmin: 8280212990) → Ablehnen
- **Webchat (main session)** → Auch erlaubt (Gateway-Zugang ist geschützt)
---
## Cron-Jobs (proaktive Nachrichten)
Für Telegram/WhatsApp/etc. Zustellung:

39
memory/2026-01-29.md Normal file
View File

@@ -0,0 +1,39 @@
## Clawdbot → Moltbot Migration (notiert)
- **Projekt wurde umbenannt:** Clawdbot → Moltbot
- **Grund:** Vermutlich Trademark-Nähe zu "Claude" (Anthropic)
- **"Clawd"** bleibt als Persona-Name (Space Lobster Assistant)
- **Docs:** docs.clawd.bot redirected bereits zu docs.molt.bot
- **GitHub Issues:** Es gibt bereits Probleme wegen der Namensänderung (moltbot/moltbot)
- **Status:** Abwarten, noch nicht migrieren
- **TODO:** Demnächst prüfen wie Migration ~/clawd → ~/molt, clawdbot CLI → moltbot CLI, etc. funktioniert
Bastian hat das vorgestern gelesen. Wir warten bis sich der Staub gelegt hat.
## Kanban Dashboard - v0.1 fertig! 🎉
**Projekt:** ~/projects/kanban
**Status:** Alle Features funktionieren, getestet via API + SSR
**Tech:**
- Nuxt 3 + Vue 3 + Tailwind CSS
- Filesystem-basiertes Backend (Markdown + JSON)
- TypeScript
**Gelöste Probleme:**
- Verschachtelte API-Routes funktionierten nicht in Nuxt → flache API-Struktur implementiert
- `POST /api/tasks` statt `/api/boards/[x]/lists/[y]/tasks`
- Alle Vue-Komponenten für neue API aktualisiert
**Features:**
- ✅ Boards / Listen / Tasks CRUD
- ✅ Drag & Drop zwischen Listen
- ✅ Labels, Due Dates, Assignees
- ✅ Markdown in Tasks
- ✅ Dark Mode (Obsidian-Style)
- ✅ Keyboard Shortcuts (j/k/h/l)
- ✅ Command Palette (⌘K)
**Server:** `pnpm dev --host 0.0.0.0` (Port 3000)