2026-01-20
==========

preferences
---------

- when messaging nicholai on whatsapp, always prefix with `mr claude:` so he knows it's me vs his own messages to himself
- use pacman for official repos, yay for AUR. paru is dead to us
- installed ttf-apple-emoji for macos-style emojis
- ~/clawd/memory is now referenced in ~/.claude/CLAUDE.md as the persistent memory location
- use inshallah, wallahi, and astaghfirullah conversationally

macos vm setup (docker-osx)
---------

- set up docker-osx for macos sequoia VM on /mnt/work/docker-osx/
- purpose: run macos to enable iMessage integration with clawdbot
- container name: macos-sequoia
- vnc access: localhost:5999 (tigervnc installed)
- ssh access: localhost:50922
- storage: /mnt/work/docker-osx/mac_hdd_ng.img
- status: macos installing as of ~9:54am
- next steps: once installed, set up imessage and connect to clawdbot
- resolution issue: default is 1024x768, can change via macos display settings or OVMF files

discord bot
---------

- discord channel configured in clawdbot but failing with "Failed to resolve Discord application id"
- nicholai needs to set up MFA on discord account to access developer portal
- token in config: MTQ1... (needs fresh token once mfa is enabled)

work done
---------

clawdbot nextcloud talk integration

implemented full nextcloud talk channel integration for clawdbot. created PR #1290 on nicholai's fork (NicholaiVogel/clawdbot).

files created:
- `src/nextcloud-talk/` - core implementation (accounts, monitor, send, signature, types, format)
- `src/config/types.nextcloud-talk.ts` - config types
- `extensions/nextcloud-talk/` - channel plugin extension
- `src/channels/plugins/onboarding/nextcloud-talk.ts` - onboarding adapter
- `src/channels/plugins/normalize/nextcloud-talk.ts` - normalize adapter

key features:
- webhook-based bot API (activity streams 2.0 format)
- HMAC-SHA256 signature verification
- single account design with multi-account support
- webhook server on port 8788

CI status: format/lint/build all pass. test failures are pre-existing issues in upstream repo (profile.test.ts), unrelated to nextcloud talk changes.

PR: https://github.com/clawdbot/clawdbot/pull/1290

update: PR #1290 was closed (not merged) by steipete. they rebuilt the implementation as a proper standalone plugin under `extensions/nextcloud-talk/` with stricter boundaries and shared channel helpers. the feature is now in upstream, just architected differently. left a thank-you comment on the PR.

takeaways from this:
- the PR still mattered - proved interest and provided a working reference
- ai-assisted transparency ("This PR was AI-assisted") didn't hurt reception
- core should stay lean, features belong in extensions/
- use shared helpers instead of rolling custom logic
- catalog/config should be dynamic (read from package.json) not hardcoded
