# Session Summary: Nextcloud Talk Assistant + Workflow Foundation

## Date

2026-05-14

## Main Outcomes

### Nextcloud Talk assistant bridge

Built and deployed a safe v1 bridge so Deeso can interact with the assistant through Nextcloud Talk.

Current deployment:
- Host: `nextcloud` VM / `192.168.0.110`
- SSH user: `piagent`
- Working SSH key from repo: `.ssh/piagent_homelab`
- Service: `nextcloud-talk-assistant.service`
- Code on VM: `/opt/nextcloud-talk-assistant/nextcloud_talk_assistant.py`
- Config on VM: `/etc/nextcloud-talk-assistant/config.json`
- Secret env on VM: `/etc/nextcloud-talk-assistant/env`
- State: `/var/lib/nextcloud-talk-assistant/state.json`
- Applied log: `/var/lib/nextcloud-talk-assistant/applied-drafts.jsonl`
- Voice files/transcripts: `/var/lib/nextcloud-talk-assistant/voice/`
- Logs: `/var/log/nextcloud-talk-assistant/bridge.log` and `journalctl -u nextcloud-talk-assistant`

Capabilities now live:
- Talk conversation between `deeso` and `piagent` exists.
- Text commands and simple natural-language intents work.
- Voice notes are downloaded from Talk via WebDAV and transcribed locally using `faster-whisper`.
- Pending draft flow exists: `approve`, `edit: ...`, `discard`, `summary`.
- Draft summaries are repeated when a pending draft blocks a new command.
- Approved captures/tickets/project notes save to `Assistant/capture.md` in `piagent` Nextcloud Files.
- Approved reminders create VTODO objects in the `assistant-reminders` calendar.
- Shell/admin command execution from chat is intentionally not implemented.

Important implementation notes:
- Talk text/chat uses Nextcloud HTTP port `8080`; from Tailscale use `http://100.76.27.77:8080`.
- Talk voice messages are `messageType: voice-message` with audio metadata under `messageParameters.file`.
- `/f/<id>` links return HTML for the service account; WebDAV path under `piagent` files returns the actual audio.
- Ubuntu package `python3-whisper` is Graphite Whisper, not OpenAI Whisper; it was removed. Correct STT uses `faster-whisper` in `/opt/nextcloud-talk-assistant/venv`.
- The `tiny` model is preloaded under `/var/lib/nextcloud-talk-assistant`.

Verification performed:
- `nextcloud-talk-assistant.service` active after deployment/restarts.
- Text `help` responded in Talk.
- Voice transcript example: `Remind me to test voice notes tomorrow.`
- User reported that approved reminder flow appeared to work.

Rollback:
```sh
sudo systemctl stop nextcloud-talk-assistant
sudo systemctl disable nextcloud-talk-assistant
```
Then revoke the `piagent` app password in Nextcloud. Optional cleanup: remove `/opt/nextcloud-talk-assistant`, `/etc/nextcloud-talk-assistant`, `/var/lib/nextcloud-talk-assistant`, `/var/log/nextcloud-talk-assistant`, and the systemd unit.

### Repo/project workflow

Initialized git in `/home/deeso/projects/nimrod` and committed current state.

Key commits:
- `72c5b31 Initialize assistant operations workspace`
- `b524bf0 Ignore Python cache files`
- `6a095d8 Document professional development workflow goals`
- `2b9f6e2 Define assistant role architecture`
- `145250b Integrate agent reference architecture`

Git hygiene decision:
- Use git workflow for repo changes.
- Check status before/after work.
- Commit logical units with meaningful messages.
- Avoid committing secrets/generated cache.

Server change logging:
- Created `docs/server-change-log.md`.
- Logged the Nextcloud Talk assistant bridge server changes.

### Professional development training

User wants to learn professional software development workflows with the goal of becoming employable.

Durable docs:
- `docs/professional-development-workflow.md`
- `AGENTS.md` updated with training expectations.

Operating model:
- Clarify requirements and acceptance criteria.
- Use tickets/specs.
- Make small reviewable changes.
- Run tests/checks.
- Review diffs.
- Commit.
- Log server changes.
- Explain workflow concepts as we go, without overwhelming the user.

### Role / multi-agent architecture

User added prior agent designs under `info/agents/` plus `info/Enterprise Agentic Engineering.md`.

Integrated these into:
- `docs/assistant-role-architecture.md`
- `docs/agentic-engineering-lite.md`
- `AGENTS.md`

Current named role map:
- Nimrod — primary assistant/orchestrator
- Shepard — cross-agent coordinator
- Lumbergh — project manager
- Ada — software developer / professional software coach
- Bishop — DevOps/sysadmin
- Heimdall — security/network auditor
- Marvin — Obsidian/knowledge librarian
- CASE — personal projects tracker
- Oracle — learning coach
- EDI — agent/runtime/platform manager
- GERTY — Home Assistant/home automation candidate
- D&D GM Assistant — creative/campaign support

Enterprise agentic engineering concepts adopted lightly:
- plans over prompts
- constraints/scope/tool boundaries
- verification gates
- persistent state/change logs
- autonomy levels
- observability
- ownership
- stop/rollback paths

## Active/Important Tickets and Specs

Primary Talk ticket:
- `tickets/active/2026-05-14-nextcloud-talk-assistant-chat.md`

Talk spec:
- `projects/nextcloud/talk-assistant-spec.md`

Runbook:
- `runbooks/nextcloud-talk-assistant-bridge.md`

Server change log:
- `docs/server-change-log.md`

## Next Recommended Work

1. Verify approved reminder appears correctly in Nextcloud Tasks/Calendar UI.
2. Improve reminder parsing/destination choice:
   - timers
   - due dates/times
   - Tasks vs Calendar selection
3. Add better capture/ticket/project-note routing instead of everything going to `Assistant/capture.md`.
4. Decide if Talk assistant should call a real LLM backend for general chat.
5. Add tests for the bridge parser and draft flow.
6. Consider moving bridge deployment to a more package-like process or repo-backed deploy script.
7. Continue using git + server change logs for all substantial changes.

## Fresh Context Startup Notes

On fresh context:
1. Read `AGENTS.md`.
2. Check `git status`.
3. For role architecture, read `docs/assistant-role-architecture.md` and `docs/agentic-engineering-lite.md` if relevant.
4. For Talk bridge work, read:
   - `tickets/active/2026-05-14-nextcloud-talk-assistant-chat.md`
   - `projects/nextcloud/talk-assistant-spec.md`
   - `runbooks/nextcloud-talk-assistant-bridge.md`
   - `docs/server-change-log.md`
5. Use role header for substantial work, e.g. `Role: Bishop + Ada`.
