auto-commit 2026-01-30: learnings, tools notes, daily memory
This commit is contained in:
@@ -1,91 +1,55 @@
|
|||||||
# Learnings
|
# 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
|
**Datum:** 2026-01-29
|
||||||
**Areas**: frontend | backend | infra | tests | docs | config
|
**Kategorie:** Security / Browser Automation
|
||||||
**Statuses**: pending | in_progress | resolved | wont_fix | promoted | promoted_to_skill
|
**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 |
|
### Beispiel
|
||||||
|--------|---------|
|
|
||||||
| `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
|
|
||||||
```
|
```
|
||||||
|
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
|
**Datum:** 2026-01-26
|
||||||
**Priority**: high
|
**Kategorie:** Cron / Messaging
|
||||||
**Status**: promoted
|
|
||||||
**Promoted**: TOOLS.md, AGENTS.md
|
|
||||||
**Area**: config
|
|
||||||
|
|
||||||
### Summary
|
### Lösung
|
||||||
Proaktive Cron-Nachrichten an Telegram erfordern `sessionTarget: "isolated"` + `deliver: true`
|
Für Telegram/WhatsApp/etc. Zustellung bei Cron-Jobs:
|
||||||
|
- `--session isolated` (nicht main)
|
||||||
### Details
|
- `--message "..."` (nicht system-event)
|
||||||
Bei der Erstellung eines Cron-Jobs für morgendliche News wurde zunächst folgende Konfiguration verwendet:
|
- `--deliver --channel telegram --to <id>`
|
||||||
```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
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|||||||
23
TOOLS.md
23
TOOLS.md
@@ -1,5 +1,28 @@
|
|||||||
# TOOLS.md - Local Notes
|
# 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)
|
## Cron-Jobs (proaktive Nachrichten)
|
||||||
|
|
||||||
Für Telegram/WhatsApp/etc. Zustellung:
|
Für Telegram/WhatsApp/etc. Zustellung:
|
||||||
|
|||||||
39
memory/2026-01-29.md
Normal file
39
memory/2026-01-29.md
Normal 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)
|
||||||
Reference in New Issue
Block a user