# Memory Core (auto-generated) > Last updated: 2026-02-14 | Active memories: 4/333 | Next refresh: daily (systemd timer) ## Critical Solutions - [CACHE_ENABLED env var for Major Domo API](graph/solutions/cache-enabled-env-var-for-major-domo-api-f8d1d7.md) - Added CACHE_ENABLED environment variable to toggle Redis caching on/off witho... (major-domo, redis, caching) - [Paper Dynasty: Database sync workflow for prod to dev](graph/solutions/paper-dynasty-database-sync-workflow-for-prod-to-dev-4bb882.md) - Created automated workflow to sync production PostgreSQL database (akamai) to... (paper-dynasty, postgresql, database) - [Fix: pitcher error ratings silently failed due to unpacked range() in list membership](graph/solutions/fix-pitcher-error-ratings-silently-failed-due-to-unpacked-ra-b66c47.md) - In dice.py sa_fielding_roll(), pitcher (P position) error checks used range()... (paper-dynasty, python, fix) - [Play lock context manager refactor - locked_play](graph/solutions/play-lock-context-manager-refactor-locked-play-1f7cd0.md) - Created command_logic/play_context.py with locked_play async context manager. (paper-dynasty, python, fix) - [Fix for play lock never released on exception](graph/solutions/fix-for-play-lock-never-released-on-exception-5d8e1f.md) - Implemented 3-layer defense against stuck play locks: (1) Added release_play_... (paper-dynasty, python, discord-bot) - [Gitea Actions runner offline - must use internal URL not public domain](graph/solutions/gitea-actions-runner-offline-must-use-internal-url-not-publi-f46835.md) - Problem: Gitea Actions runner showing as 'Offline' in admin UI, jobs stuck in... (gitea, ci-cd, actions) - [Gitea Actions: Docker buildx cache auth requires login on all builds](graph/solutions/gitea-actions-docker-buildx-cache-auth-requires-login-on-all-77cf0f.md) - When using Docker buildx with registry-based cache (cache-from/cache-to type=... (gitea, docker, ci-cd) - [CLAUDE.md optimization: 329 → 104 lines with table-based loading rules](graph/solutions/claudemd-optimization-329-104-lines-with-table-based-loading-f3feda.md) - Optimized project CLAUDE.md from 329 lines to 104 lines (68% reduction) by: (claude-config, optimization, documentation) - [Discord bot dynamic configuration with live reload](graph/solutions/discord-bot-dynamic-configuration-with-live-reload-8bd768.md) - Implemented /add-project command for Claude Discord Coordinator that adds pro... (discord-bot, python, discord.py) - [Gitea Actions: Docker buildx registry cache auth fix](graph/solutions/gitea-actions-docker-buildx-registry-cache-auth-fix-856511.md) - When using Docker buildx with registry-based cache (cache-from/cache-to type=... (gitea, docker, ci-cd) ## Active Decisions - [Wave-based agent delegation avoids file contention](graph/decisions/wave-based-agent-delegation-avoids-file-contention-23bb23.md) - When delegating multiple tasks to agents that all modify the same file, run t... (cognitive-memory, agent-delegation, pattern) - [Agent delegation requires careful review of edge cases](graph/decisions/agent-delegation-requires-careful-review-of-edge-cases-a3f466.md) - When delegating implementation tasks to engineer agents, they reliably handle... (cognitive-memory, agent-delegation, code-review) - [Production deployment checklist for Paper Dynasty bot](graph/decisions/production-deployment-checklist-for-paper-dynasty-bot-638ac8.md) - CRITICAL: Always verify bot startup in production logs after deployment. (paper-dynasty, discord-bot, deployment) - [Store model aliases not specific IDs](graph/decisions/store-model-aliases-not-specific-ids-725304.md) - When storing user model preferences (sonnet/opus/haiku), always store the ali... (ai-assistant, discord, claude) - [Mantimon TCG Engine: Highly Configurable Design](graph/decisions/mantimon-tcg-engine-highly-configurable-design-c06fae.md) - The game engine must be extremely configurable to support 'free play' mode wh... (mantimon-tcg, architecture, decision) - [Store DeckConfig with Decks](graph/decisions/store-deckconfig-with-decks-cfc068.md) - When a deck is created, the DeckConfig used for validation should be persiste... (mantimon-tcg, architecture, decision) - [Mantimon TCG: RNG and Card Registry Design](graph/decisions/mantimon-tcg-rng-and-card-registry-design-42c14a.md) - RNG Handling: Use RandomProvider protocol with two implementations - SeededRa... (mantimon-tcg, architecture, decision) - [Phase 4 Game Service + WebSocket Plan](graph/decisions/phase-4-game-service-websocket-plan-da0789.md) - Created detailed 18-task project plan for Phase 4: WebSocket server with pyth... (mantimon-tcg, python, websocket) - [Card builder architecture redesign](graph/decisions/card-builder-architecture-redesign-396868.md) - Designed new architecture for Paper Dynasty card generation that moves fittin... (paper-dynasty, architecture, card-generation) - [Phase 3 Collections+Decks plan created](graph/decisions/phase-3-collectionsdecks-plan-created-dedfc3.md) - Created comprehensive PHASE_3_COLLECTION_DECKS.json with 14 tasks (29 hrs): C... (mantimon-tcg, python, planning) ## Key Fixes - [Successfully fixed Paper Dynasty API 502 errors via manual Pi-hole DNS cleanup](graph/fixes/successfully-fixed-paper-dynasty-api-502-errors-via-manual-p-01944b.md) - Paper Dynasty API (pd.manticorum.com) was returning 502 Bad Gateway errors (paper-dynasty, pihole, v6) - [PostgreSQL migration: get_team_by_owner returns wrong team](graph/fixes/postgresql-migration-get-team-by-owner-returns-wrong-team-c9f0d6.md) - After PostgreSQL migration, get_team_by_owner() in discord-app returned the g... (paper-dynasty, postgresql, migration) - [PostgreSQL migration: DateTimeField defaults must be datetime objects](graph/fixes/postgresql-migration-datetimefield-defaults-must-be-datetime-03a346.md) - Paperdex and GauntletRun models had DateTimeField(default=int(datetime.timest... (paper-dynasty, postgresql, migration) - [Missing logger import causes NameError in Python modules](graph/fixes/missing-logger-import-causes-nameerror-in-python-modules-7b6d18.md) - Common bug when adding logging to existing Python code: calling logger.info()... (python, logging, bug) - [Added default ORDER BY id to BattingCardRatings.select() in list endpoints](graph/fixes/added-default-order-by-id-to-battingcardratingsselect-in-lis-6423a9.md) - Updated battingcardratings.py to add .order_by(BattingCardRatings.id) to thre... (paper-dynasty, python, postgresql) - [Add default ORDER BY id to GameRewards.select() list endpoint](graph/fixes/add-default-order-by-id-to-gamerewardsselect-list-endpoint-5ad98d.md) - Modified gamerewards.py GET list endpoint to use GameRewards.select().order_b... (paper-dynasty, python, postgres-migration) - [Add default ORDER BY id to PackType list endpoint](graph/fixes/add-default-order-by-id-to-packtype-list-endpoint-1679f2.md) - Modified GET /api/v2/packtypes endpoint to include default ordering: PackType... (paper-dynasty, postgresql, migration) - [Added default ORDER BY id to notifications list endpoint](graph/fixes/added-default-order-by-id-to-notifications-list-endpoint-ad7d61.md) - Modified GET /api/v2/notifs endpoint in app/routers_v2/notifications.py to ad... (paper-dynasty, postgresql, migration) - [Added default ORDER BY id to MlbPlayer.select() endpoint](graph/fixes/added-default-order-by-id-to-mlbplayerselect-endpoint-0670d2.md) - Added .order_by(MlbPlayer.id) to the GET /mlbplayers list endpoint (line 85 i... (paper-dynasty, postgresql, migration) - [Added default ordering to StratPlay list endpoint](graph/fixes/added-default-ordering-to-stratplay-list-endpoint-e22444.md) - Added .order_by(StratPlay.id) to StratPlay.select() in the GET list endpoint... (paper-dynasty, postgresql, migration) ## Configurations - [Cognitive Memory automated maintenance with systemd timers](graph/configurations/cognitive-memory-automated-maintenance-with-systemd-timers-d0313c.md) - Set up systemd user timers for automatic cognitive memory maintenance: (cognitive-memory, systemd, automation) - [Jarvis Discord Bot Production Deployment](graph/configurations/jarvis-discord-bot-production-deployment-4edbf5.md) - The ai-assistant Discord bot (Jarvis) runs on ssh ai-pm at /opt/projects/clau... (ai-assistant, discord, deployment) - [Gitea CLI: use tea not gh for API access](graph/configurations/gitea-cli-use-tea-not-gh-for-api-access-158f8e.md) - The gh CLI does not work with Gitea — it's hardcoded for GitHub API v3 at /ap... (gitea, tea, cli) - [Discord bot systemd service with environment variables](graph/configurations/discord-bot-systemd-service-with-environment-variables-d0e2e9.md) - Systemd service setup for Claude Discord Coordinator bot running as non-root... (discord-bot, systemd, deployment) - [claude-memory wrapper script for cleaner CLI usage](graph/configurations/claude-memory-wrapper-script-for-cleaner-cli-usage-a15099.md) - Created wrapper script at ~/.local/bin/claude-memory that exec's the cognitiv... (cognitive-memory, cli, configuration) - [CLAUDE.md: mandatory post-commit memories + claude-memory alias](graph/configurations/claudemd-mandatory-post-commit-memories-claude-memory-alias-a33977.md) - Updated CLAUDE.md to make post-commit memory storage mandatory (not optional). (claude-config, cognitive-memory, configuration) - [major-domo-v2 main branch is protected on Gitea](graph/configurations/major-domo-v2-main-branch-is-protected-on-gitea-bfee3e.md) - The main branch on cal/major-domo-v2 (Gitea) is protected. (major-domo, gitea, config) - [Uptime Kuma deployed on LXC 227](graph/configurations/uptime-kuma-deployed-on-lxc-227-35400a.md) - Uptime Kuma service monitoring deployed on Proxmox LXC 227 (10.10.0.227). (uptime-kuma, monitoring, homelab) - [OpenCode agent model configuration](graph/configurations/opencode-agent-model-configuration-33fa68.md) - Configured default models for OpenCode agents in ~/.config/opencode/opencode.... (opencode, configuration, models) ## Patterns & Workflows - [CLAUDE.md audit and optimization workflow](graph/workflows/claudemd-audit-and-optimization-workflow-2bab84.md) - When CLAUDE.md files get bloated, audit by category: (1) Historical changelog... (claude-code, optimization, workflow) - [CRITICAL: Git commit requires explicit user approval](graph/workflows/critical-git-commit-requires-explicit-user-approval-c253c9.md) - Before ANY git commit/add/push/deploy command, STOP and verify: (paper-dynasty, major-domo, git) - [Global slash commands are .md files in ~/.claude/commands/](graph/code-patterns/global-slash-commands-are-md-files-in-claudecommands-e9e6a1.md) - Claude Code global slash commands live in ~/.claude/commands/.md. (claude-code, pattern, slash-commands) - [Optional locking parameter pattern for read vs write commands](graph/code-patterns/optional-locking-parameter-pattern-for-read-vs-write-command-88bbf5.md) - In Paper Dynasty, added lock_play parameter (default=True) to checks_log_inte... (paper-dynasty, python, discord-bot) - [Paper Dynasty: 2005 Live Series card update workflow (mid-season)](graph/workflows/paper-dynasty-2005-live-series-card-update-workflow-mid-seas-2937a9.md) - Task**: Update 2005 Live cardset through end of July (mid-season update) (paper-dynasty, cardset, 2005) - [Deploy Major Domo with feature branch workflow and Docker BuildKit workaround](graph/workflows/deploy-major-domo-with-feature-branch-workflow-and-docker-bu-a88203.md) - Workflow**: Successfully deployed dem_week feature to production using featur... (major-domo, deployment, workflow)