From 34bb613c57ea0b61562816c85f0401d8f78de7d7 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Thu, 19 Feb 2026 23:34:07 -0600 Subject: [PATCH] Add 20 retroactive edges and sync pending memory updates - 20 new high-quality edges across 8 project clusters - Edge types: BUILDS_ON, RELATED_TO, ALTERNATIVE_TO, REQUIRES - Updated relation metadata on connected memories - New episode entries and memory files from recent sessions Co-Authored-By: Claude Opus 4.6 --- episodes/2026-02-19.md | 16 +++++ ...-25-context-remaining-before-com-c0d10e.md | 8 ++- ...ovisioned-for-server-diagnostics-5da446.md | 8 ++- ...rkflow-node-structure-and-connec-393791.md | 59 +++++++++++++++++++ ...-update-agent-definition-created-9e1897.md | 8 ++- ...-code-shut-down-unused-container-a9d6f7.md | 8 ++- ...efactored-to-master-sub-workflow-7fdc5c.md | 59 +++++++++++++++++++ ...efactor-with-typer-yaml-profiles-4ab586.md | 8 ++- ...d-14-vmslxcs-before-phase-2-upgr-76f14c.md | 8 ++- ...-update-agent-definition-created-8a2f30.md | 8 ++- ...salary-cap-refactor-plan-created-ed9e1e.md | 8 ++- ...--n8n-server-health-monitor-refa-88e1e2.md | 13 ++++ ...--added-default-ordering-to-stra-1f4f54.md | 13 ++++ ...--added-default-order-by-id-to-n-47087f.md | 13 ++++ ...--custom-screw-holes-for-extende-3e6b79.md | 13 ++++ ...S--coremd-auto-load-via-memorymd-1876b3.md | 13 ++++ ...--draft-monitor-auto-start-and-o-ff9d71.md | 13 ++++ ...--fix-auto-draft-nested-api-pars-cd4dce.md | 13 ++++ ...--numpy-x86-v2-cpu-compatibility-970d7a.md | 13 ++++ ...--fix-soak-and-draftlist-test-fa-5dc338.md | 13 ++++ ...N--fix-foundry-compendium-ids-to-26b9fe.md | 13 ++++ ...--gitea-actions-docker-buildx-re-cd4fb3.md | 13 ++++ ...--retrosheet-card-update-agent-d-5c874e.md | 13 ++++ ...--paper-dynasty-ci-use-gitea-api-57492b.md | 13 ++++ ...--n8n-server-health-monitor-refa-dbe6bb.md | 13 ++++ ...--n8n-claude-code-automated-serv-4fe26e.md | 13 ++++ ...--self-managing-n8n-server-healt-a91091.md | 13 ++++ ...--major-domo-fix-use-gitea-api-f-415bba.md | 13 ++++ ...--asymmetric-offset-light-switch-217d7a.md | 13 ++++ ...--custom-screw-holes-for-extende-db0f07.md | 13 ++++ ...--pd-cards-cli-complete-migratio-608bd5.md | 13 ++++ ...O--lxc-300-was-openclaw-migrated-dc2bea.md | 13 ++++ ...--salary-cap-helper-functions-ad-816ef2.md | 13 ++++ ...--ct-302-claude-runner-provision-73e5a7.md | 13 ++++ ...--n8n-server-health-monitor-refa-4c7187.md | 13 ++++ ...--vagabond-rpg-important-data-mo-b259b6.md | 13 ++++ ...N--vagabond-rpg-minor-data-model-3567de.md | 13 ++++ ...-by-id-to-packtype-list-endpoint-1679f2.md | 8 ++- ...d-to-notifications-list-endpoint-ad7d61.md | 8 ++- ...ng-to-pitchingstat-list-endpoint-08952b.md | 8 ++- ...ering-to-stratplay-list-endpoint-e22444.md | 8 ++- ...t-monitor-missing-guild-variable-f78245.md | 8 ++- ...ted-playerteam-id-extraction-bug-83dbeb.md | 8 ++- ...el-validation-in-draft-pick-test-7888f6.md | 8 ++- ...-for-tag-creation-to-avoid-branc-ce2a22.md | 13 +++- ...uires-workflowselector-object-an-e085b8.md | 48 +++++++++++++++ ...pi-for-tag-creation-instead-of-g-633e06.md | 8 ++- ...pi-for-tag-creation-to-avoid-bra-40e194.md | 8 ++- ...-server-to-n8n-health-monitoring-f3a41c.md | 38 ++++++++++++ ...ealth-monitor-with-sub-workflows-226839.md | 8 ++- ...metric-offset-light-switch-plate-02faab.md | 13 +++- ...-auto-load-via-memorymd-symlinks-5cb26f.md | 8 ++- ...-for-extended-light-switch-plate-76aaac.md | 13 +++- ...or-auto-start-and-on-clock-embed-e4f0be.md | 8 ++- ...ix-auto-draft-nested-api-parsing-7c1465.md | 8 ++- ...undry-compendium-ids-to-16-chars-13bd7a.md | 8 ++- ...cpu-compatibility-in-discord-app-1695d1.md | 8 ++- ...soak-and-draftlist-test-failures-c29d2f.md | 8 ++- ...ndry-actor-compendium-key-prefix-27bbd0.md | 8 ++- ...cache-auth-requires-login-on-all-77cf0f.md | 8 ++- ...r-buildx-registry-cache-auth-fix-856511.md | 8 ++- ...tomated-server-monitoring-system-62ee21.md | 7 ++- ...mpy-x86-v2-cpu-compatibility-fix-1d3eaf.md | 8 ++- ...ric-openscad-light-switch-plates-d452d7.md | 13 +++- .../pd-cards-cli-complete-migration-c223fd.md | 8 ++- ...alary-cap-helper-functions-added-e5bc69.md | 8 ++- ...pg-critical-data-model-additions-8cc7f4.md | 8 ++- ...mportant-data-model-enhancements-9980fe.md | 13 +++- ...pg-minor-data-model-improvements-cdd7d1.md | 8 ++- 69 files changed, 848 insertions(+), 38 deletions(-) create mode 100644 graph/configurations/server-health-monitor-n8n-workflow-node-structure-and-connec-393791.md create mode 100644 graph/decisions/n8n-server-health-monitor-refactored-to-master-sub-workflow-7fdc5c.md create mode 100644 graph/edges/add-a-new-server-to-n8n-health--FOLLOWS--n8n-server-health-monitor-refa-88e1e2.md create mode 100644 graph/edges/add-default-order-by-id-to-pac--RELATED_TO--added-default-ordering-to-stra-1f4f54.md create mode 100644 graph/edges/added-default-ordering-to-pitc--RELATED_TO--added-default-order-by-id-to-n-47087f.md create mode 100644 graph/edges/asymmetric-offset-light-switch--BUILDS_ON--custom-screw-holes-for-extende-3e6b79.md create mode 100644 graph/edges/auto-invoke-save-memories-at-2--REQUIRES--coremd-auto-load-via-memorymd-1876b3.md create mode 100644 graph/edges/draft-monitor-missing-guild-va--BUILDS_ON--draft-monitor-auto-start-and-o-ff9d71.md create mode 100644 graph/edges/draftlist-nested-playerteam-id--BUILDS_ON--fix-auto-draft-nested-api-pars-cd4dce.md create mode 100644 graph/edges/fix-numpy-x86-v2-cpu-compatibi--BUILDS_ON--numpy-x86-v2-cpu-compatibility-970d7a.md create mode 100644 graph/edges/fix-player-model-validation-in--BUILDS_ON--fix-soak-and-draftlist-test-fa-5dc338.md create mode 100644 graph/edges/foundry-actor-compendium-key-p--BUILDS_ON--fix-foundry-compendium-ids-to-26b9fe.md create mode 100644 graph/edges/gitea-actions-docker-buildx-ca--BUILDS_ON--gitea-actions-docker-buildx-re-cd4fb3.md create mode 100644 graph/edges/live-series-card-update-agent--ALTERNATIVE_TO--retrosheet-card-update-agent-d-5c874e.md create mode 100644 graph/edges/major-domo-fix-use-gitea-api-f--RELATED_TO--paper-dynasty-ci-use-gitea-api-57492b.md create mode 100644 graph/edges/n8n-execute-sub-workflow-requi--SOLVES--n8n-server-health-monitor-refa-dbe6bb.md create mode 100644 graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--n8n-claude-code-automated-serv-4fe26e.md create mode 100644 graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--self-managing-n8n-server-healt-a91091.md create mode 100644 graph/edges/paper-dynasty-ci-use-gitea-api--RELATED_TO--major-domo-fix-use-gitea-api-f-415bba.md create mode 100644 graph/edges/parametric-openscad-light-swit--BUILDS_ON--asymmetric-offset-light-switch-217d7a.md create mode 100644 graph/edges/parametric-openscad-light-swit--BUILDS_ON--custom-screw-holes-for-extende-db0f07.md create mode 100644 graph/edges/pd-cards-cli-refactor-with-typ--BUILDS_ON--pd-cards-cli-complete-migratio-608bd5.md create mode 100644 graph/edges/proxmox-guest-cleanup-removed--RELATED_TO--lxc-300-was-openclaw-migrated-dc2bea.md create mode 100644 graph/edges/salary-cap-refactor-plan-creat--BUILDS_ON--salary-cap-helper-functions-ad-816ef2.md create mode 100644 graph/edges/server-health-monitor-n8n-work--RELATED_TO--ct-302-claude-runner-provision-73e5a7.md create mode 100644 graph/edges/server-health-monitor-n8n-work--REQUIRES--n8n-server-health-monitor-refa-4c7187.md create mode 100644 graph/edges/vagabond-rpg-critical-data-mod--BUILDS_ON--vagabond-rpg-important-data-mo-b259b6.md create mode 100644 graph/edges/vagabond-rpg-important-data-mo--BUILDS_ON--vagabond-rpg-minor-data-model-3567de.md create mode 100644 graph/fixes/n8n-execute-sub-workflow-requires-workflowselector-object-an-e085b8.md create mode 100644 graph/procedures/add-a-new-server-to-n8n-health-monitoring-f3a41c.md diff --git a/episodes/2026-02-19.md b/episodes/2026-02-19.md index 1dc8ba453c7..0ca0b184277 100644 --- a/episodes/2026-02-19.md +++ b/episodes/2026-02-19.md @@ -268,3 +268,19 @@ Session size: 23 messages, 4 tool calls ## 22:31 - Self-managing n8n server health monitor with sub-workflows - **Type:** procedure - **Tags:** n8n, homelab, monitoring, claude-runner, architecture, procedure + +## 23:11 - n8n Server Health Monitor refactored to master + sub-workflow pattern +- **Type:** decision +- **Tags:** n8n, monitoring, homelab, architecture, server-diagnostics + +## 23:11 - n8n Execute Sub-workflow requires workflowSelector object and active sub-workflow +- **Type:** fix +- **Tags:** n8n, fix, api, workflow + +## 23:12 - Server Health Monitor n8n workflow node structure and connections +- **Type:** configuration +- **Tags:** n8n, monitoring, homelab, configuration, server-diagnostics + +## 23:12 - Add a new server to n8n health monitoring +- **Type:** procedure +- **Tags:** n8n, monitoring, homelab, server-diagnostics, procedure diff --git a/graph/configurations/auto-invoke-save-memories-at-25-context-remaining-before-com-c0d10e.md b/graph/configurations/auto-invoke-save-memories-at-25-context-remaining-before-com-c0d10e.md index 5540a04df59..361a11cc330 100644 --- a/graph/configurations/auto-invoke-save-memories-at-25-context-remaining-before-com-c0d10e.md +++ b/graph/configurations/auto-invoke-save-memories-at-25-context-remaining-before-com-c0d10e.md @@ -6,7 +6,13 @@ tags: [cognitive-memory, claude-code, configuration, compaction, automation] importance: 0.6 confidence: 0.8 created: "2026-02-19T22:20:13.284077+00:00" -updated: "2026-02-19T22:20:13.284077+00:00" +updated: "2026-02-20T04:32:33.773548+00:00" +relations: + - target: 5cb26f44-8100-413d-8fa1-3668472a7672 + type: REQUIRES + direction: outgoing + strength: 0.8 + edge_id: 1876b305-57b5-4491-8b87-cb85ae5745f6 --- Updated project CLAUDE.md to automatically run /save-memories when context reaches 25% remaining, replacing the old "ask to update docs" instruction. This ensures session learnings are captured before compaction loses conversational detail. The /save-memories command analyzes the conversation since the last memory save, builds a structured summary, and dispatches a background memory-saver agent. Combined with the SessionEnd hook (session_memory.py) as a safety net, this creates two layers of automatic memory capture: proactive (pre-compaction via /save-memories) and reactive (post-session via hook). The instruction lives in the project CLAUDE.md at /mnt/NV2/Development/claude-home/CLAUDE.md under Core Instructions. diff --git a/graph/configurations/ct-302-claude-runner-provisioned-for-server-diagnostics-5da446.md b/graph/configurations/ct-302-claude-runner-provisioned-for-server-diagnostics-5da446.md index 4cea24ed0cd..98c1acc0101 100644 --- a/graph/configurations/ct-302-claude-runner-provisioned-for-server-diagnostics-5da446.md +++ b/graph/configurations/ct-302-claude-runner-provisioned-for-server-diagnostics-5da446.md @@ -6,7 +6,13 @@ tags: [proxmox, homelab, monitoring, infrastructure, claude-code] importance: 0.9 confidence: 0.8 created: "2026-02-20T03:39:42.612345+00:00" -updated: "2026-02-20T03:39:42.612345+00:00" +updated: "2026-02-20T05:12:40.005050+00:00" +relations: + - target: 39379120-896b-46cd-befa-b83d09d7556b + type: RELATED_TO + direction: incoming + strength: 0.7 + edge_id: 73e5a7b2-8f91-47a0-bb04-cd324eaf8228 --- ## LXC 302 — claude-runner diff --git a/graph/configurations/server-health-monitor-n8n-workflow-node-structure-and-connec-393791.md b/graph/configurations/server-health-monitor-n8n-workflow-node-structure-and-connec-393791.md new file mode 100644 index 00000000000..5ad0658f9a6 --- /dev/null +++ b/graph/configurations/server-health-monitor-n8n-workflow-node-structure-and-connec-393791.md @@ -0,0 +1,59 @@ +--- +id: 39379120-896b-46cd-befa-b83d09d7556b +type: configuration +title: "Server Health Monitor n8n workflow node structure and connections" +tags: [n8n, monitoring, homelab, configuration, server-diagnostics] +importance: 0.7 +confidence: 0.8 +created: "2026-02-20T05:12:03.317234+00:00" +updated: "2026-02-20T05:12:40.005050+00:00" +relations: + - target: 7fdc5ceb-4b8c-426d-8492-948d106f92bb + type: REQUIRES + direction: outgoing + strength: 0.8 + edge_id: 4c71872b-11d1-4def-9da9-63491c229760 + - target: 5da4468e-4a1b-481b-bbae-a32108dab33e + type: RELATED_TO + direction: outgoing + strength: 0.7 + edge_id: 73e5a7b2-8f91-47a0-bb04-cd324eaf8228 +--- + +## Master Workflow: "Server Health Monitor - Claude Code" (p7XmW23SgCs3hEkY) + +7 nodes, active, runs every 5 minutes: + +| Node | Type | Purpose | +|------|------|---------| +| Every 5 Minutes | scheduleTrigger v1.2 | 5-min interval | +| Get Server List | ssh v1 | Runs list_servers.sh on CT 302 | +| Split Server List | code v2 | Parses JSON array → one item per server_key | +| Check Each Server | executeWorkflow v1.1 | Calls sub-workflow, mode: "each" | +| Aggregate Results | code v2 | Collects results, counts healthy/remediated/escalated | +| Any Escalations? | if v2 | Checks has_escalations boolean | +| Discord Summary | httpRequest v4.2 | Sends embed to Discord webhook (escalation branch only) | + +Flow: Schedule → SSH → Code → Sub-workflow → Code → If → Discord + +## Sub-Workflow: "Server Health Check" (BhzYmWr6NcIDoioy) + +7 nodes, active, triggered by parent: + +| Node | Type | Purpose | +|------|------|---------| +| Execute Workflow Trigger | executeWorkflowTrigger v1.1 | Receives {server_key}, passthrough mode | +| Run Health Check | ssh v1 | health_check.py --server {server_key} | +| Parse Result | code v2 | Parses JSON, extracts status/exit_code/issues | +| Needs Escalation? | if v2 | exit_code == 2 check | +| Claude Remediation | ssh v1 | Runs remediate.sh (true branch) | +| Return Escalated Results | code v2 | Normalizes output with remediation_output | +| Return Normal Results | code v2 | Normalizes output (false branch) | + +## Discord Webhook +URL: `https://discord.com/api/webhooks/1451783909409816763/O9PMDiNt6ZIWRf8HKocIZ_E4vMGV_lEwq50aAiZ9HVFR2UGwO6J1N9_wOm82p0MetIqT` + +## Settings +- executionOrder: v1 +- timezone: America/Chicago +- callerPolicy: workflowsFromSameOwner diff --git a/graph/decisions/live-series-card-update-agent-definition-created-9e1897.md b/graph/decisions/live-series-card-update-agent-definition-created-9e1897.md index 8d0c5ad566a..d9f6fe25bcc 100644 --- a/graph/decisions/live-series-card-update-agent-definition-created-9e1897.md +++ b/graph/decisions/live-series-card-update-agent-definition-created-9e1897.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, claude-code, agents, architecture] importance: 0.7 confidence: 0.8 created: "2026-02-16T20:15:49.827270+00:00" -updated: "2026-02-16T20:15:49.827270+00:00" +updated: "2026-02-20T04:32:07.169669+00:00" +relations: + - target: 8a2f30f0-137d-4390-9252-22c4eb565046 + type: ALTERNATIVE_TO + direction: outgoing + strength: 0.9 + edge_id: 5c874e03-7119-4747-87bc-dff11e08328c --- Created .claude/agents/live-series-card-update-agent.md for Paper Dynasty card-creation project. Mirrors the retrosheet agent pattern with live-series-specific differences: diff --git a/graph/decisions/lxc-300-claude-code-shut-down-unused-container-a9d6f7.md b/graph/decisions/lxc-300-claude-code-shut-down-unused-container-a9d6f7.md index 77446e2fc51..91b5d7c66bc 100644 --- a/graph/decisions/lxc-300-claude-code-shut-down-unused-container-a9d6f7.md +++ b/graph/decisions/lxc-300-claude-code-shut-down-unused-container-a9d6f7.md @@ -6,7 +6,13 @@ tags: [proxmox, homelab, openclaw, infrastructure, cleanup] importance: 0.6 confidence: 0.8 created: "2026-02-19T17:13:31.147499+00:00" -updated: "2026-02-19T17:16:52.507526+00:00" +updated: "2026-02-20T04:32:38.480124+00:00" +relations: + - target: 76f14cf3-97d0-4962-8d26-bf375948b460 + type: RELATED_TO + direction: incoming + strength: 0.8 + edge_id: dc2bea7d-5a66-44cf-b8a2-0725446d5bb5 --- ## LXC 300 Shut Down (2026-02-19) — Was Running OpenClaw diff --git a/graph/decisions/n8n-server-health-monitor-refactored-to-master-sub-workflow-7fdc5c.md b/graph/decisions/n8n-server-health-monitor-refactored-to-master-sub-workflow-7fdc5c.md new file mode 100644 index 00000000000..62cdb1b80aa --- /dev/null +++ b/graph/decisions/n8n-server-health-monitor-refactored-to-master-sub-workflow-7fdc5c.md @@ -0,0 +1,59 @@ +--- +id: 7fdc5ceb-4b8c-426d-8492-948d106f92bb +type: decision +title: "n8n Server Health Monitor refactored to master + sub-workflow pattern" +tags: [n8n, monitoring, homelab, architecture, server-diagnostics] +importance: 0.8 +confidence: 0.8 +created: "2026-02-20T05:11:37.810671+00:00" +updated: "2026-02-20T05:12:38.405071+00:00" +relations: + - target: 62ee21e8-2b56-4d38-a73d-47e2724f08c6 + type: BUILDS_ON + direction: outgoing + strength: 0.9 + edge_id: 4fe26e78-998a-4524-8323-63b82348c1ca + - target: 2268393f-b90f-4ae8-9995-4b942ed2b2f7 + type: BUILDS_ON + direction: outgoing + strength: 0.9 + edge_id: a9109127-1691-4cea-a957-8d55320281d7 + - target: 39379120-896b-46cd-befa-b83d09d7556b + type: REQUIRES + direction: incoming + strength: 0.8 + edge_id: 4c71872b-11d1-4def-9da9-63491c229760 + - target: e085b8bf-6fbf-4fb7-aded-4d2d651fc2e6 + type: SOLVES + direction: incoming + strength: 0.9 + edge_id: dbe6bb9d-e5ac-4618-ba1e-c973df6313a4 + - target: f3a41c4a-7970-4bdd-be65-ded62b0d32f7 + type: FOLLOWS + direction: incoming + strength: 0.8 + edge_id: 88e1e2f2-15d8-4608-92cb-1d5b05e11f80 +--- + +## Decision + +Refactored the monolithic "Server Health Monitor - Claude Code" n8n workflow (`p7XmW23SgCs3hEkY`) into a master + sub-workflow architecture. + +## Architecture + +**Master workflow** (p7XmW23SgCs3hEkY): Schedule (5min) → SSH Get Server List → Split → Execute Sub-workflow (each) → Aggregate → If Escalations → Discord Summary + +**Sub-workflow** "Server Health Check" (BhzYmWr6NcIDoioy): Execute Workflow Trigger → SSH health_check.py --server {key} → Parse → If escalation → SSH remediate.sh → Return results + +## Rationale + +- **Single source of truth**: Server list comes from `config.yaml` on CT 302 via `list_servers.sh` helper script +- **Adding/removing servers**: Only requires editing config.yaml — no n8n changes needed +- **Per-server isolation**: Each server check runs independently in the sub-workflow +- **Selective alerting**: Discord summary only fires when escalations exist (exit_code 2). Tier 1 auto-remediation (exit_code 1) is handled internally by health_check.py + notifier.py + +## Key IDs +- Master workflow: `p7XmW23SgCs3hEkY` +- Sub-workflow: `BhzYmWr6NcIDoioy` +- SSH credential: `QkbHQ8JmYimUoTcM` ("SSH Private Key account") +- Helper script: `/root/.claude/skills/server-diagnostics/list_servers.sh` on CT 302 diff --git a/graph/decisions/pd-cards-cli-refactor-with-typer-yaml-profiles-4ab586.md b/graph/decisions/pd-cards-cli-refactor-with-typer-yaml-profiles-4ab586.md index 6ad61c023ef..0da1a73a232 100644 --- a/graph/decisions/pd-cards-cli-refactor-with-typer-yaml-profiles-4ab586.md +++ b/graph/decisions/pd-cards-cli-refactor-with-typer-yaml-profiles-4ab586.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, python, cli, typer, refactor, decision] importance: 0.7 confidence: 0.8 created: "2025-12-18T22:08:41.481129+00:00" -updated: "2025-12-18T22:08:41.481129+00:00" +updated: "2026-02-20T04:32:16.702926+00:00" +relations: + - target: c223fd4d-53ec-461a-9d49-b1975e52967c + type: BUILDS_ON + direction: outgoing + strength: 0.9 + edge_id: 608bd560-b611-4b3a-aa3a-626ce38d6e9c --- Refactored paper-dynasty card-creation project from scattered Python scripts to unified Typer CLI. Custom character cards now use YAML profiles instead of per-character Python scripts. CLI structure: pd-cards {custom,live-series,retrosheet,scouting,upload}. Key design decisions: (1) Full project refactor scope, (2) Clean break - no backwards compat, (3) Remove interactive_creator.py in favor of YAML editing + preview/submit commands. Install via uv pip install -e ., run via pd-cards --help. diff --git a/graph/decisions/proxmox-guest-cleanup-removed-14-vmslxcs-before-phase-2-upgr-76f14c.md b/graph/decisions/proxmox-guest-cleanup-removed-14-vmslxcs-before-phase-2-upgr-76f14c.md index f54b9bc2829..5bb6378d573 100644 --- a/graph/decisions/proxmox-guest-cleanup-removed-14-vmslxcs-before-phase-2-upgr-76f14c.md +++ b/graph/decisions/proxmox-guest-cleanup-removed-14-vmslxcs-before-phase-2-upgr-76f14c.md @@ -6,7 +6,13 @@ tags: [proxmox, homelab, infrastructure, cleanup] importance: 0.8 confidence: 0.8 created: "2026-02-19T17:30:07.489149+00:00" -updated: "2026-02-19T17:30:07.489149+00:00" +updated: "2026-02-20T04:32:38.480124+00:00" +relations: + - target: a9d6f7a1-69d9-41ab-b28c-88f02d21a43b + type: RELATED_TO + direction: outgoing + strength: 0.8 + edge_id: dc2bea7d-5a66-44cf-b8a2-0725446d5bb5 --- ## Proxmox Guest Cleanup (2026-02-19) diff --git a/graph/decisions/retrosheet-card-update-agent-definition-created-8a2f30.md b/graph/decisions/retrosheet-card-update-agent-definition-created-8a2f30.md index 35c9571a7d7..100125b1664 100644 --- a/graph/decisions/retrosheet-card-update-agent-definition-created-8a2f30.md +++ b/graph/decisions/retrosheet-card-update-agent-definition-created-8a2f30.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, claude-code, agents, architecture] importance: 0.7 confidence: 0.8 created: "2026-02-16T19:34:19.383497+00:00" -updated: "2026-02-16T19:34:19.383497+00:00" +updated: "2026-02-20T04:32:07.169669+00:00" +relations: + - target: 9e1897e8-a5ec-4297-ba85-941dcfe304b9 + type: ALTERNATIVE_TO + direction: incoming + strength: 0.9 + edge_id: 5c874e03-7119-4747-87bc-dff11e08328c --- Created .claude/agents/retrosheet-card-update-agent.md for Paper Dynasty card-creation project. Key design decisions: diff --git a/graph/decisions/salary-cap-refactor-plan-created-ed9e1e.md b/graph/decisions/salary-cap-refactor-plan-created-ed9e1e.md index 130faf1310d..71bf266b191 100644 --- a/graph/decisions/salary-cap-refactor-plan-created-ed9e1e.md +++ b/graph/decisions/salary-cap-refactor-plan-created-ed9e1e.md @@ -6,7 +6,13 @@ tags: [major-domo, python, refactor, salary-cap] importance: 0.5 confidence: 0.8 created: "2025-12-09T23:03:07.253973+00:00" -updated: "2025-12-09T23:03:07.253973+00:00" +updated: "2026-02-20T04:32:54.918830+00:00" +relations: + - target: e5bc69ae-6d11-4ed7-ab72-5cefac4b7962 + type: BUILDS_ON + direction: outgoing + strength: 0.9 + edge_id: 816ef292-f193-4e26-a58e-042d993efc92 --- Created feature branch feature/dynamic-salary-cap and JSON task plan to replace hardcoded 32.0/32.001 salary cap values with dynamic Team.salary_cap field. Plan includes 8 tasks across helpers.py, draft.py, and transactions.py diff --git a/graph/edges/add-a-new-server-to-n8n-health--FOLLOWS--n8n-server-health-monitor-refa-88e1e2.md b/graph/edges/add-a-new-server-to-n8n-health--FOLLOWS--n8n-server-health-monitor-refa-88e1e2.md new file mode 100644 index 00000000000..54f56525c0e --- /dev/null +++ b/graph/edges/add-a-new-server-to-n8n-health--FOLLOWS--n8n-server-health-monitor-refa-88e1e2.md @@ -0,0 +1,13 @@ +--- +id: 88e1e2f2-15d8-4608-92cb-1d5b05e11f80 +type: FOLLOWS +from_id: f3a41c4a-7970-4bdd-be65-ded62b0d32f7 +from_title: "Add a new server to n8n health monitoring" +to_id: 7fdc5ceb-4b8c-426d-8492-948d106f92bb +to_title: "n8n Server Health Monitor refactored to master + sub-workflow pattern" +strength: 0.8 +created: "2026-02-20T05:12:38.405071+00:00" +updated: "2026-02-20T05:12:38.405071+00:00" +--- + +Procedure for adding servers follows from the dynamic config.yaml-driven architecture diff --git a/graph/edges/add-default-order-by-id-to-pac--RELATED_TO--added-default-ordering-to-stra-1f4f54.md b/graph/edges/add-default-order-by-id-to-pac--RELATED_TO--added-default-ordering-to-stra-1f4f54.md new file mode 100644 index 00000000000..9fa81adde7b --- /dev/null +++ b/graph/edges/add-default-order-by-id-to-pac--RELATED_TO--added-default-ordering-to-stra-1f4f54.md @@ -0,0 +1,13 @@ +--- +id: 1f4f5437-82b5-4e47-86ae-808a913cabaa +type: RELATED_TO +from_id: 1679f2be-c8ff-4762-99b1-0978bd753c47 +from_title: "Add default ORDER BY id to PackType list endpoint" +to_id: e2244428-f4e6-4f62-ab84-f81e395a8473 +to_title: "Added default ordering to StratPlay list endpoint" +strength: 0.85 +created: "2026-02-20T04:32:26.261595+00:00" +updated: "2026-02-20T04:32:26.261595+00:00" +--- + +Same pattern fix: added default ORDER BY id to list endpoints across Paper Dynasty database tables diff --git a/graph/edges/added-default-ordering-to-pitc--RELATED_TO--added-default-order-by-id-to-n-47087f.md b/graph/edges/added-default-ordering-to-pitc--RELATED_TO--added-default-order-by-id-to-n-47087f.md new file mode 100644 index 00000000000..4bd786143d2 --- /dev/null +++ b/graph/edges/added-default-ordering-to-pitc--RELATED_TO--added-default-order-by-id-to-n-47087f.md @@ -0,0 +1,13 @@ +--- +id: 47087f18-d3c6-479b-a097-1dea13393c76 +type: RELATED_TO +from_id: 08952bac-ce99-4b92-b9d9-edc9237c6bc6 +from_title: "Added default ordering to PitchingStat list endpoint" +to_id: ad7d6151-b1d9-4ee6-b31e-16bd338181f5 +to_title: "Added default ORDER BY id to notifications list endpoint" +strength: 0.85 +created: "2026-02-20T04:32:29.691769+00:00" +updated: "2026-02-20T04:32:29.691769+00:00" +--- + +Same pattern fix: added default ORDER BY id to PitchingStat and notifications list endpoints diff --git a/graph/edges/asymmetric-offset-light-switch--BUILDS_ON--custom-screw-holes-for-extende-3e6b79.md b/graph/edges/asymmetric-offset-light-switch--BUILDS_ON--custom-screw-holes-for-extende-3e6b79.md new file mode 100644 index 00000000000..050ac4ebc84 --- /dev/null +++ b/graph/edges/asymmetric-offset-light-switch--BUILDS_ON--custom-screw-holes-for-extende-3e6b79.md @@ -0,0 +1,13 @@ +--- +id: 3e6b7961-59e9-49f1-8881-4a5bef50d7b2 +type: BUILDS_ON +from_id: 02faab41-da64-4637-b89f-1e4bb0690088 +from_title: "Asymmetric offset light switch plate" +to_id: 76aaac4c-f9bd-4de3-b7c0-d84cc4cfc8c3 +to_title: "Custom screw holes for extended light switch plate" +strength: 0.85 +created: "2026-02-20T04:33:25.334677+00:00" +updated: "2026-02-20T04:33:25.334677+00:00" +--- + +Asymmetric offset light switch plate extended the custom screw holes approach diff --git a/graph/edges/auto-invoke-save-memories-at-2--REQUIRES--coremd-auto-load-via-memorymd-1876b3.md b/graph/edges/auto-invoke-save-memories-at-2--REQUIRES--coremd-auto-load-via-memorymd-1876b3.md new file mode 100644 index 00000000000..6cbb7ca2435 --- /dev/null +++ b/graph/edges/auto-invoke-save-memories-at-2--REQUIRES--coremd-auto-load-via-memorymd-1876b3.md @@ -0,0 +1,13 @@ +--- +id: 1876b305-57b5-4491-8b87-cb85ae5745f6 +type: REQUIRES +from_id: c0d10ee1-07e1-4697-a6b6-ae7bb1edfcbc +from_title: "Auto-invoke /save-memories at 25% context remaining before compaction" +to_id: 5cb26f44-8100-413d-8fa1-3668472a7672 +to_title: "CORE.md auto-load via MEMORY.md symlinks" +strength: 0.8 +created: "2026-02-20T04:32:33.773548+00:00" +updated: "2026-02-20T04:32:33.773548+00:00" +--- + +Auto-invoking /save-memories at 25% context depends on CORE.md auto-load symlinks being in place diff --git a/graph/edges/draft-monitor-missing-guild-va--BUILDS_ON--draft-monitor-auto-start-and-o-ff9d71.md b/graph/edges/draft-monitor-missing-guild-va--BUILDS_ON--draft-monitor-auto-start-and-o-ff9d71.md new file mode 100644 index 00000000000..867090c59b8 --- /dev/null +++ b/graph/edges/draft-monitor-missing-guild-va--BUILDS_ON--draft-monitor-auto-start-and-o-ff9d71.md @@ -0,0 +1,13 @@ +--- +id: ff9d7164-7090-44ae-a3d5-7cbdd7bc33ef +type: BUILDS_ON +from_id: f7824582-0d80-401e-bd5b-c23ced0b737a +from_title: "Draft monitor missing guild variable" +to_id: e4f0bee9-9dc0-4bff-8d07-ba8aa22ef83d +to_title: "Draft monitor auto-start and on-clock embed" +strength: 0.85 +created: "2026-02-20T04:32:58.534513+00:00" +updated: "2026-02-20T04:32:58.534513+00:00" +--- + +Draft monitor missing guild variable fix addressed a bug in the draft monitor auto-start feature diff --git a/graph/edges/draftlist-nested-playerteam-id--BUILDS_ON--fix-auto-draft-nested-api-pars-cd4dce.md b/graph/edges/draftlist-nested-playerteam-id--BUILDS_ON--fix-auto-draft-nested-api-pars-cd4dce.md new file mode 100644 index 00000000000..0437dc32c00 --- /dev/null +++ b/graph/edges/draftlist-nested-playerteam-id--BUILDS_ON--fix-auto-draft-nested-api-pars-cd4dce.md @@ -0,0 +1,13 @@ +--- +id: cd4dce12-c777-4c55-8660-f1992ff0f243 +type: BUILDS_ON +from_id: 83dbebd0-b523-4e4d-9351-b1e4fd81999e +from_title: "DraftList nested Player.team_id extraction bug" +to_id: 7c146559-79b7-4254-84cf-89aa1bc6750a +to_title: "Fix auto-draft nested API parsing" +strength: 0.85 +created: "2026-02-20T04:32:13.382771+00:00" +updated: "2026-02-20T04:32:13.382771+00:00" +--- + +DraftList nested Player.team_id extraction bug was a deeper instance of the auto-draft nested API parsing issue diff --git a/graph/edges/fix-numpy-x86-v2-cpu-compatibi--BUILDS_ON--numpy-x86-v2-cpu-compatibility-970d7a.md b/graph/edges/fix-numpy-x86-v2-cpu-compatibi--BUILDS_ON--numpy-x86-v2-cpu-compatibility-970d7a.md new file mode 100644 index 00000000000..d607e9f982e --- /dev/null +++ b/graph/edges/fix-numpy-x86-v2-cpu-compatibi--BUILDS_ON--numpy-x86-v2-cpu-compatibility-970d7a.md @@ -0,0 +1,13 @@ +--- +id: 970d7ac1-a8ea-4217-b93b-49f5750d5354 +type: BUILDS_ON +from_id: 1695d110-7bcf-4e06-92e1-ffed8f686538 +from_title: "Fix numpy X86_V2 CPU compatibility in discord-app" +to_id: 1d3eaf3a-416c-4962-a531-fff4e92c0e66 +to_title: "NumPy X86_V2 CPU compatibility fix" +strength: 0.9 +created: "2026-02-20T04:32:10.279808+00:00" +updated: "2026-02-20T04:32:10.279808+00:00" +--- + +Extended the NumPy X86_V2 CPU compatibility fix to discord-app container diff --git a/graph/edges/fix-player-model-validation-in--BUILDS_ON--fix-soak-and-draftlist-test-fa-5dc338.md b/graph/edges/fix-player-model-validation-in--BUILDS_ON--fix-soak-and-draftlist-test-fa-5dc338.md new file mode 100644 index 00000000000..84e6529fdf4 --- /dev/null +++ b/graph/edges/fix-player-model-validation-in--BUILDS_ON--fix-soak-and-draftlist-test-fa-5dc338.md @@ -0,0 +1,13 @@ +--- +id: 5dc33849-ea41-468e-99a8-4610f2da2c2e +type: BUILDS_ON +from_id: 7888f693-4914-437b-97f0-81906fbfe69e +from_title: "Fix Player model validation in draft pick test" +to_id: c29d2fb4-d2f6-46e9-a95a-8d6ae4110db8 +to_title: "Fix SOAK and DraftList test failures" +strength: 0.85 +created: "2026-02-20T04:33:02.463395+00:00" +updated: "2026-02-20T04:33:02.463395+00:00" +--- + +Player model validation fix in draft pick test extended the earlier SOAK and DraftList test failure fix diff --git a/graph/edges/foundry-actor-compendium-key-p--BUILDS_ON--fix-foundry-compendium-ids-to-26b9fe.md b/graph/edges/foundry-actor-compendium-key-p--BUILDS_ON--fix-foundry-compendium-ids-to-26b9fe.md new file mode 100644 index 00000000000..d712f568880 --- /dev/null +++ b/graph/edges/foundry-actor-compendium-key-p--BUILDS_ON--fix-foundry-compendium-ids-to-26b9fe.md @@ -0,0 +1,13 @@ +--- +id: 26b9fefb-45c6-4465-8552-b3b7d2b9c913 +type: BUILDS_ON +from_id: 27bbd057-e352-4788-b055-bf55eccf8262 +from_title: "Foundry Actor compendium _key prefix" +to_id: 13bd7adb-d1cd-42be-8e14-4f05cfaa95ad +to_title: "Fix Foundry compendium IDs to 16 chars" +strength: 0.85 +created: "2026-02-20T04:32:51.421296+00:00" +updated: "2026-02-20T04:32:51.421296+00:00" +--- + +Foundry Actor compendium _key prefix fix built on the earlier compendium ID length fix diff --git a/graph/edges/gitea-actions-docker-buildx-ca--BUILDS_ON--gitea-actions-docker-buildx-re-cd4fb3.md b/graph/edges/gitea-actions-docker-buildx-ca--BUILDS_ON--gitea-actions-docker-buildx-re-cd4fb3.md new file mode 100644 index 00000000000..294833d70bb --- /dev/null +++ b/graph/edges/gitea-actions-docker-buildx-ca--BUILDS_ON--gitea-actions-docker-buildx-re-cd4fb3.md @@ -0,0 +1,13 @@ +--- +id: cd4fb377-d051-457b-8521-89aa39496ec7 +type: BUILDS_ON +from_id: 77cf0fb1-9a58-43d2-b1d2-6532bafa6204 +from_title: "Gitea Actions: Docker buildx cache auth requires login on all builds" +to_id: 856511bd-a987-48cf-9dfe-ee069f32beea +to_title: "Gitea Actions: Docker buildx registry cache auth fix" +strength: 0.9 +created: "2026-02-20T04:32:04.248740+00:00" +updated: "2026-02-20T04:32:04.248740+00:00" +--- + +Extended the Docker buildx cache auth fix to require login on all builds, not just initial ones diff --git a/graph/edges/live-series-card-update-agent--ALTERNATIVE_TO--retrosheet-card-update-agent-d-5c874e.md b/graph/edges/live-series-card-update-agent--ALTERNATIVE_TO--retrosheet-card-update-agent-d-5c874e.md new file mode 100644 index 00000000000..d2a0c525f97 --- /dev/null +++ b/graph/edges/live-series-card-update-agent--ALTERNATIVE_TO--retrosheet-card-update-agent-d-5c874e.md @@ -0,0 +1,13 @@ +--- +id: 5c874e03-7119-4747-87bc-dff11e08328c +type: ALTERNATIVE_TO +from_id: 9e1897e8-a5ec-4297-ba85-941dcfe304b9 +from_title: "Live series card update agent definition created" +to_id: 8a2f30f0-137d-4390-9252-22c4eb565046 +to_title: "Retrosheet card update agent definition created" +strength: 0.9 +created: "2026-02-20T04:32:07.169669+00:00" +updated: "2026-02-20T04:32:07.169669+00:00" +--- + +Live series and Retrosheet card update agents are parallel approaches for different card types in Paper Dynasty diff --git a/graph/edges/major-domo-fix-use-gitea-api-f--RELATED_TO--paper-dynasty-ci-use-gitea-api-57492b.md b/graph/edges/major-domo-fix-use-gitea-api-f--RELATED_TO--paper-dynasty-ci-use-gitea-api-57492b.md new file mode 100644 index 00000000000..c0ab7b3d031 --- /dev/null +++ b/graph/edges/major-domo-fix-use-gitea-api-f--RELATED_TO--paper-dynasty-ci-use-gitea-api-57492b.md @@ -0,0 +1,13 @@ +--- +id: 57492bcf-6e83-4191-a96d-b5b7d562680c +type: RELATED_TO +from_id: ce2a22a6-7c40-449a-9073-289473b00b99 +from_title: "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures" +to_id: 633e06ab-7503-4368-964f-d2ba8071de4b +to_title: "[paper-dynasty] ci: use Gitea API for tag creation instead of git push" +strength: 0.85 +created: "2026-02-20T04:32:47.755777+00:00" +updated: "2026-02-20T04:32:47.755777+00:00" +--- + +Major Domo and Paper Dynasty both iterated on the same Gitea API tag creation fix diff --git a/graph/edges/n8n-execute-sub-workflow-requi--SOLVES--n8n-server-health-monitor-refa-dbe6bb.md b/graph/edges/n8n-execute-sub-workflow-requi--SOLVES--n8n-server-health-monitor-refa-dbe6bb.md new file mode 100644 index 00000000000..2304b955f68 --- /dev/null +++ b/graph/edges/n8n-execute-sub-workflow-requi--SOLVES--n8n-server-health-monitor-refa-dbe6bb.md @@ -0,0 +1,13 @@ +--- +id: dbe6bb9d-e5ac-4618-ba1e-c973df6313a4 +type: SOLVES +from_id: e085b8bf-6fbf-4fb7-aded-4d2d651fc2e6 +from_title: "n8n Execute Sub-workflow requires workflowSelector object and active sub-workflow" +to_id: 7fdc5ceb-4b8c-426d-8492-948d106f92bb +to_title: "n8n Server Health Monitor refactored to master + sub-workflow pattern" +strength: 0.9 +created: "2026-02-20T05:12:35.788366+00:00" +updated: "2026-02-20T05:12:35.788366+00:00" +--- + +workflowSelector format and activation fix resolved the errors encountered during implementation diff --git a/graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--n8n-claude-code-automated-serv-4fe26e.md b/graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--n8n-claude-code-automated-serv-4fe26e.md new file mode 100644 index 00000000000..a2f7a897551 --- /dev/null +++ b/graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--n8n-claude-code-automated-serv-4fe26e.md @@ -0,0 +1,13 @@ +--- +id: 4fe26e78-998a-4524-8323-63b82348c1ca +type: BUILDS_ON +from_id: 7fdc5ceb-4b8c-426d-8492-948d106f92bb +from_title: "n8n Server Health Monitor refactored to master + sub-workflow pattern" +to_id: 62ee21e8-2b56-4d38-a73d-47e2724f08c6 +to_title: "N8N + Claude Code Automated Server Monitoring System" +strength: 0.9 +created: "2026-02-20T05:12:29.645439+00:00" +updated: "2026-02-20T05:12:29.645439+00:00" +--- + +Refactored the original monolithic N8N server monitor into a master + sub-workflow architecture with dynamic server list diff --git a/graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--self-managing-n8n-server-healt-a91091.md b/graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--self-managing-n8n-server-healt-a91091.md new file mode 100644 index 00000000000..c6cc399335d --- /dev/null +++ b/graph/edges/n8n-server-health-monitor-refa--BUILDS_ON--self-managing-n8n-server-healt-a91091.md @@ -0,0 +1,13 @@ +--- +id: a9109127-1691-4cea-a957-8d55320281d7 +type: BUILDS_ON +from_id: 7fdc5ceb-4b8c-426d-8492-948d106f92bb +from_title: "n8n Server Health Monitor refactored to master + sub-workflow pattern" +to_id: 2268393f-b90f-4ae8-9995-4b942ed2b2f7 +to_title: "Self-managing n8n server health monitor with sub-workflows" +strength: 0.9 +created: "2026-02-20T05:12:31.004470+00:00" +updated: "2026-02-20T05:12:31.004470+00:00" +--- + +Implementation of the plan outlined in the sub-workflow procedure memory diff --git a/graph/edges/paper-dynasty-ci-use-gitea-api--RELATED_TO--major-domo-fix-use-gitea-api-f-415bba.md b/graph/edges/paper-dynasty-ci-use-gitea-api--RELATED_TO--major-domo-fix-use-gitea-api-f-415bba.md new file mode 100644 index 00000000000..b637dc0df74 --- /dev/null +++ b/graph/edges/paper-dynasty-ci-use-gitea-api--RELATED_TO--major-domo-fix-use-gitea-api-f-415bba.md @@ -0,0 +1,13 @@ +--- +id: 415bba1f-54c1-420e-966b-4f1b14f0a727 +type: RELATED_TO +from_id: 40e194b2-3d50-4698-89be-d0db08349882 +from_title: "[paper-dynasty] ci: Use Gitea API for tag creation to avoid branch protection issues" +to_id: ce2a22a6-7c40-449a-9073-289473b00b99 +to_title: "[major-domo] fix: use Gitea API for tag creation to avoid branch protection failures" +strength: 0.9 +created: "2026-02-20T04:32:42.044459+00:00" +updated: "2026-02-20T04:32:42.044459+00:00" +--- + +Same fix applied across repos: Gitea API for tag creation instead of git push to avoid branch protection failures diff --git a/graph/edges/parametric-openscad-light-swit--BUILDS_ON--asymmetric-offset-light-switch-217d7a.md b/graph/edges/parametric-openscad-light-swit--BUILDS_ON--asymmetric-offset-light-switch-217d7a.md new file mode 100644 index 00000000000..0a1fd42cb72 --- /dev/null +++ b/graph/edges/parametric-openscad-light-swit--BUILDS_ON--asymmetric-offset-light-switch-217d7a.md @@ -0,0 +1,13 @@ +--- +id: 217d7a25-b52d-4bf8-bffb-25d08176cb87 +type: BUILDS_ON +from_id: d452d77f-03cd-4524-9fda-f8081e32032c +from_title: "Parametric OpenSCAD light switch plates" +to_id: 02faab41-da64-4637-b89f-1e4bb0690088 +to_title: "Asymmetric offset light switch plate" +strength: 0.85 +created: "2026-02-20T04:33:23.782003+00:00" +updated: "2026-02-20T04:33:23.782003+00:00" +--- + +Parametric OpenSCAD light switch plate system built on the asymmetric offset solution diff --git a/graph/edges/parametric-openscad-light-swit--BUILDS_ON--custom-screw-holes-for-extende-db0f07.md b/graph/edges/parametric-openscad-light-swit--BUILDS_ON--custom-screw-holes-for-extende-db0f07.md new file mode 100644 index 00000000000..562644078e2 --- /dev/null +++ b/graph/edges/parametric-openscad-light-swit--BUILDS_ON--custom-screw-holes-for-extende-db0f07.md @@ -0,0 +1,13 @@ +--- +id: db0f07d6-ccb5-46f6-8882-5c5e728391c0 +type: BUILDS_ON +from_id: d452d77f-03cd-4524-9fda-f8081e32032c +from_title: "Parametric OpenSCAD light switch plates" +to_id: 76aaac4c-f9bd-4de3-b7c0-d84cc4cfc8c3 +to_title: "Custom screw holes for extended light switch plate" +strength: 0.85 +created: "2026-02-20T04:33:21.673666+00:00" +updated: "2026-02-20T04:33:21.673666+00:00" +--- + +Parametric OpenSCAD light switch plate system built on the custom screw holes solution diff --git a/graph/edges/pd-cards-cli-refactor-with-typ--BUILDS_ON--pd-cards-cli-complete-migratio-608bd5.md b/graph/edges/pd-cards-cli-refactor-with-typ--BUILDS_ON--pd-cards-cli-complete-migratio-608bd5.md new file mode 100644 index 00000000000..e6b97f4d908 --- /dev/null +++ b/graph/edges/pd-cards-cli-refactor-with-typ--BUILDS_ON--pd-cards-cli-complete-migratio-608bd5.md @@ -0,0 +1,13 @@ +--- +id: 608bd560-b611-4b3a-aa3a-626ce38d6e9c +type: BUILDS_ON +from_id: 4ab58629-ee98-4ca6-ae31-9679cf0aa4a0 +from_title: "pd-cards CLI refactor with Typer + YAML profiles" +to_id: c223fd4d-53ec-461a-9d49-b1975e52967c +to_title: "pd-cards CLI complete migration" +strength: 0.9 +created: "2026-02-20T04:32:16.702926+00:00" +updated: "2026-02-20T04:32:16.702926+00:00" +--- + +The Typer + YAML profiles refactor decision led to the complete pd-cards CLI migration diff --git a/graph/edges/proxmox-guest-cleanup-removed--RELATED_TO--lxc-300-was-openclaw-migrated-dc2bea.md b/graph/edges/proxmox-guest-cleanup-removed--RELATED_TO--lxc-300-was-openclaw-migrated-dc2bea.md new file mode 100644 index 00000000000..3ff00760c5d --- /dev/null +++ b/graph/edges/proxmox-guest-cleanup-removed--RELATED_TO--lxc-300-was-openclaw-migrated-dc2bea.md @@ -0,0 +1,13 @@ +--- +id: dc2bea7d-5a66-44cf-b8a2-0725446d5bb5 +type: RELATED_TO +from_id: 76f14cf3-97d0-4962-8d26-bf375948b460 +from_title: "Proxmox guest cleanup: removed 14 VMs/LXCs before Phase 2 upgrade" +to_id: a9d6f7a1-69d9-41ab-b28c-88f02d21a43b +to_title: "LXC 300 was OpenClaw (migrated from LXC 224) - shut down intentionally" +strength: 0.8 +created: "2026-02-20T04:32:38.480124+00:00" +updated: "2026-02-20T04:32:38.480124+00:00" +--- + +LXC 300 (OpenClaw) was one of the 14 guests removed during the Proxmox guest cleanup before PVE 8→9 upgrade diff --git a/graph/edges/salary-cap-refactor-plan-creat--BUILDS_ON--salary-cap-helper-functions-ad-816ef2.md b/graph/edges/salary-cap-refactor-plan-creat--BUILDS_ON--salary-cap-helper-functions-ad-816ef2.md new file mode 100644 index 00000000000..cad3eb175df --- /dev/null +++ b/graph/edges/salary-cap-refactor-plan-creat--BUILDS_ON--salary-cap-helper-functions-ad-816ef2.md @@ -0,0 +1,13 @@ +--- +id: 816ef292-f193-4e26-a58e-042d993efc92 +type: BUILDS_ON +from_id: ed9e1e96-f7ef-4594-b88f-65cb2decee87 +from_title: "Salary cap refactor plan created" +to_id: e5bc69ae-6d11-4ed7-ab72-5cefac4b7962 +to_title: "Salary cap helper functions added" +strength: 0.9 +created: "2026-02-20T04:32:54.918830+00:00" +updated: "2026-02-20T04:32:54.918830+00:00" +--- + +Salary cap refactor plan decision led to the implementation of salary cap helper functions diff --git a/graph/edges/server-health-monitor-n8n-work--RELATED_TO--ct-302-claude-runner-provision-73e5a7.md b/graph/edges/server-health-monitor-n8n-work--RELATED_TO--ct-302-claude-runner-provision-73e5a7.md new file mode 100644 index 00000000000..8c281b4386d --- /dev/null +++ b/graph/edges/server-health-monitor-n8n-work--RELATED_TO--ct-302-claude-runner-provision-73e5a7.md @@ -0,0 +1,13 @@ +--- +id: 73e5a7b2-8f91-47a0-bb04-cd324eaf8228 +type: RELATED_TO +from_id: 39379120-896b-46cd-befa-b83d09d7556b +from_title: "Server Health Monitor n8n workflow node structure and connections" +to_id: 5da4468e-4a1b-481b-bbae-a32108dab33e +to_title: "CT 302 claude-runner provisioned for server diagnostics" +strength: 0.7 +created: "2026-02-20T05:12:40.005050+00:00" +updated: "2026-02-20T05:12:40.005050+00:00" +--- + +Workflow nodes SSH into CT 302 which hosts the server diagnostics skill diff --git a/graph/edges/server-health-monitor-n8n-work--REQUIRES--n8n-server-health-monitor-refa-4c7187.md b/graph/edges/server-health-monitor-n8n-work--REQUIRES--n8n-server-health-monitor-refa-4c7187.md new file mode 100644 index 00000000000..0a64fa9815e --- /dev/null +++ b/graph/edges/server-health-monitor-n8n-work--REQUIRES--n8n-server-health-monitor-refa-4c7187.md @@ -0,0 +1,13 @@ +--- +id: 4c71872b-11d1-4def-9da9-63491c229760 +type: REQUIRES +from_id: 39379120-896b-46cd-befa-b83d09d7556b +from_title: "Server Health Monitor n8n workflow node structure and connections" +to_id: 7fdc5ceb-4b8c-426d-8492-948d106f92bb +to_title: "n8n Server Health Monitor refactored to master + sub-workflow pattern" +strength: 0.8 +created: "2026-02-20T05:12:33.393394+00:00" +updated: "2026-02-20T05:12:33.393394+00:00" +--- + +Node structure configuration details require the architecture decision for context diff --git a/graph/edges/vagabond-rpg-critical-data-mod--BUILDS_ON--vagabond-rpg-important-data-mo-b259b6.md b/graph/edges/vagabond-rpg-critical-data-mod--BUILDS_ON--vagabond-rpg-important-data-mo-b259b6.md new file mode 100644 index 00000000000..20431eb9035 --- /dev/null +++ b/graph/edges/vagabond-rpg-critical-data-mod--BUILDS_ON--vagabond-rpg-important-data-mo-b259b6.md @@ -0,0 +1,13 @@ +--- +id: b259b663-b450-4674-ba79-0c48559dd4b6 +type: BUILDS_ON +from_id: 8cc7f4d2-5e43-4fe1-9d91-ea3c25695d36 +from_title: "Vagabond RPG critical data model additions" +to_id: 9980febe-1b20-4f6b-b19d-b67a49e5308c +to_title: "Vagabond RPG important data model enhancements" +strength: 0.85 +created: "2026-02-20T04:33:16.160112+00:00" +updated: "2026-02-20T04:33:16.160112+00:00" +--- + +Critical Vagabond RPG data model additions built on the earlier important data model enhancements diff --git a/graph/edges/vagabond-rpg-important-data-mo--BUILDS_ON--vagabond-rpg-minor-data-model-3567de.md b/graph/edges/vagabond-rpg-important-data-mo--BUILDS_ON--vagabond-rpg-minor-data-model-3567de.md new file mode 100644 index 00000000000..98c9e2671ba --- /dev/null +++ b/graph/edges/vagabond-rpg-important-data-mo--BUILDS_ON--vagabond-rpg-minor-data-model-3567de.md @@ -0,0 +1,13 @@ +--- +id: 3567dee4-2b38-422f-8c9c-936ff61bc43f +type: BUILDS_ON +from_id: 9980febe-1b20-4f6b-b19d-b67a49e5308c +from_title: "Vagabond RPG important data model enhancements" +to_id: cdd7d15d-a7b6-4780-8424-931fb2222e48 +to_title: "Vagabond RPG minor data model improvements" +strength: 0.85 +created: "2026-02-20T04:33:18.385430+00:00" +updated: "2026-02-20T04:33:18.385430+00:00" +--- + +Important Vagabond RPG data model enhancements built on the initial minor data model improvements diff --git a/graph/fixes/add-default-order-by-id-to-packtype-list-endpoint-1679f2.md b/graph/fixes/add-default-order-by-id-to-packtype-list-endpoint-1679f2.md index e28bf324c05..8a72bac99d8 100644 --- a/graph/fixes/add-default-order-by-id-to-packtype-list-endpoint-1679f2.md +++ b/graph/fixes/add-default-order-by-id-to-packtype-list-endpoint-1679f2.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, postgresql, migration] importance: 0.6 confidence: 0.8 created: "2026-02-01T01:29:10.248090+00:00" -updated: "2026-02-01T01:29:10.248090+00:00" +updated: "2026-02-20T04:32:26.261595+00:00" +relations: + - target: e2244428-f4e6-4f62-ab84-f81e395a8473 + type: RELATED_TO + direction: outgoing + strength: 0.85 + edge_id: 1f4f5437-82b5-4e47-86ae-808a913cabaa --- Modified GET /api/v2/packtypes endpoint to include default ordering: PackType.select().order_by(PackType.id). This ensures consistent row ordering for PostgreSQL migration compatibility. diff --git a/graph/fixes/added-default-order-by-id-to-notifications-list-endpoint-ad7d61.md b/graph/fixes/added-default-order-by-id-to-notifications-list-endpoint-ad7d61.md index 03a6f36893d..3612a9d7a1d 100644 --- a/graph/fixes/added-default-order-by-id-to-notifications-list-endpoint-ad7d61.md +++ b/graph/fixes/added-default-order-by-id-to-notifications-list-endpoint-ad7d61.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, postgresql, migration, ordering] importance: 0.6 confidence: 0.8 created: "2026-02-01T01:29:12.408391+00:00" -updated: "2026-02-01T01:29:12.408391+00:00" +updated: "2026-02-20T04:32:29.691769+00:00" +relations: + - target: 08952bac-ce99-4b92-b9d9-edc9237c6bc6 + type: RELATED_TO + direction: incoming + strength: 0.85 + edge_id: 47087f18-d3c6-479b-a097-1dea13393c76 --- Modified GET /api/v2/notifs endpoint in app/routers_v2/notifications.py to add order_by(Notification.id) to ensure consistent row ordering for PostgreSQL migration compatibility. diff --git a/graph/fixes/added-default-ordering-to-pitchingstat-list-endpoint-08952b.md b/graph/fixes/added-default-ordering-to-pitchingstat-list-endpoint-08952b.md index bbbbfe50985..cc165a46489 100644 --- a/graph/fixes/added-default-ordering-to-pitchingstat-list-endpoint-08952b.md +++ b/graph/fixes/added-default-ordering-to-pitchingstat-list-endpoint-08952b.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, postgresql, migration, ordering] importance: 0.6 confidence: 0.8 created: "2026-02-01T01:31:43.245752+00:00" -updated: "2026-02-01T01:31:43.245752+00:00" +updated: "2026-02-20T04:32:29.691769+00:00" +relations: + - target: ad7d6151-b1d9-4ee6-b31e-16bd338181f5 + type: RELATED_TO + direction: outgoing + strength: 0.85 + edge_id: 47087f18-d3c6-479b-a097-1dea13393c76 --- Added .order_by(PitchingStat.id) to the main GET list endpoint in pitstats.py (line 61) to ensure consistent row ordering for PostgreSQL compatibility. The query now reads: PitchingStat.select().join(Card).join(Player).order_by(PitchingStat.id) diff --git a/graph/fixes/added-default-ordering-to-stratplay-list-endpoint-e22444.md b/graph/fixes/added-default-ordering-to-stratplay-list-endpoint-e22444.md index aaa93a2c4a4..7d059fc82b4 100644 --- a/graph/fixes/added-default-ordering-to-stratplay-list-endpoint-e22444.md +++ b/graph/fixes/added-default-ordering-to-stratplay-list-endpoint-e22444.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, postgresql, migration] importance: 0.6 confidence: 0.8 created: "2026-02-01T01:31:38.558200+00:00" -updated: "2026-02-01T01:31:38.558200+00:00" +updated: "2026-02-20T04:32:26.261595+00:00" +relations: + - target: 1679f2be-c8ff-4762-99b1-0978bd753c47 + type: RELATED_TO + direction: incoming + strength: 0.85 + edge_id: 1f4f5437-82b5-4e47-86ae-808a913cabaa --- Added .order_by(StratPlay.id) to StratPlay.select() in the GET list endpoint (line 180 of stratplays.py). This ensures consistent row ordering when querying StratPlay records, which is critical for PostgreSQL compatibility where result ordering is not guaranteed without explicit ORDER BY clause. diff --git a/graph/fixes/draft-monitor-missing-guild-variable-f78245.md b/graph/fixes/draft-monitor-missing-guild-variable-f78245.md index ea076b537f0..810c48a3cf9 100644 --- a/graph/fixes/draft-monitor-missing-guild-variable-f78245.md +++ b/graph/fixes/draft-monitor-missing-guild-variable-f78245.md @@ -6,7 +6,13 @@ tags: [major-domo, python, fix, discord, draft] importance: 0.6 confidence: 0.8 created: "2025-12-13T00:46:25.432142+00:00" -updated: "2025-12-13T00:46:25.432142+00:00" +updated: "2026-02-20T04:32:58.534513+00:00" +relations: + - target: e4f0bee9-9dc0-4bff-8d07-ba8aa22ef83d + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: ff9d7164-7090-44ae-a3d5-7cbdd7bc33ef --- Bug: The _post_on_clock_announcement method in tasks/draft_monitor.py referenced 'guild' variable without defining it, causing role pings to silently fail after auto-draft picks. Fix: Added guild lookup from bot.get_guild(config.guild_id) at the start of the method. This was causing the draft results ping to not post the team role mention. diff --git a/graph/fixes/draftlist-nested-playerteam-id-extraction-bug-83dbeb.md b/graph/fixes/draftlist-nested-playerteam-id-extraction-bug-83dbeb.md index 0c98624db9b..0078370517b 100644 --- a/graph/fixes/draftlist-nested-playerteam-id-extraction-bug-83dbeb.md +++ b/graph/fixes/draftlist-nested-playerteam-id-extraction-bug-83dbeb.md @@ -6,7 +6,13 @@ tags: [major-domo, python, fix, draft, pydantic, nested-objects] importance: 0.7 confidence: 0.8 created: "2025-12-11T18:25:14.873571+00:00" -updated: "2025-12-11T18:25:14.873571+00:00" +updated: "2026-02-20T04:32:13.382771+00:00" +relations: + - target: 7c146559-79b7-4254-84cf-89aa1bc6750a + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: cd4dce12-c777-4c55-8660-f1992ff0f243 --- Fixed auto-draft failure where player.team_id was None for all DraftList entries. Root cause: Pydantic's default nested object creation calls Player(**data) directly, NOT Player.from_api_data(data). Since Player.from_api_data() extracts team_id from nested team object (line 90), but wasn't being called, player.team_id remained None. Fix: Added DraftList.from_api_data() override that explicitly calls Player.from_api_data() and Team.from_api_data() for nested objects. The check 'player.team_id \!= config.free_agent_team_id' was evaluating 'None \!= 547' = True, skipping ALL players. Files: models/draft_list.py (added from_api_data), tests/test_models.py (added regression test). diff --git a/graph/fixes/fix-player-model-validation-in-draft-pick-test-7888f6.md b/graph/fixes/fix-player-model-validation-in-draft-pick-test-7888f6.md index 93a7b49c0f4..ef40fcc595b 100644 --- a/graph/fixes/fix-player-model-validation-in-draft-pick-test-7888f6.md +++ b/graph/fixes/fix-player-model-validation-in-draft-pick-test-7888f6.md @@ -6,7 +6,13 @@ tags: [major-domo, python, test-fix, pydantic] importance: 0.4 confidence: 0.8 created: "2025-12-10T04:30:50.680312+00:00" -updated: "2025-12-10T04:30:50.680312+00:00" +updated: "2026-02-20T04:33:02.463395+00:00" +relations: + - target: c29d2fb4-d2f6-46e9-a95a-8d6ae4110db8 + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: 5dc33849-ea41-468e-99a8-4610f2da2c2e --- Added required fields (wara, image, season, pos_1) to Player instantiation in test_patch_draftpick_success test. The Player Pydantic model requires these fields but the test was only providing id, name, and team. diff --git a/graph/fixes/major-domo-fix-use-gitea-api-for-tag-creation-to-avoid-branc-ce2a22.md b/graph/fixes/major-domo-fix-use-gitea-api-for-tag-creation-to-avoid-branc-ce2a22.md index 5bf834699c5..30e1ba41293 100644 --- a/graph/fixes/major-domo-fix-use-gitea-api-for-tag-creation-to-avoid-branc-ce2a22.md +++ b/graph/fixes/major-domo-fix-use-gitea-api-for-tag-creation-to-avoid-branc-ce2a22.md @@ -6,7 +6,18 @@ tags: [major-domo, commit, configuration, creation, debugging, deployment, fix, importance: 0.7 confidence: 0.8 created: "2026-02-17T23:29:40.554110+00:00" -updated: "2026-02-17T23:29:40.554110+00:00" +updated: "2026-02-20T04:32:47.755777+00:00" +relations: + - target: 40e194b2-3d50-4698-89be-d0db08349882 + type: RELATED_TO + direction: incoming + strength: 0.9 + edge_id: 415bba1f-54c1-420e-966b-4f1b14f0a727 + - target: 633e06ab-7503-4368-964f-d2ba8071de4b + type: RELATED_TO + direction: outgoing + strength: 0.85 + edge_id: 57492bcf-6e83-4191-a96d-b5b7d562680c --- Commits made: 1 diff --git a/graph/fixes/n8n-execute-sub-workflow-requires-workflowselector-object-an-e085b8.md b/graph/fixes/n8n-execute-sub-workflow-requires-workflowselector-object-an-e085b8.md new file mode 100644 index 00000000000..7c5eb39e83f --- /dev/null +++ b/graph/fixes/n8n-execute-sub-workflow-requires-workflowselector-object-an-e085b8.md @@ -0,0 +1,48 @@ +--- +id: e085b8bf-6fbf-4fb7-aded-4d2d651fc2e6 +type: fix +title: "n8n Execute Sub-workflow requires workflowSelector object and active sub-workflow" +tags: [n8n, fix, api, workflow] +importance: 0.7 +confidence: 0.8 +created: "2026-02-20T05:11:47.869751+00:00" +updated: "2026-02-20T05:12:35.788366+00:00" +relations: + - target: 7fdc5ceb-4b8c-426d-8492-948d106f92bb + type: SOLVES + direction: outgoing + strength: 0.9 + edge_id: dbe6bb9d-e5ac-4618-ba1e-c973df6313a4 +--- + +## Problem + +When creating an n8n Execute Sub-workflow node (typeVersion 1.1+) via the API/MCP, passing `workflowId` as a plain string like `"BhzYmWr6NcIDoioy"` causes: `"No information about the workflow to execute found. Please provide either the 'id' or 'code'!"` + +Even after fixing the format, if the sub-workflow is not activated, it fails with: `"Workflow is not active and cannot be executed."` + +## Solution + +Two fixes required: + +1. **workflowId format**: Must be a workflowSelector object, not a plain string: +```json +{ + "workflowId": { + "__rl": true, + "value": "BhzYmWr6NcIDoioy", + "mode": "id" + } +} +``` + +2. **Sub-workflow must be active**: Even though sub-workflows don't have their own triggers, n8n requires them to be activated before a parent can call them. Activate via API: +```bash +curl -X POST "http://HOST:5678/api/v1/workflows/WORKFLOW_ID/activate" \ + -H "X-N8N-API-KEY: $KEY" +``` + +## Context +- n8n-nodes-base.executeWorkflow typeVersion 1.1+ uses workflowSelector +- typeVersion 1.0 used plain string (but shows "outdated" warning) +- The `callerPolicy: "workflowsFromSameOwner"` setting enforces same-owner access diff --git a/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-instead-of-g-633e06.md b/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-instead-of-g-633e06.md index 952558c8dae..a904b2e0d45 100644 --- a/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-instead-of-g-633e06.md +++ b/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-instead-of-g-633e06.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, automation, commit, configuration, creation, deployment, f importance: 0.7 confidence: 0.8 created: "2026-02-17T23:20:22.832133+00:00" -updated: "2026-02-17T23:20:22.832133+00:00" +updated: "2026-02-20T04:32:47.755777+00:00" +relations: + - target: ce2a22a6-7c40-449a-9073-289473b00b99 + type: RELATED_TO + direction: incoming + strength: 0.85 + edge_id: 57492bcf-6e83-4191-a96d-b5b7d562680c --- Commits made: 1 diff --git a/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-to-avoid-bra-40e194.md b/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-to-avoid-bra-40e194.md index 5e0c37f1009..b0dcece234a 100644 --- a/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-to-avoid-bra-40e194.md +++ b/graph/fixes/paper-dynasty-ci-use-gitea-api-for-tag-creation-to-avoid-bra-40e194.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, automation, commit, configuration, creation, debugging, de importance: 0.7 confidence: 0.8 created: "2026-02-17T23:25:52.871466+00:00" -updated: "2026-02-17T23:25:52.871466+00:00" +updated: "2026-02-20T04:32:42.044459+00:00" +relations: + - target: ce2a22a6-7c40-449a-9073-289473b00b99 + type: RELATED_TO + direction: outgoing + strength: 0.9 + edge_id: 415bba1f-54c1-420e-966b-4f1b14f0a727 --- Commits made: 1 diff --git a/graph/procedures/add-a-new-server-to-n8n-health-monitoring-f3a41c.md b/graph/procedures/add-a-new-server-to-n8n-health-monitoring-f3a41c.md new file mode 100644 index 00000000000..231a91e41b4 --- /dev/null +++ b/graph/procedures/add-a-new-server-to-n8n-health-monitoring-f3a41c.md @@ -0,0 +1,38 @@ +--- +id: f3a41c4a-7970-4bdd-be65-ded62b0d32f7 +type: procedure +title: "Add a new server to n8n health monitoring" +tags: [n8n, monitoring, homelab, server-diagnostics, procedure] +importance: 0.7 +confidence: 0.8 +created: "2026-02-20T05:12:11.465700+00:00" +updated: "2026-02-20T05:12:38.405071+00:00" +relations: + - target: 7fdc5ceb-4b8c-426d-8492-948d106f92bb + type: FOLLOWS + direction: outgoing + strength: 0.8 + edge_id: 88e1e2f2-15d8-4608-92cb-1d5b05e11f80 +--- + +## Procedure + +To add a new server to the automated health monitoring system, only one file needs editing — no n8n workflow changes required. + +## Steps + +1. SSH to CT 302: `ssh n8n "ssh -i /root/.ssh/n8n_runner_key root@10.10.0.148"` +2. Edit config.yaml: `vi /root/.claude/skills/server-diagnostics/config.yaml` +3. Add new server entry under `servers:` key with connection details, checks, and thresholds +4. Verify list_servers.sh picks it up: `/root/.claude/skills/server-diagnostics/list_servers.sh` +5. Test health check for new server: `.venv/bin/python health_check.py --server ` +6. Wait for next 5-minute cycle to confirm in n8n execution history + +## Preconditions +- CT 302 can SSH to the target server (homelab_rsa key deployed) +- Target server has the expected services/containers to check + +## Postconditions +- list_servers.sh returns the new server key in its JSON array +- n8n master workflow splits to include the new server +- Sub-workflow successfully checks the new server each cycle diff --git a/graph/procedures/self-managing-n8n-server-health-monitor-with-sub-workflows-226839.md b/graph/procedures/self-managing-n8n-server-health-monitor-with-sub-workflows-226839.md index 5d4a861209b..2be6255b6c6 100644 --- a/graph/procedures/self-managing-n8n-server-health-monitor-with-sub-workflows-226839.md +++ b/graph/procedures/self-managing-n8n-server-health-monitor-with-sub-workflows-226839.md @@ -6,7 +6,13 @@ tags: [n8n, homelab, monitoring, claude-runner, architecture, procedure] importance: 0.9 confidence: 0.8 created: "2026-02-20T04:31:58.029736+00:00" -updated: "2026-02-20T04:31:58.029736+00:00" +updated: "2026-02-20T05:12:31.004470+00:00" +relations: + - target: 7fdc5ceb-4b8c-426d-8492-948d106f92bb + type: BUILDS_ON + direction: incoming + strength: 0.9 + edge_id: a9109127-1691-4cea-a957-8d55320281d7 --- ## Architecture diff --git a/graph/solutions/asymmetric-offset-light-switch-plate-02faab.md b/graph/solutions/asymmetric-offset-light-switch-plate-02faab.md index a9b9f5adfb0..48e8c4a4b68 100644 --- a/graph/solutions/asymmetric-offset-light-switch-plate-02faab.md +++ b/graph/solutions/asymmetric-offset-light-switch-plate-02faab.md @@ -6,7 +6,18 @@ tags: [openscad-models, openscad, 3d-printing, parametric-design] importance: 0.5 confidence: 0.8 created: "2025-12-21T00:13:51.810864+00:00" -updated: "2025-12-21T00:13:51.810864+00:00" +updated: "2026-02-20T04:33:25.334677+00:00" +relations: + - target: d452d77f-03cd-4524-9fda-f8081e32032c + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: 217d7a25-b52d-4bf8-bffb-25d08176cb87 + - target: 76aaac4c-f9bd-4de3-b7c0-d84cc4cfc8c3 + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: 3e6b7961-59e9-49f1-8881-4a5bef50d7b2 --- Created GFCI plate variant with off-center opening. Plate extends 2.5 inches left and 4.5 inches right of the opening (7 inches total width). Used translate() to offset plate_body and back_recess modules while keeping opening and screw holes at origin. diff --git a/graph/solutions/coremd-auto-load-via-memorymd-symlinks-5cb26f.md b/graph/solutions/coremd-auto-load-via-memorymd-symlinks-5cb26f.md index e7e5170881d..d4cb4c221e0 100644 --- a/graph/solutions/coremd-auto-load-via-memorymd-symlinks-5cb26f.md +++ b/graph/solutions/coremd-auto-load-via-memorymd-symlinks-5cb26f.md @@ -6,7 +6,13 @@ tags: [cognitive-memory, claude-code, automation, configuration] importance: 0.9 confidence: 0.8 created: "2026-02-16T16:45:34.975722+00:00" -updated: "2026-02-16T16:45:34.975722+00:00" +updated: "2026-02-20T04:32:33.773548+00:00" +relations: + - target: c0d10ee1-07e1-4697-a6b6-ae7bb1edfcbc + type: REQUIRES + direction: incoming + strength: 0.8 + edge_id: 1876b305-57b5-4491-8b87-cb85ae5745f6 --- Solved unreliable CORE.md loading at session start. Claude Code auto-injects each project's ~/.claude/projects//memory/MEMORY.md into the system prompt. Symlinked all project MEMORY.md files to ~/.claude/memory/CORE.md. Script at ~/.local/bin/claude-memory-symlinks refreshes symlinks daily via cognitive-memory-daily.service. Migrated project-specific MEMORY.md content (major-domo infra, strat-gameplay encoding) into cognitive memory before replacing. Updated ~/.claude/CLAUDE.md to remove manual load instruction. Documented in claude-home/development/claude-code-memory-autoload.md. diff --git a/graph/solutions/custom-screw-holes-for-extended-light-switch-plate-76aaac.md b/graph/solutions/custom-screw-holes-for-extended-light-switch-plate-76aaac.md index 6a370ef02dc..7d80cecba87 100644 --- a/graph/solutions/custom-screw-holes-for-extended-light-switch-plate-76aaac.md +++ b/graph/solutions/custom-screw-holes-for-extended-light-switch-plate-76aaac.md @@ -6,7 +6,18 @@ tags: [openscad-models, openscad, 3d-printing, parametric-design] importance: 0.4 confidence: 0.8 created: "2025-12-20T23:48:22.837579+00:00" -updated: "2025-12-20T23:48:22.837579+00:00" +updated: "2026-02-20T04:33:25.334677+00:00" +relations: + - target: d452d77f-03cd-4524-9fda-f8081e32032c + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: db0f07d6-ccb5-46f6-8882-5c5e728391c0 + - target: 02faab41-da64-4637-b89f-1e4bb0690088 + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: 3e6b7961-59e9-49f1-8881-4a5bef50d7b2 --- Added 4-hole pattern to extended GFCI plate: two main horizontal pill-shaped slots (14mm x 5.6mm) and two smaller circular outer holes (2.68mm) offset 0.25 inches beyond. Used BOSL2 rect() with rounding for pill shapes. diff --git a/graph/solutions/draft-monitor-auto-start-and-on-clock-embed-e4f0be.md b/graph/solutions/draft-monitor-auto-start-and-on-clock-embed-e4f0be.md index 63bbcbd54ae..94263058bd1 100644 --- a/graph/solutions/draft-monitor-auto-start-and-on-clock-embed-e4f0be.md +++ b/graph/solutions/draft-monitor-auto-start-and-on-clock-embed-e4f0be.md @@ -6,7 +6,13 @@ tags: [major-domo, discord, draft, python, fix] importance: 0.7 confidence: 0.8 created: "2025-12-11T05:04:46.922103+00:00" -updated: "2025-12-11T05:04:46.922103+00:00" +updated: "2026-02-20T04:32:58.534513+00:00" +relations: + - target: f7824582-0d80-401e-bd5b-c23ced0b737a + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: ff9d7164-7090-44ae-a3d5-7cbdd7bc33ef --- Added draft monitor task that auto-starts when timer is enabled via /draft-admin timer or /draft-admin set-pick. Created on-clock announcement embed showing team name, deadline, sWAR, cap space, last 5 picks, and top 5 roster players. Implemented smart polling intervals (30s/15s/5s based on time remaining). Fixed DraftAdminGroup to accept bot parameter for task management. Key files: commands/draft/admin.py, tasks/draft_monitor.py, views/draft_views.py diff --git a/graph/solutions/fix-auto-draft-nested-api-parsing-7c1465.md b/graph/solutions/fix-auto-draft-nested-api-parsing-7c1465.md index 507cf126ffa..51c8e6ed0b9 100644 --- a/graph/solutions/fix-auto-draft-nested-api-parsing-7c1465.md +++ b/graph/solutions/fix-auto-draft-nested-api-parsing-7c1465.md @@ -6,7 +6,13 @@ tags: [major-domo, python, fix, draft, pydantic] importance: 0.7 confidence: 0.8 created: "2025-12-11T18:53:18.129453+00:00" -updated: "2025-12-11T18:53:18.129453+00:00" +updated: "2026-02-20T04:32:13.382771+00:00" +relations: + - target: 83dbebd0-b523-4e4d-9351-b1e4fd81999e + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: cd4dce12-c777-4c55-8660-f1992ff0f243 --- DraftList.from_api_data() now properly calls Player.from_api_data() for nested player objects, ensuring player.team_id is extracted from the nested team object. Also fixed validate_cap_space() unpacking to accept all 3 return values. Bug: Auto-draft was marking all players as not available because player.team_id was None (None != 547 always True). diff --git a/graph/solutions/fix-foundry-compendium-ids-to-16-chars-13bd7a.md b/graph/solutions/fix-foundry-compendium-ids-to-16-chars-13bd7a.md index 293d888a681..9a4c03af5eb 100644 --- a/graph/solutions/fix-foundry-compendium-ids-to-16-chars-13bd7a.md +++ b/graph/solutions/fix-foundry-compendium-ids-to-16-chars-13bd7a.md @@ -6,7 +6,13 @@ tags: [vagabond-rpg, foundryvtt, fix, compendium] importance: 0.6 confidence: 0.8 created: "2025-12-18T17:04:20.809673+00:00" -updated: "2025-12-18T17:04:20.809673+00:00" +updated: "2026-02-20T04:32:51.421296+00:00" +relations: + - target: 27bbd057-e352-4788-b055-bf55eccf8262 + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: 26b9fefb-45c6-4465-8552-b3b7d2b9c913 --- Foundry VTT v13 requires all compendium _id values to be exactly 16 alphanumeric characters. Fixed by using 7-char type prefix (vgbdAnc, vgbdCls, vgbdPrk, etc.) + 9-char name with collision handling via numeric suffixes. Updated 711 files across all compendiums. diff --git a/graph/solutions/fix-numpy-x86-v2-cpu-compatibility-in-discord-app-1695d1.md b/graph/solutions/fix-numpy-x86-v2-cpu-compatibility-in-discord-app-1695d1.md index 1d67a3cb673..ded67e6fc1b 100644 --- a/graph/solutions/fix-numpy-x86-v2-cpu-compatibility-in-discord-app-1695d1.md +++ b/graph/solutions/fix-numpy-x86-v2-cpu-compatibility-in-discord-app-1695d1.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, python, numpy, docker, fix] importance: 0.7 confidence: 0.8 created: "2026-01-08T20:04:25.371628+00:00" -updated: "2026-01-08T20:04:25.371628+00:00" +updated: "2026-02-20T04:32:10.279808+00:00" +relations: + - target: 1d3eaf3a-416c-4962-a531-fff4e92c0e66 + type: BUILDS_ON + direction: outgoing + strength: 0.9 + edge_id: 970d7ac1-a8ea-4217-b93b-49f5750d5354 --- Added numpy<2 constraint to discord-app/requirements.txt. Numpy 2.x requires X86_V2 CPU instructions that sba-bots doesn't support, causing cogs.admins and cogs.gameplay to fail loading with RuntimeError. The database repo already had this constraint but discord-app was missing it. diff --git a/graph/solutions/fix-soak-and-draftlist-test-failures-c29d2f.md b/graph/solutions/fix-soak-and-draftlist-test-failures-c29d2f.md index 04b23dea90d..4141f1c8e7a 100644 --- a/graph/solutions/fix-soak-and-draftlist-test-failures-c29d2f.md +++ b/graph/solutions/fix-soak-and-draftlist-test-failures-c29d2f.md @@ -6,7 +6,13 @@ tags: [major-domo, python, test-fix, pydantic] importance: 0.5 confidence: 0.8 created: "2025-12-09T00:23:12.413916+00:00" -updated: "2025-12-09T00:23:12.413916+00:00" +updated: "2026-02-20T04:33:02.463395+00:00" +relations: + - target: 7888f693-4914-437b-97f0-81906fbfe69e + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: 5dc33849-ea41-468e-99a8-4610f2da2c2e --- Fixed two test issues in Major Domo discord-app-v2: diff --git a/graph/solutions/foundry-actor-compendium-key-prefix-27bbd0.md b/graph/solutions/foundry-actor-compendium-key-prefix-27bbd0.md index f47a83d7488..d01a742a800 100644 --- a/graph/solutions/foundry-actor-compendium-key-prefix-27bbd0.md +++ b/graph/solutions/foundry-actor-compendium-key-prefix-27bbd0.md @@ -6,7 +6,13 @@ tags: [vagabond-rpg, foundryvtt, compendium, fix] importance: 0.7 confidence: 0.8 created: "2025-12-18T19:15:46.657518+00:00" -updated: "2025-12-18T19:15:46.657518+00:00" +updated: "2026-02-20T04:32:51.421296+00:00" +relations: + - target: 13bd7adb-d1cd-42be-8e14-4f05cfaa95ad + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: 26b9fefb-45c6-4465-8552-b3b7d2b9c913 --- Actor compendiums in Foundry VTT require _key field to use \!actors\! prefix, not \!items\!. The bestiary compendium appeared empty because all 92 JSON files had _key: '\!items\!{id}' instead of _key: '\!actors\!{id}'. Fixed with sed -i 's/\!items\!/\!actors\!/g' on all bestiary source files. diff --git a/graph/solutions/gitea-actions-docker-buildx-cache-auth-requires-login-on-all-77cf0f.md b/graph/solutions/gitea-actions-docker-buildx-cache-auth-requires-login-on-all-77cf0f.md index 699310445bd..ec8fd3fbd72 100644 --- a/graph/solutions/gitea-actions-docker-buildx-cache-auth-requires-login-on-all-77cf0f.md +++ b/graph/solutions/gitea-actions-docker-buildx-cache-auth-requires-login-on-all-77cf0f.md @@ -6,7 +6,13 @@ tags: [gitea, docker, ci-cd, buildx, cache, fix] importance: 0.7 confidence: 0.8 created: "2026-02-13T21:09:47.183681+00:00" -updated: "2026-02-13T21:09:47.183681+00:00" +updated: "2026-02-20T04:32:04.248740+00:00" +relations: + - target: 856511bd-a987-48cf-9dfe-ee069f32beea + type: BUILDS_ON + direction: outgoing + strength: 0.9 + edge_id: cd4fb377-d051-457b-8521-89aa39496ec7 --- When using Docker buildx with registry-based cache (cache-from/cache-to type=registry), the Docker Hub login step must run on ALL builds (both PR and main), not just main branch. Without login, PR builds fail on second run with 'push access denied' when trying to write cache layers. diff --git a/graph/solutions/gitea-actions-docker-buildx-registry-cache-auth-fix-856511.md b/graph/solutions/gitea-actions-docker-buildx-registry-cache-auth-fix-856511.md index 32aaa395217..4e61625425f 100644 --- a/graph/solutions/gitea-actions-docker-buildx-registry-cache-auth-fix-856511.md +++ b/graph/solutions/gitea-actions-docker-buildx-registry-cache-auth-fix-856511.md @@ -6,7 +6,13 @@ tags: [gitea, docker, ci-cd, fix, buildx, cache] importance: 0.7 confidence: 0.8 created: "2026-02-13T20:38:30.950917+00:00" -updated: "2026-02-13T20:38:30.950917+00:00" +updated: "2026-02-20T04:32:04.248740+00:00" +relations: + - target: 77cf0fb1-9a58-43d2-b1d2-6532bafa6204 + type: BUILDS_ON + direction: incoming + strength: 0.9 + edge_id: cd4fb377-d051-457b-8521-89aa39496ec7 --- When using Docker buildx with registry-based cache (cache-from/cache-to type=registry), the Docker Hub login step must run on ALL builds, not just main branch. Without login, PR builds fail on second run with 'push access denied, repository does not exist or may require authorization' when trying to write cache layers. diff --git a/graph/solutions/n8n-claude-code-automated-server-monitoring-system-62ee21.md b/graph/solutions/n8n-claude-code-automated-server-monitoring-system-62ee21.md index 65d1a2c6570..6d04dba5fb0 100644 --- a/graph/solutions/n8n-claude-code-automated-server-monitoring-system-62ee21.md +++ b/graph/solutions/n8n-claude-code-automated-server-monitoring-system-62ee21.md @@ -6,12 +6,17 @@ tags: [n8n, claude-code, automation, docker, monitoring, homelab, discord, ssh, importance: 0.9 confidence: 0.8 created: "2025-12-20T04:35:53.428069+00:00" -updated: "2025-12-20T04:35:53.428069+00:00" +updated: "2026-02-20T05:12:29.645439+00:00" relations: - target: 775506ce-ed06-4c36-95f3-73379855b44a type: BUILDS_ON direction: outgoing strength: 0.5 + - target: 7fdc5ceb-4b8c-426d-8492-948d106f92bb + type: BUILDS_ON + direction: incoming + strength: 0.9 + edge_id: 4fe26e78-998a-4524-8323-63b82348c1ca --- Built automated server health monitoring with N8N and Claude Code headless mode. diff --git a/graph/solutions/numpy-x86-v2-cpu-compatibility-fix-1d3eaf.md b/graph/solutions/numpy-x86-v2-cpu-compatibility-fix-1d3eaf.md index 680382a8b5d..de6f31f11ec 100644 --- a/graph/solutions/numpy-x86-v2-cpu-compatibility-fix-1d3eaf.md +++ b/graph/solutions/numpy-x86-v2-cpu-compatibility-fix-1d3eaf.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, python, docker, numpy, fix] importance: 0.7 confidence: 0.8 created: "2026-01-07T19:17:16.601527+00:00" -updated: "2026-01-07T19:17:16.601527+00:00" +updated: "2026-02-20T04:32:10.279808+00:00" +relations: + - target: 1695d110-7bcf-4e06-92e1-ffed8f686538 + type: BUILDS_ON + direction: incoming + strength: 0.9 + edge_id: 970d7ac1-a8ea-4217-b93b-49f5750d5354 --- NumPy 2.x requires X86_V2 instruction set (SSE4.2/AVX) which older server CPUs don't support. When building Docker images locally on newer hardware then deploying to older servers, pin numpy<2 in requirements.txt to use numpy 1.26.x which doesn't have this requirement. Error message: RuntimeError: NumPy was built with baseline optimizations: (X86_V2) but your machine doesn't support: (X86_V2). diff --git a/graph/solutions/parametric-openscad-light-switch-plates-d452d7.md b/graph/solutions/parametric-openscad-light-switch-plates-d452d7.md index ddd4e11ace8..148436bfb3a 100644 --- a/graph/solutions/parametric-openscad-light-switch-plates-d452d7.md +++ b/graph/solutions/parametric-openscad-light-switch-plates-d452d7.md @@ -6,7 +6,18 @@ tags: [openscad-models, openscad, 3d-printing, parametric-design] importance: 0.5 confidence: 0.8 created: "2025-12-20T23:42:23.164961+00:00" -updated: "2025-12-20T23:42:23.164961+00:00" +updated: "2026-02-20T04:33:23.782003+00:00" +relations: + - target: 76aaac4c-f9bd-4de3-b7c0-d84cc4cfc8c3 + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: db0f07d6-ccb5-46f6-8882-5c5e728391c0 + - target: 02faab41-da64-4637-b89f-1e4bb0690088 + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: 217d7a25-b52d-4bf8-bffb-25d08176cb87 --- Converted STL light switch plate files to parametric OpenSCAD models. Key features: print-optimized orientation (front face at Z=0 eliminates overhangs on beveled edges), back recess for electrical box, round screw holes, BOSL2 library for clean geometry. Created extended 153x230mm custom plate and 2D SVG template for paper test-fit printing. diff --git a/graph/solutions/pd-cards-cli-complete-migration-c223fd.md b/graph/solutions/pd-cards-cli-complete-migration-c223fd.md index 39af2a89f3d..069564ba16a 100644 --- a/graph/solutions/pd-cards-cli-complete-migration-c223fd.md +++ b/graph/solutions/pd-cards-cli-complete-migration-c223fd.md @@ -6,7 +6,13 @@ tags: [paper-dynasty, python, typer, cli, refactor] importance: 0.7 confidence: 0.8 created: "2025-12-18T22:39:45.415839+00:00" -updated: "2025-12-18T22:39:45.415839+00:00" +updated: "2026-02-20T04:32:16.702926+00:00" +relations: + - target: 4ab58629-ee98-4ca6-ae31-9679cf0aa4a0 + type: BUILDS_ON + direction: incoming + strength: 0.9 + edge_id: 608bd560-b611-4b3a-aa3a-626ce38d6e9c --- Migrated all major card creation workflows to Typer CLI: live-series (update, status), retrosheet (process, arms, validate, defense), scouting (batters, pitchers, all), upload (s3, check, refresh). CLI wrappers configure module globals and call existing async main functions. Pattern: import module, set globals, asyncio.run(module.main()). Updated CLAUDE.md with comprehensive CLI documentation. Legacy scripts remain available. diff --git a/graph/solutions/salary-cap-helper-functions-added-e5bc69.md b/graph/solutions/salary-cap-helper-functions-added-e5bc69.md index 999982d5157..98473e42f8f 100644 --- a/graph/solutions/salary-cap-helper-functions-added-e5bc69.md +++ b/graph/solutions/salary-cap-helper-functions-added-e5bc69.md @@ -6,7 +6,13 @@ tags: [major-domo, python, refactor, salary-cap, helpers] importance: 0.6 confidence: 0.8 created: "2025-12-09T23:09:30.752948+00:00" -updated: "2025-12-09T23:09:30.752948+00:00" +updated: "2026-02-20T04:32:54.918830+00:00" +relations: + - target: ed9e1e96-f7ef-4594-b88f-65cb2decee87 + type: BUILDS_ON + direction: incoming + strength: 0.9 + edge_id: 816ef292-f193-4e26-a58e-042d993efc92 --- Added get_team_salary_cap() and exceeds_salary_cap() helper functions to helpers.py with DEFAULT_SALARY_CAP=32.0 and SALARY_CAP_TOLERANCE=0.001 constants. These centralize salary cap logic previously hardcoded as 32.0/32.001 across draft.py and transactions.py. Includes 17 unit tests. Part of feature/dynamic-salary-cap branch refactor. diff --git a/graph/solutions/vagabond-rpg-critical-data-model-additions-8cc7f4.md b/graph/solutions/vagabond-rpg-critical-data-model-additions-8cc7f4.md index ed16eee255f..706ed86367d 100644 --- a/graph/solutions/vagabond-rpg-critical-data-model-additions-8cc7f4.md +++ b/graph/solutions/vagabond-rpg-critical-data-model-additions-8cc7f4.md @@ -6,7 +6,13 @@ tags: [vagabond-rpg, foundryvtt, data-models, fix] importance: 0.6 confidence: 0.8 created: "2025-12-12T21:52:24.386526+00:00" -updated: "2025-12-12T21:52:24.386526+00:00" +updated: "2026-02-20T04:33:16.160112+00:00" +relations: + - target: 9980febe-1b20-4f6b-b19d-b67a49e5308c + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: b259b663-b450-4674-ba79-0c48559dd4b6 --- Added critical omissions from rulebook audit: ancestryId reference for characters, studiedDice resource pool (Scholar class d8s), statusEffects array with Countdown Dice support (d6→d4→ends duration tracking), Luck system integration for perks (luckCost/grantsLuck), ritual system for perks (isRitual, ritualDuration, ritualComponents), and relic schema for weapons/armor/equipment (tier, abilities, attunement, uses, lore). Also added effect keys for luck.max and studiedDice.max. diff --git a/graph/solutions/vagabond-rpg-important-data-model-enhancements-9980fe.md b/graph/solutions/vagabond-rpg-important-data-model-enhancements-9980fe.md index 02350eef4d2..37445ce0bb3 100644 --- a/graph/solutions/vagabond-rpg-important-data-model-enhancements-9980fe.md +++ b/graph/solutions/vagabond-rpg-important-data-model-enhancements-9980fe.md @@ -6,7 +6,18 @@ tags: [vagabond-rpg, foundryvtt, data-models, fix] importance: 0.6 confidence: 0.8 created: "2025-12-12T21:55:34.347497+00:00" -updated: "2025-12-12T21:55:34.347497+00:00" +updated: "2026-02-20T04:33:18.385430+00:00" +relations: + - target: 8cc7f4d2-5e43-4fe1-9d91-ea3c25695d36 + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: b259b663-b450-4674-ba79-0c48559dd4b6 + - target: cdd7d15d-a7b6-4780-8424-931fb2222e48 + type: BUILDS_ON + direction: outgoing + strength: 0.85 + edge_id: 3567dee4-2b38-422f-8c9c-936ff61bc43f --- Added important omissions from rulebook audit: Enhanced customResources with type/subtype/resetOn/data for class-specific tracking (Alchemist Formulae, Hunter's Mark, etc.). Added favorHinder tracking for d20 +/- d6 modifiers. Added movement types (walk/fly/swim/climb/burrow) matching NPC structure. Added focus tracking for maintained spells. Added progression tracking (xpPacing, perksGainedByLevel, statIncreasesByLevel). Enhanced itemSlots with bonuses array and overburdened status. Added weapon material property (mundane/silvered/adamantine/magical). Updated effects helper with movement type keys. diff --git a/graph/solutions/vagabond-rpg-minor-data-model-improvements-cdd7d1.md b/graph/solutions/vagabond-rpg-minor-data-model-improvements-cdd7d1.md index 700a290c5fc..3bd5c91fe6e 100644 --- a/graph/solutions/vagabond-rpg-minor-data-model-improvements-cdd7d1.md +++ b/graph/solutions/vagabond-rpg-minor-data-model-improvements-cdd7d1.md @@ -6,7 +6,13 @@ tags: [vagabond-rpg, foundryvtt, data-models, fix] importance: 0.5 confidence: 0.8 created: "2025-12-12T22:02:33.949362+00:00" -updated: "2025-12-12T22:02:33.949362+00:00" +updated: "2026-02-20T04:33:18.385430+00:00" +relations: + - target: 9980febe-1b20-4f6b-b19d-b67a49e5308c + type: BUILDS_ON + direction: incoming + strength: 0.85 + edge_id: 3567dee4-2b38-422f-8c9c-936ff61bc43f --- Added 16 minor improvements from rulebook audit: CharacterData now has senses (darksight, blindsight, tremorsense, special vision), languages array, rest/breather tracking, travel/exploration tracking, crafting projects, combat positioning (flanking, dual-wielding, zones), casting/trinket tracking, downtime activities, quest tracking, death state, summoned creatures array, and size mechanical effects. NPCData has morale status tracking and senses. ArmorData has medium type and hindersDodge/preventsRage. WeaponData has damage type choices and equippedHand. EquipmentData has isTrinket and canCastThrough.