standup
Standup — 2026-05-21
**MemberIntel — Standup 2026-05-21** Heavy day.
Daily standup for 2026-05-21. What shipped:
MemberIntel — Standup 2026-05-21
Heavy day. Two repos, nineteen commits, four PRs.
Tool-result snapshot persistence (ADR 0023, PRs #98–#108). The biggest piece: MemberIntel now writes every tool_result JSON to a new message_tool_results table and injects a summarized “Previously fetched” block into the system prompt on subsequent turns. The LLM can reference historical snapshots with proper “as of snapshot_summary.py) in #104, recall injection + observability in #105, four release-gate evals in #106, retention sweep + Cloud Scheduler config in #107–#108. Retention defaults: 180 days, 200 rows/conversation max. ADR decided: denormalized user_id FK with ondelete=CASCADE handles GDPR deletion in a single SQL statement, no application sweep needed.
Thumbs feedback (PRs #109–#110). ±1 feedback schema + endpoint landed in #109; thumbs UI on assistant chat messages in #110.
KB: OAuth MCP resource server (PRs #5–#6). The knowledge base now exposes two MCP entry points: /api/mcp (Cloudflare Access / service token, for CI and internal tooling) and memberintel-kb.caseproofagent.com/mcp (OAuth 2.1, for Claude Desktop URL-paste, claude.ai, ChatGPT). Both share five tools via lib/mcp-tools.ts. PR #6 also patched a runtime 403 — Cloudflare WAF was blocking worker-to-edge fetches when the inner call targeted the Access-gated sibling hostname.
Notable. The ai-engineer ADR review caught a deferred-join footgun on the new table before it shipped: the original design would have reached user_id via conversation_id → conversations.user_id, forcing a backfill migration on a write-hot table if RLS ever landed. Fixed to direct column before merge.
Window: 2026-05-20T13:00
→ 2026-05-21T13:01.966Z · Sources: memberintel @ 797a184, memberpress-intel @ 8be3978