diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index fcad3314bd..4303e55712 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -1247,7 +1247,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: **/* + - **Allowed Files**: Only files matching patterns: memory/meta-orchestrators/**/* - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1969,7 +1969,7 @@ jobs: BRANCH_NAME: memory/meta-orchestrators MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "**/*" + FILE_GLOB_FILTER: "memory/meta-orchestrators/**/*" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/agent-performance-analyzer.md b/.github/workflows/agent-performance-analyzer.md index e67b5f11cf..6b0f23b3df 100644 --- a/.github/workflows/agent-performance-analyzer.md +++ b/.github/workflows/agent-performance-analyzer.md @@ -14,7 +14,7 @@ tools: toolsets: [default, actions, repos] repo-memory: branch-name: memory/meta-orchestrators - file-glob: "**/*" + file-glob: "memory/meta-orchestrators/**/*" safe-outputs: create-issue: max: 5 diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 6ce8024245..d43340619d 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -962,7 +962,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/audit-workflows/*.json, memory/audit-workflows/*.jsonl, memory/audit-workflows/*.csv, memory/audit-workflows/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -1744,7 +1744,7 @@ jobs: BRANCH_NAME: memory/audit-workflows MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/audit-workflows/*.json memory/audit-workflows/*.jsonl memory/audit-workflows/*.csv memory/audit-workflows/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/audit-workflows.md b/.github/workflows/audit-workflows.md index 7fdcb50121..1163bac1c3 100644 --- a/.github/workflows/audit-workflows.md +++ b/.github/workflows/audit-workflows.md @@ -14,7 +14,7 @@ tools: repo-memory: branch-name: memory/audit-workflows description: "Historical audit data and patterns" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/audit-workflows/*.json", "memory/audit-workflows/*.jsonl", "memory/audit-workflows/*.csv", "memory/audit-workflows/*.md"] max-file-size: 102400 # 100KB timeout: 300 steps: diff --git a/.github/workflows/campaign-manager.lock.yml b/.github/workflows/campaign-manager.lock.yml index 4057768c2e..e5ef1bb123 100644 --- a/.github/workflows/campaign-manager.lock.yml +++ b/.github/workflows/campaign-manager.lock.yml @@ -1059,7 +1059,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: **/* + - **Allowed Files**: Only files matching patterns: memory/meta-orchestrators/**/* - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1781,7 +1781,7 @@ jobs: BRANCH_NAME: memory/meta-orchestrators MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "**/*" + FILE_GLOB_FILTER: "memory/meta-orchestrators/**/*" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/campaign-manager.md b/.github/workflows/campaign-manager.md index dac6d79692..66a87ce76d 100644 --- a/.github/workflows/campaign-manager.md +++ b/.github/workflows/campaign-manager.md @@ -14,7 +14,7 @@ tools: toolsets: [default, actions, projects] repo-memory: branch-name: memory/meta-orchestrators - file-glob: "**/*" + file-glob: "memory/meta-orchestrators/**/*" safe-outputs: create-issue: max: 5 diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 4e0b465775..e0f876afab 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1177,7 +1177,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/copilot-agent-analysis/*.json, memory/copilot-agent-analysis/*.jsonl, memory/copilot-agent-analysis/*.csv, memory/copilot-agent-analysis/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -1969,7 +1969,7 @@ jobs: BRANCH_NAME: memory/copilot-agent-analysis MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/copilot-agent-analysis/*.json memory/copilot-agent-analysis/*.jsonl memory/copilot-agent-analysis/*.csv memory/copilot-agent-analysis/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/copilot-agent-analysis.md b/.github/workflows/copilot-agent-analysis.md index d25e02a33a..2893413d74 100644 --- a/.github/workflows/copilot-agent-analysis.md +++ b/.github/workflows/copilot-agent-analysis.md @@ -37,7 +37,7 @@ tools: repo-memory: branch-name: memory/copilot-agent-analysis description: "Historical agent performance metrics" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/copilot-agent-analysis/*.json", "memory/copilot-agent-analysis/*.jsonl", "memory/copilot-agent-analysis/*.csv", "memory/copilot-agent-analysis/*.md"] max-file-size: 102400 # 100KB github: toolsets: [default] diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index e797c15c10..2fb0925dba 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1495,7 +1495,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/nlp-analysis/*.json, memory/nlp-analysis/*.jsonl, memory/nlp-analysis/*.csv, memory/nlp-analysis/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -2205,7 +2205,7 @@ jobs: BRANCH_NAME: memory/nlp-analysis MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/nlp-analysis/*.json memory/nlp-analysis/*.jsonl memory/nlp-analysis/*.csv memory/nlp-analysis/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/copilot-pr-nlp-analysis.md b/.github/workflows/copilot-pr-nlp-analysis.md index f06805d27b..46a8143faa 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.md +++ b/.github/workflows/copilot-pr-nlp-analysis.md @@ -40,7 +40,7 @@ tools: repo-memory: branch-name: memory/nlp-analysis description: "Historical NLP analysis results" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/nlp-analysis/*.json", "memory/nlp-analysis/*.jsonl", "memory/nlp-analysis/*.csv", "memory/nlp-analysis/*.md"] max-file-size: 102400 # 100KB edit: github: diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index b66172be81..cd1a1bc90b 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1011,7 +1011,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/prompt-analysis/*.json, memory/prompt-analysis/*.jsonl, memory/prompt-analysis/*.csv, memory/prompt-analysis/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -1710,7 +1710,7 @@ jobs: BRANCH_NAME: memory/prompt-analysis MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/prompt-analysis/*.json memory/prompt-analysis/*.jsonl memory/prompt-analysis/*.csv memory/prompt-analysis/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/copilot-pr-prompt-analysis.md b/.github/workflows/copilot-pr-prompt-analysis.md index 2c0ef6c6bf..bf03ef3c14 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.md +++ b/.github/workflows/copilot-pr-prompt-analysis.md @@ -38,7 +38,7 @@ tools: repo-memory: branch-name: memory/prompt-analysis description: "Historical prompt pattern analysis" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/prompt-analysis/*.json", "memory/prompt-analysis/*.jsonl", "memory/prompt-analysis/*.csv", "memory/prompt-analysis/*.md"] max-file-size: 102400 # 100KB edit: github: diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 1153b8aef8..cab5c4e60b 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1929,7 +1929,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/session-insights/*.json, memory/session-insights/*.jsonl, memory/session-insights/*.csv, memory/session-insights/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -2709,7 +2709,7 @@ jobs: BRANCH_NAME: memory/session-insights MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/session-insights/*.json memory/session-insights/*.jsonl memory/session-insights/*.csv memory/session-insights/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/copilot-session-insights.md b/.github/workflows/copilot-session-insights.md index e112f748ee..4aa69b3e58 100644 --- a/.github/workflows/copilot-session-insights.md +++ b/.github/workflows/copilot-session-insights.md @@ -34,7 +34,7 @@ tools: repo-memory: branch-name: memory/session-insights description: "Historical session analysis data" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/session-insights/*.json", "memory/session-insights/*.jsonl", "memory/session-insights/*.csv", "memory/session-insights/*.md"] max-file-size: 102400 # 100KB github: toolsets: [default] diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index 1cbb37ed40..d3ec2d747e 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -278,8 +278,8 @@ jobs: } }, "required": [ - "environment", - "test_type" + "test_type", + "environment" ], "type": "object" }, diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 73086f4e13..d341bad3cc 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -731,7 +731,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/code-metrics/*.json, memory/code-metrics/*.jsonl, memory/code-metrics/*.csv, memory/code-metrics/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -1500,7 +1500,7 @@ jobs: BRANCH_NAME: memory/code-metrics MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/code-metrics/*.json memory/code-metrics/*.jsonl memory/code-metrics/*.csv memory/code-metrics/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/daily-code-metrics.md b/.github/workflows/daily-code-metrics.md index a78042e6a8..396a234157 100644 --- a/.github/workflows/daily-code-metrics.md +++ b/.github/workflows/daily-code-metrics.md @@ -13,7 +13,7 @@ tools: repo-memory: branch-name: memory/code-metrics description: "Historical code quality and health metrics" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/code-metrics/*.json", "memory/code-metrics/*.jsonl", "memory/code-metrics/*.csv", "memory/code-metrics/*.md"] max-file-size: 102400 # 100KB bash: safe-outputs: diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 3d51283333..a1e26af534 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -30,7 +30,6 @@ name: "Daily Copilot Token Consumption Report" "on": schedule: - cron: "0 11 * * 1-5" - # Friendly format: daily (scattered) workflow_dispatch: permissions: {} @@ -1594,7 +1593,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/token-metrics/*.json, memory/token-metrics/*.jsonl, memory/token-metrics/*.csv, memory/token-metrics/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -2306,7 +2305,7 @@ jobs: BRANCH_NAME: memory/token-metrics MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/token-metrics/*.json memory/token-metrics/*.jsonl memory/token-metrics/*.csv memory/token-metrics/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/daily-copilot-token-report.md b/.github/workflows/daily-copilot-token-report.md index 430f78ec31..6b9c1e980e 100644 --- a/.github/workflows/daily-copilot-token-report.md +++ b/.github/workflows/daily-copilot-token-report.md @@ -15,7 +15,7 @@ tools: repo-memory: branch-name: memory/token-metrics description: "Historical token consumption and cost data" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/token-metrics/*.json", "memory/token-metrics/*.jsonl", "memory/token-metrics/*.csv", "memory/token-metrics/*.md"] max-file-size: 102400 # 100KB bash: - "*" diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 2e4a1c8760..c29fc65f22 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -1473,7 +1473,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: go-file-size-reduction-*/** + - **Allowed Files**: Only files matching patterns: memory/campaigns/go-file-size-reduction-*/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -2256,7 +2256,7 @@ jobs: BRANCH_NAME: memory/campaigns MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "go-file-size-reduction-*/**" + FILE_GLOB_FILTER: "memory/campaigns/go-file-size-reduction-*/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/daily-file-diet.md b/.github/workflows/daily-file-diet.md index 9142c82600..f4ff935302 100644 --- a/.github/workflows/daily-file-diet.md +++ b/.github/workflows/daily-file-diet.md @@ -32,7 +32,7 @@ tools: toolsets: [default] repo-memory: branch-name: memory/campaigns - file-glob: "go-file-size-reduction-*/**" + file-glob: "memory/campaigns/go-file-size-reduction-*/**" edit: bash: - "find pkg -name '*.go' ! -name '*_test.go' -type f -exec wc -l {} \\; | sort -rn" diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 7deec66600..2ee6cacee6 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1428,7 +1428,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.json, *.jsonl, *.csv, *.md + - **Allowed Files**: Only files matching patterns: memory/daily-news/*.json, memory/daily-news/*.jsonl, memory/daily-news/*.csv, memory/daily-news/*.md - **Max File Size**: 102400 bytes (0.10 MB) per file - **Max File Count**: 100 files per commit @@ -2141,7 +2141,7 @@ jobs: BRANCH_NAME: memory/daily-news MAX_FILE_SIZE: 102400 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.json *.jsonl *.csv *.md" + FILE_GLOB_FILTER: "memory/daily-news/*.json memory/daily-news/*.jsonl memory/daily-news/*.csv memory/daily-news/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/daily-news.md b/.github/workflows/daily-news.md index 7cdee8e2fe..f7867cb00b 100644 --- a/.github/workflows/daily-news.md +++ b/.github/workflows/daily-news.md @@ -38,7 +38,7 @@ tools: repo-memory: branch-name: memory/daily-news description: "Historical news digest data" - file-glob: ["*.json", "*.jsonl", "*.csv", "*.md"] + file-glob: ["memory/daily-news/*.json", "memory/daily-news/*.jsonl", "memory/daily-news/*.csv", "memory/daily-news/*.md"] max-file-size: 102400 # 100KB edit: bash: diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 8917e3c55b..203036bcdb 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1137,7 +1137,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: *.md + - **Allowed Files**: Only files matching patterns: memory/deep-report/*.md - **Max File Size**: 1048576 bytes (1.00 MB) per file - **Max File Count**: 100 files per commit @@ -1832,7 +1832,7 @@ jobs: BRANCH_NAME: memory/deep-report MAX_FILE_SIZE: 1048576 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "*.md" + FILE_GLOB_FILTER: "memory/deep-report/*.md" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/deep-report.md b/.github/workflows/deep-report.md index 2ee538db23..054c901785 100644 --- a/.github/workflows/deep-report.md +++ b/.github/workflows/deep-report.md @@ -36,7 +36,7 @@ tools: repo-memory: branch-name: memory/deep-report description: "Long-term insights, patterns, and trend data" - file-glob: ["*.md"] + file-glob: ["memory/deep-report/*.md"] max-file-size: 1048576 # 1MB github: toolsets: diff --git a/.github/workflows/human-ai-collaboration.lock.yml b/.github/workflows/human-ai-collaboration.lock.yml index 6c824a7cd0..dc61d9ab98 100644 --- a/.github/workflows/human-ai-collaboration.lock.yml +++ b/.github/workflows/human-ai-collaboration.lock.yml @@ -1051,7 +1051,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: human-ai-collab-*/** + - **Allowed Files**: Only files matching patterns: memory/campaigns/human-ai-collab-*/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1744,7 +1744,7 @@ jobs: BRANCH_NAME: memory/campaigns MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "human-ai-collab-*/**" + FILE_GLOB_FILTER: "memory/campaigns/human-ai-collab-*/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/human-ai-collaboration.md b/.github/workflows/human-ai-collaboration.md index b6fbc2a4e8..292099d273 100644 --- a/.github/workflows/human-ai-collaboration.md +++ b/.github/workflows/human-ai-collaboration.md @@ -29,7 +29,7 @@ tools: toolsets: [repos, issues, search] repo-memory: branch-name: memory/campaigns - file-glob: "human-ai-collab-*/**" + file-glob: "memory/campaigns/human-ai-collab-*/**" --- diff --git a/.github/workflows/incident-response.lock.yml b/.github/workflows/incident-response.lock.yml index 6217f95181..570449eb8a 100644 --- a/.github/workflows/incident-response.lock.yml +++ b/.github/workflows/incident-response.lock.yml @@ -1177,7 +1177,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: incident-*/** + - **Allowed Files**: Only files matching patterns: memory/campaigns/incident-*/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1902,7 +1902,7 @@ jobs: BRANCH_NAME: memory/campaigns MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "incident-*/**" + FILE_GLOB_FILTER: "memory/campaigns/incident-*/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/incident-response.md b/.github/workflows/incident-response.md index 58c4781fe6..bc31a21887 100644 --- a/.github/workflows/incident-response.md +++ b/.github/workflows/incident-response.md @@ -37,7 +37,7 @@ tools: toolsets: [repos, issues, pull_requests, search] repo-memory: branch-name: memory/campaigns - file-glob: "incident-*/**" + file-glob: "memory/campaigns/incident-*/**" safe-outputs: create-issue: diff --git a/.github/workflows/intelligence.lock.yml b/.github/workflows/intelligence.lock.yml index 61928a1e86..36f1f23a94 100644 --- a/.github/workflows/intelligence.lock.yml +++ b/.github/workflows/intelligence.lock.yml @@ -1707,7 +1707,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: **/** + - **Allowed Files**: Only files matching patterns: memory/campaigns/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -2416,7 +2416,7 @@ jobs: BRANCH_NAME: memory/campaigns MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "**/**" + FILE_GLOB_FILTER: "memory/campaigns/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/intelligence.md b/.github/workflows/intelligence.md index 559d789d4c..0b63e4205e 100644 --- a/.github/workflows/intelligence.md +++ b/.github/workflows/intelligence.md @@ -35,7 +35,7 @@ tools: toolsets: [repos, issues, search] repo-memory: branch-name: memory/campaigns - file-glob: "**/**" # Read all campaign data + file-glob: "memory/campaigns/**" # Read all campaign data imports: - shared/trends.md diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index f13ceb2bc7..57a4814c7a 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -353,38 +353,38 @@ jobs: "name": "noop" }, { - "description": "Post a message to a Slack channel. Message must be 200 characters or less. Supports basic Slack markdown: *bold*, _italic_, ~strike~, `code`, ```code block```, \u003equote, and links \u003curl|text\u003e. Requires GH_AW_SLACK_CHANNEL_ID environment variable to be set.", + "description": "Add a comment to a Notion page", "inputSchema": { "additionalProperties": false, "properties": { - "message": { - "description": "The message to post (max 200 characters, supports Slack markdown)", + "comment": { + "description": "The comment text to add", "type": "string" } }, "required": [ - "message" + "comment" ], "type": "object" }, - "name": "post_to_slack_channel" + "name": "notion_add_comment" }, { - "description": "Add a comment to a Notion page", + "description": "Post a message to a Slack channel. Message must be 200 characters or less. Supports basic Slack markdown: *bold*, _italic_, ~strike~, `code`, ```code block```, \u003equote, and links \u003curl|text\u003e. Requires GH_AW_SLACK_CHANNEL_ID environment variable to be set.", "inputSchema": { "additionalProperties": false, "properties": { - "comment": { - "description": "The comment text to add", + "message": { + "description": "The message to post (max 200 characters, supports Slack markdown)", "type": "string" } }, "required": [ - "comment" + "message" ], "type": "object" }, - "name": "notion_add_comment" + "name": "post_to_slack_channel" } ] EOF diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index bf9f290fb9..ca62cbe7f2 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -638,7 +638,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: metrics/** + - **Allowed Files**: Only files matching patterns: memory/meta-orchestrators/metrics/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -943,7 +943,7 @@ jobs: BRANCH_NAME: memory/meta-orchestrators MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "metrics/**" + FILE_GLOB_FILTER: "memory/meta-orchestrators/metrics/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/metrics-collector.md b/.github/workflows/metrics-collector.md index 936216d351..1c7c9f5c2b 100644 --- a/.github/workflows/metrics-collector.md +++ b/.github/workflows/metrics-collector.md @@ -15,7 +15,7 @@ tools: toolsets: [default] repo-memory: branch-name: memory/meta-orchestrators - file-glob: "metrics/**" + file-glob: "memory/meta-orchestrators/metrics/**" timeout-minutes: 15 --- diff --git a/.github/workflows/org-wide-rollout.lock.yml b/.github/workflows/org-wide-rollout.lock.yml index 06925f25f9..cf2ce4ee62 100644 --- a/.github/workflows/org-wide-rollout.lock.yml +++ b/.github/workflows/org-wide-rollout.lock.yml @@ -1204,7 +1204,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: org-rollout-*/** + - **Allowed Files**: Only files matching patterns: memory/campaigns/org-rollout-*/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1930,7 +1930,7 @@ jobs: BRANCH_NAME: memory/campaigns MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "org-rollout-*/**" + FILE_GLOB_FILTER: "memory/campaigns/org-rollout-*/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/org-wide-rollout.md b/.github/workflows/org-wide-rollout.md index 7ac8a3bb7e..047ae3da97 100644 --- a/.github/workflows/org-wide-rollout.md +++ b/.github/workflows/org-wide-rollout.md @@ -44,7 +44,7 @@ tools: toolsets: [repos, issues, pull_requests, search] repo-memory: branch-name: memory/campaigns - file-glob: "org-rollout-*/**" + file-glob: "memory/campaigns/org-rollout-*/**" safe-outputs: create-issue: diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index c753f71567..de88642188 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -870,7 +870,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: security-compliance-*/** + - **Allowed Files**: Only files matching patterns: memory/campaigns/security-compliance-*/** - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1564,7 +1564,7 @@ jobs: BRANCH_NAME: memory/campaigns MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "security-compliance-*/**" + FILE_GLOB_FILTER: "memory/campaigns/security-compliance-*/**" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/security-compliance.md b/.github/workflows/security-compliance.md index 3869999f71..8edccb8351 100644 --- a/.github/workflows/security-compliance.md +++ b/.github/workflows/security-compliance.md @@ -35,7 +35,7 @@ tools: toolsets: [repos, search, code_security] repo-memory: branch-name: memory/campaigns - file-glob: "security-compliance-*/**" + file-glob: "memory/campaigns/security-compliance-*/**" --- diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 14864b3463..99a536e955 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -1068,7 +1068,7 @@ jobs: - **Persistence**: Files persist across workflow runs via git branch storage **Constraints:** - - **Allowed Files**: Only files matching patterns: **/* + - **Allowed Files**: Only files matching patterns: memory/meta-orchestrators/**/* - **Max File Size**: 10240 bytes (0.01 MB) per file - **Max File Count**: 100 files per commit @@ -1790,7 +1790,7 @@ jobs: BRANCH_NAME: memory/meta-orchestrators MAX_FILE_SIZE: 10240 MAX_FILE_COUNT: 100 - FILE_GLOB_FILTER: "**/*" + FILE_GLOB_FILTER: "memory/meta-orchestrators/**/*" with: script: | const { setupGlobals } = require('/tmp/gh-aw/actions/setup_globals.cjs'); diff --git a/.github/workflows/workflow-health-manager.md b/.github/workflows/workflow-health-manager.md index 891858a46b..7616874a2f 100644 --- a/.github/workflows/workflow-health-manager.md +++ b/.github/workflows/workflow-health-manager.md @@ -13,7 +13,7 @@ tools: toolsets: [default, actions] repo-memory: branch-name: memory/meta-orchestrators - file-glob: "**/*" + file-glob: "memory/meta-orchestrators/**/*" safe-outputs: create-issue: max: 10 diff --git a/actions/setup/js/push_repo_memory.cjs b/actions/setup/js/push_repo_memory.cjs index 12ea165084..75c5086b41 100644 --- a/actions/setup/js/push_repo_memory.cjs +++ b/actions/setup/js/push_repo_memory.cjs @@ -245,7 +245,10 @@ async function main() { } // Create destination directory in repo - const destMemoryPath = path.join(workspaceDir, "memory", memoryId); + // Extract the relative folder path from the branch name + // For branch "memory/code-metrics", use "memory/code-metrics" as the destination path + // This ensures the folder structure matches the branch name + const destMemoryPath = path.join(workspaceDir, branchName); fs.mkdirSync(destMemoryPath, { recursive: true }); core.info(`Destination directory: ${destMemoryPath}`); @@ -286,20 +289,25 @@ async function main() { if (fileGlobFilter) { const patterns = fileGlobFilter.trim().split(/\s+/).filter(Boolean).map(globPatternToRegex); + // Build the full path that will exist in the branch (branch name + relative file path) + // This accounts for the memory/{id} folder structure within the branch + const branchRelativePath = path.join(branchName, relativeFilePath).replace(/\\/g, "/"); + // Debug logging: Show what we're testing core.debug(`Testing file: ${relativeFilePath}`); + core.debug(`Branch-relative path: ${branchRelativePath}`); core.debug(`File glob filter: ${fileGlobFilter}`); core.debug(`Number of patterns: ${patterns.length}`); const matchResults = patterns.map((pattern, idx) => { - const matches = pattern.test(relativeFilePath); + const matches = pattern.test(branchRelativePath); const patternStr = fileGlobFilter.trim().split(/\s+/).filter(Boolean)[idx]; core.debug(` Pattern ${idx + 1}: "${patternStr}" -> ${pattern.source} -> ${matches ? "✓ MATCH" : "✗ NO MATCH"}`); return matches; }); if (!matchResults.some(m => m)) { - core.error(`File does not match allowed patterns: ${relativeFilePath}`); + core.error(`File does not match allowed patterns: ${branchRelativePath}`); core.error(`Allowed patterns: ${fileGlobFilter}`); core.error(`Pattern test results:`); const patternStrs = fileGlobFilter.trim().split(/\s+/).filter(Boolean); diff --git a/actions/setup/js/update_issue.test.cjs b/actions/setup/js/update_issue.test.cjs index 6aefc1610d..dfcff7bee1 100644 --- a/actions/setup/js/update_issue.test.cjs +++ b/actions/setup/js/update_issue.test.cjs @@ -89,8 +89,7 @@ const mockCore = { expect(mockGithub.rest.issues.update).toHaveBeenCalledWith({ owner: "testowner", repo: "testrepo", issue_number: 123, state: "closed" })); }), it("should update multiple fields successfully", async () => { - (setAgentOutput({ items: [{ type: "update_issue", title: "New title", body: "New body content", status: "open" }] }), - (global.context.eventName = "issues")); + (setAgentOutput({ items: [{ type: "update_issue", title: "New title", body: "New body content", status: "open" }] }), (global.context.eventName = "issues")); const mockIssue = { number: 123, html_url: "https://github.com/testowner/testrepo/issues/123" }; (mockGithub.rest.issues.update.mockResolvedValue({ data: mockIssue }), await eval(`(async () => { ${updateIssueScript}; await main({ allow_title: true, allow_body: true, allow_status: true }); })()`), diff --git a/docs/src/content/docs/reference/memory.md b/docs/src/content/docs/reference/memory.md index f1d6f2ec27..e8b3d97747 100644 --- a/docs/src/content/docs/reference/memory.md +++ b/docs/src/content/docs/reference/memory.md @@ -91,7 +91,7 @@ See [Grumpy Code Reviewer](https://github.com/githubnext/gh-aw/blob/main/.github # Repo Memory -Persistent file storage via Git branches with unlimited retention. The compiler auto-configures branch cloning/creation, file access at `/tmp/gh-aw/repo-memory-{id}/memory/{id}/`, commits/pushes, and merge conflict resolution (your changes win). +Persistent file storage via Git branches with unlimited retention. The compiler auto-configures branch cloning/creation, file access at `/tmp/gh-aw/repo-memory-{id}/`, commits/pushes, and merge conflict resolution (your changes win). ## Enabling Repo Memory @@ -102,7 +102,7 @@ tools: --- ``` -Creates branch `memory/default` at `/tmp/gh-aw/repo-memory-default/memory/default/`. Files auto-commit/push after workflow completion. +Creates branch `memory/default` at `/tmp/gh-aw/repo-memory-default/`. Files are stored within the branch at the branch name path (`memory/default/`). Files auto-commit/push after workflow completion. ## Advanced Configuration @@ -112,7 +112,7 @@ tools: repo-memory: branch-name: memory/custom-agent description: "Long-term insights" - file-glob: ["*.md", "*.json"] + file-glob: ["memory/custom-agent/*.md", "memory/custom-agent/*.json"] max-file-size: 1048576 # 1MB (default 10KB) max-file-count: 50 # default 100 target-repo: "owner/repository" @@ -120,6 +120,8 @@ tools: --- ``` +**Note**: File glob patterns must include the full branch path structure. For branch `memory/custom-agent`, use patterns like `memory/custom-agent/*.json` to match files stored at that path within the branch. + ## Multiple Repo Memory Configurations ```aw wrap @@ -128,14 +130,14 @@ tools: repo-memory: - id: insights branch-name: memory/insights - file-glob: ["*.md"] + file-glob: ["memory/insights/*.md"] - id: state - file-glob: ["*.json"] + file-glob: ["memory/state/*.json"] max-file-size: 524288 # 512KB --- ``` -Mounts at `/tmp/gh-aw/repo-memory-{id}/memory/{id}/`. Required `id` determines folder/branch names; `branch-name` defaults to `memory/{id}`. +Mounts at `/tmp/gh-aw/repo-memory-{id}/` during workflow execution. Required `id` determines folder name; `branch-name` defaults to `memory/{id}`. Files are stored within the git branch at the branch name path (e.g., for branch `memory/code-metrics`, files are stored at `memory/code-metrics/` within the branch). **File glob patterns must include the full branch path.** ## Behavior