feat: Reporting Agent v2 — multi-repo, session cache, pluggable storage - #2489
feat: Reporting Agent v2 — multi-repo, session cache, pluggable storage#2489ashleyshaw with Copilot wants to merge 6 commits into
Conversation
Co-authored-by: ashleyshaw <1805352+ashleyshaw@users.noreply.github.com>
…ent.js Co-authored-by: ashleyshaw <1805352+ashleyshaw@users.noreply.github.com>
…owner/repo format, fix test count in migration guide, add three-segment parseRepoRef test" Co-authored-by: ashleyshaw <1805352+ashleyshaw@users.noreply.github.com>
🔍 Reviewer Summary for PR #2489CI Status: ❌ Recommendations
|
1 similar comment
🔍 Reviewer Summary for PR #2489CI Status: ❌ Recommendations
|
|
🚫 This PR description is missing required template content. Missing required section(s): Linked issues, Global DoD checklist Please update the PR body using one of the repository PR templates:
Empty placeholders, unchecked checklist boxes, and stub issue references do not count. |
Signed-off-by: Ash Shaw <ashley@lightspeedwp.agency>
🔍 Reviewer Summary for PR #2489CI Status: ❌ Recommendations
|
|
This PR's branch name Standard pattern: Based on linked issue type: Correct template should be: No action required — this is informational. Future PRs should use the correct branch name. See Branching Strategy for more info. |
Upgrades
scripts/agents/reporting.agent.jsfrom v1 to v2.0.0. All v1 exports remain fully backwards-compatible.name: "Feature PR"
about: "New features or enhancements"
title: "feat: {short summary}"
labels: ["status:needs-review", "area:feature"]
Feature Pull Request
Linked issues
Changelog
Added
generateMultiRepoReport()aggregates data across multiple repos;parseRepoRef()normalises"owner/repo"strings or{ owner, repo }objects (validates exactly one/);buildRepoCacheKey()produces stable cache keys;runAgent({ action: "generate:multi-repo" })dispatcher entry.cacheGet/cacheSet/cacheClear/cacheSize) for memoising expensive per-repo computations within a single agent run; exposed viarunAgent({ action: "cache:*" }).setStorage/resetStorage/createMemoryStoragereplace hard-codedfscalls insaveReport, enabling injection of an in-memory backend in tests.AGENT_VERSIONconstant ("2.0.0") exported and returned by the defaultrunAgentaction.scripts/agents/__tests__/reporting.agent.test.js)..github/reports/migration/reporting-agent-v2-migration-guide-2026-08-29.md.Changed
saveReportnow routes writes through the active storage backend instead of callingfsdirectly.runAgentdefault response now includesversionalongsidecategoriesandmessage.import.meta.url/fileURLToPathimport (was blocking Jest transforms).Fixed
runAgent cache:getno longer callscacheGettwice (double expiry-check side-effect).parseRepoRefnow rejects three-segment strings like"owner/org/repo"explicitly.Removed
Checklist (Global DoD / PR)