Session: 2026-02-14 10:56

Created: 2026-02-14 10:56 Updated: 2026-02-14 10:56 Notebook: Work/Sessions

Session: 2026-02-14 10:56

Summary

Documentation and workspace tooling session. Created unified Cloudflare and caching docs, built workspace automation tools, and set up Asana/Todoist API integrations.

What was done

Documentation (committed + pushed to core, synced to all 3 projects)

  1. Created core/docs/CACHING.md — Unified caching reference: current state (nothing cached), safe/unsafe endpoint tables with TTLs, Alpine.js basket safety explanation, Vary: Cookie problem, 6 Cloudflare Cache Rules, cache purging (admin UI + 2 management commands), Django Cache-Control headers.

  2. Updated core/docs/PRODUCTION_DEPLOYMENT_CHECKLIST.md — Replaced 58-line Cloudflare Page Rules section (lines 274–331) with 4-line cross-reference to CACHING.md. Updated summary checklist section.

  3. Created core/docs/CLOUDFLARE.md — Unified Cloudflare reference: account/plan info, zone config, full Django settings inventory (4 tokens, OEPRATIONS dicts), 3 API integration points (GraphQL analytics, targeted purge, global purge), request headers (CF-IPCountry, CF-Connecting-IP), troubleshooting.

  4. Created core/docs/plans/CLOUDFLARE_CACHING_RESTORATION.md — 5-phase plan: audit stale purge lists, create Cache Rules, code changes, QA validation, production rollout. Includes full legacy URL name audit against current config/urls.py. 5 open questions flagged.

Commits (all pushed)

Core (givecore main): - a286313c — Add unified CACHING.md and update deployment checklist - 75985857 — Add CLOUDFLARE.md — unified Cloudflare reference - c50dcef3 — Add Cloudflare caching restoration plan

give-htmx (main): - 21456e0c — [Update core] Add CACHING.md, update deployment checklist - 641a88b6 — [Update core] Add CLOUDFLARE.md - 8a68e1f1 — [Update core] Add Cloudflare caching restoration plan

give-worker (master): - 15288fd — [Update core] Add CACHING.md, update deployment checklist - (CLOUDFLARE.md and plan not yet synced)

give-admin (master): - 39fdeeb — [Update core] Add CACHING.md, update deployment checklist - (CLOUDFLARE.md and plan not yet synced)

Workspace tooling (untracked, local only)

  1. Cloned ~/Gitlab/givecore/ — Standalone givecore clone on main branch for core-only work.

  2. Created ~/Gitlab/sync-core.sh — Pulls givecore main into all 3 consumer projects and commits submodule pointer. Supports --pull-only and --dry-run.

  3. Created ~/Gitlab/WORKSPACE.md — Workspace layout, workflow guide, script reference, quick reference commands.

  4. Moved switch_db.sh from give-worker/ to ~/Gitlab/. Updated path to reference give-worker/config/settings/secrets.py. Tested working.

  5. Updated ~/Gitlab/CLAUDE.md — Added Workspace Tools section, updated Core Submodule workflow, added new docs to Key Documentation list, fixed switch_db.sh path.

API integrations

  1. Asana API — Fixed export ASANA_TOKEN syntax in ~/.zshrc (had spaces around =). Verified connection as Mohammed Shamma (mshamma@berkeley.edu). Found "Give Future" project (gid: 1213235618376441). Created "Personal" project (gid: 1213251495698324, private).

  2. Todoist API — Verified connection. Discovered v2 API is deprecated, v1 is current. Listed tasks. Completed "Cyanotype proposal for Marin MOCA" task.

Key decisions

  • Asana = work, Todoist = personal (household, family, art, workshops)
  • Workspace tools (sync-core.sh, switch_db.sh, WORKSPACE.md) stay uncommitted — they're local workspace files
  • Asana "Private to me" projects: truly private unless org has Enterprise plan with Work Access Mode (WAM)

Open items / next steps

  • give-worker and give-admin need sync-core.sh run for CLOUDFLARE.md and caching plan commits
  • Caching restoration plan has 5 open questions (see plan doc)
  • Phase 4 next: deploy Cache Rules to QA, validate with Playwright
  • Could populate Asana "Give Future" project with tasks from the caching restoration plan