clawdie-ai/doc/SESSION-HANDOFF-2026-04-18.md
Clawdie AI a521ec77ff docs: comprehensive doc audit — update 16 files for consistency with codebase
Systematic review of all doc/, docs/internal/, docs/public/, ARCHITECTURE.md,
and README.md against recent codebase changes. 16 files updated:

Cross-cutting fixes (multiple files):
- Model references: anthropic/claude-3-5-sonnet → zai/glm-5-turbo (4 files)
- Port references: hardcoded 3100 → CONTROLPLANE_API_PORT (3 files)
- Skills mechanism: --no-skills + --append-system-prompt + skills_search (6 files)
- CONTROLPLANE_SHARED_SECRET: documented in security, architecture, install (5 files)
- Prompt guardrails: AGENT_MAX_INBOUND_CHARS etc. added to 3 files
- controlplane is NOT a jail — runs on host (3 files corrected)
- git jail added to layouts and IP tables (3 files)
- npm run → just (2 files)

Specific fixes:
- .env.example: AGENT_SESSION_MAX_BYTES session rollover hint
- README.md: fix IP layout (git=.6 not .4), add run-*.sh generation note
- ARCHITECTURE.md: add config vars, recipe count update, --no-skills
- doc/CONTROLPLANE-AGENT-ROLES.md: fix model, remove deleted file ref
- doc/CONTROLPLANE-ARCHITECTURE.md: port params, security, guardrails section
- doc/CONTROLPLANE-MESSAGE-CONTRACT.md: auth header, skills catalog rewrite
- doc/SESSION-HANDOFF-2026-04-18.md: fix Telegram (plain text not Markdown)
- doc/THREE-BIRD-ARCHITECTURE.md: fix 5 broken STRAPI-FREEBSD-GOTCHA refs
- doc/HANDOFF-PHASE7.md: mark sysprompt cleanup as done
- docs/internal/DOCUMENTATION.md: just CLI, tracked hooks, parameterized paths
- docs/internal/HEARTBEAT.md: add controlplane heartbeat reference, fix setup step
- docs/public/architecture/controlplane.md: phases 2-7 all  DONE
- docs/public/architecture/freebsd-jail-implementation.md: git jail, Forgejo
- docs/public/architecture/warden.md: controlplane=host, git jail added
- docs/public/operate/monitoring.md: just doctor, all guardrail vars
- docs/public/operate/security.md: API auth, shell injection, guardrails

Build: pass | Tests: not run (Linux) (Sam & Claude)
2026-04-18 22:15:59 +02:00

2.8 KiB

Session Handoff — 18.apr.2026

From: Mevy (FreeBSD) Branches: main + mevy (both pushed, both in sync) Commit: 9da3a7f

What We Did

  1. Telegram code blockssendMessage sends as plain text (no parse_mode). Agent replies frequently contain code with unbalanced backticks that break Telegram's strict Markdown parser.

  2. Telegram 👀 reactions — Bot sets 👀 on incoming messages, replaces with 👍 when reply is sent. Silent fallback if reactions unsupported.

  3. Fix “not responding” loop — when the model hits model_context_window_exceeded, the agent now replies with a short guidance message and does not roll back the cursor for infinite retries (src/index.ts).

  4. Fix rc.d wrappers missingrun-mevy.sh / run-mevy-hostd.sh were missing locally, causing service mevy restart to start daemon without the Node process; restored wrappers locally (these are generated/ignored artifacts, not meant for git).

  5. Git jail createdgit jail at 10.0.1.6, SSH with git user + git-shell, bare repo preseeded from host.

  6. Local-first git modelGIT_LOCAL_URL config added. Agents push to local git jail, Codeberg is optional upstream sync. Per-agent branches (mevy, future natasha).

  7. openssh-portable removed — Thin jails have base sshd. No package needed. Linux agent was right, I was wrong.

What's Next

  • Git-admin agent wiring needs end-to-end test (does it pick up GIT_LOCAL_URL?)
  • Decide whether to force a bigger-context model for operator mode, or keep current and rely on the new “context exceeded” guidance reply.
  • Dashboard (scripts/dashboard.ts) — exists but untested
  • Phase 7 jail isolation validation
  • Multi-agent jails.yaml refactor (deferred)
  • Approaching v1.0.0 release

Open Questions

  • Should we tag v0.11.0 or wait for more features?
  • Dashboard: Astro hybrid or static?
  • Multi-agent: shared repo with per-agent branches, or per-agent repos?

Files Changed This Session

File What
src/channels/telegram.ts Markdown parsing + 👀 reactions
src/config.ts GIT_LOCAL_URL config var
setup/agent-jails.ts Inject GIT_LOCAL_URL into git-admin env
infra/packages/git-jail.txt Removed openssh (base has it)
.env.example Document GIT_LOCAL_URL
.agent/skills/git-push-mirror/SKILL.md Updated for local-first model
doc/GIT-JAIL-PLAN.md Git jail plan (mostly done)
doc/HANDOFF-GIT-JAIL-OPENSSH.md (deleted — correction applied)