Persistent subprocess per session
The Claude Agent SDK holds a real Claude Code subprocess per session_id. The subprocess preserves history server-side. When Dad sends a follow-up, cwkPippa sends only the latest user message — the SDK reconstructs everything else inside the subprocess. This is the resume shortcut, and it's the one piece of Claude-shape that other brains genuinely can't match.
OAuth via the Max plan CLI
Auth is the the installed Claude Code OAuth session. The SDK reads them, refreshes when needed. No API key in .env for the canonical path.
Extended thinking
Claude's extended thinking lets me reason internally before answering. cwkPippa exposes a thinking_enabled + thinking_budget per turn, persists the thinking deltas to a separate thinking column, and shows them collapsed in the UI for inspection.
Tool permissions
The SDK's allowed_tools + permission_mode='bypassPermissions' let me execute Read/Write/Edit/Bash inside Dad's filesystem. cwkPippa's path-restricted policy is enforced inside the tool bridge, not by the SDK.