Skip to content

Add clusters report command#57

Merged
RomneyDa merged 1 commit into
openclaw:mainfrom
RomneyDa:dallin/clusters-report
May 25, 2026
Merged

Add clusters report command#57
RomneyDa merged 1 commit into
openclaw:mainfrom
RomneyDa:dallin/clusters-report

Conversation

@RomneyDa
Copy link
Copy Markdown
Member

@RomneyDa RomneyDa commented May 25, 2026

Summary

  • add gitcrawl clusters-report to render top clusters as a Markdown report
  • include JSON output for the hydrated report payload
  • document the command and add CLI coverage

Proof/Example:
./gitcrawl clusters-report openclaw/openclaw --limit 3 --min-size 5

->

# Cluster Report: openclaw/openclaw

Generated: 2026-05-25T21:28:35Z UTC
View: top 3 clusters, min size 5, sorted by size

**Totals:** 3 clusters, 119 listed members, 3 open, 0 closed.

## At a Glance

| Rank | Cluster | Members | Status | Representative | Updated |
| ---: | --- | ---: | --- | --- | --- |
| 1 | `search-output-border-f43e` | 40 | active | PR #76920 | 2026-05-25 |
| 2 | `driver-prime-sketch-zjw7` | 40 | active | PR #78342 | 2026-05-25 |
| 3 | `result-maple-margin-1r1o` | 39 | active | PR #81700 | 2026-05-25 |

## 1. fix(telegram): preserve forum topic routing

- Cluster: `search-output-border-f43e` (`1`)
- Status: active
- Members: 40 total, 8 shown
- Representative: PR #76920
- Last updated: 2026-05-25

| Type | Number | State | Score | Title | Labels |
| --- | ---: | --- | ---: | --- | --- |
| PR | [#76920](https://github.com/openclaw/openclaw/pull/76920) | open | 1.000 | fix(telegram): preserve forum topic routing | channel: matrix, channel: telegram, gateway, scripts, size: L, proof: supplied, mantis: telegram-visible-proof |
| PR | [#43808](https://github.com/openclaw/openclaw/pull/43808) | open | 0.940 | cron: honor delivery.threadId for Telegram announce delivery | app: web-ui, gateway, size: M |
| PR | [#49704](https://github.com/openclaw/openclaw/pull/49704) | open | 0.940 | fix(cron): announce delivery for Telegram forum topics | docs, channel: telegram, size: S |
| Issue | [#52286](https://github.com/openclaw/openclaw/issues/52286) | open | 0.940 | [Bug] message tool sends files to DM instead of staying in Telegram topic | bug, bug:behavior |
| PR | [#52824](https://github.com/openclaw/openclaw/pull/52824) | open | 0.940 | fix(announce): preserve threadId in subagent announce for Telegram DM topics | channel: telegram, agents, size: S |
| Issue | [#73900](https://github.com/openclaw/openclaw/issues/73900) | open | 0.940 | [Bug]: main/systemEvent cron heartbeat inherits global heartbeat.to and leaks topic reminder to DM |  |
| PR | [#73583](https://github.com/openclaw/openclaw/pull/73583) | open | 0.834 | Fix Telegram status and group reply delivery | channel: telegram, size: L |
| PR | [#85403](https://github.com/openclaw/openclaw/pull/85403) | open | 0.834 | fix(telegram): suppress message-tool reply previews | channel: telegram, size: L, proof: supplied, proof: sufficient, mantis: telegram-visible-proof, P1, rating: 🐚 platinum hermit, merge-risk: 🚨 compatibility, status: 👀 ready for maintainer look, proof: 📸 screenshot |

Key snippets:

- [#76920](https://github.com/openclaw/openclaw/pull/76920): ## Summary - Keep Telegram thread-not-found fallback for General topic (`message_thread_id=1`), while failing closed for explicit non-General forum topic sends and direct/private topic sends. - Preserve Telegram topic routing for automatic
- [#43808](https://github.com/openclaw/openclaw/pull/43808): ## Summary - Problem: isolated cron announce delivery accepted `delivery.threadId` in job config, but the cron delivery plan/target plumbing never carried that field into outbound delivery. - Why it matters: Telegram forum-topic cron jobs
- [#49704](https://github.com/openclaw/openclaw/pull/49704): ## Problem Cron jobs with `delivery.mode = "announce"` silently fail to deliver to Telegram forum topics. The `deliveryStatus` shows `"not-delivered"` with no surfaced error, even with valid targets like `telegram:-GROUP/TOPIC` or `telegram

## 2. fix: scope agent admin gateway calls

- Cluster: `driver-prime-sketch-zjw7` (`2`)
- Status: active
- Members: 40 total, 8 shown
- Representative: PR #78342
- Last updated: 2026-05-25

| Type | Number | State | Score | Title | Labels |
| --- | ---: | --- | ---: | --- | --- |
| PR | [#78342](https://github.com/openclaw/openclaw/pull/78342) | open | 1.000 | fix: scope agent admin gateway calls | docs, gateway, commands, size: S, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof |
| PR | [#80125](https://github.com/openclaw/openclaw/pull/80125) | open | 0.959 | Fix/core bug audit | size: S, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof |
| PR | [#85467](https://github.com/openclaw/openclaw/pull/85467) | open | 0.946 | fix(embedded-runner): wrap agent.processEvents in session write lock | agents, size: XS, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof, P1, rating: 🧂 unranked krab, merge-risk: 🚨 session-state, merge-risk: 🚨 availability, status: 📣 needs proof |
| PR | [#80997](https://github.com/openclaw/openclaw/pull/80997) | open | 0.943 | Chore/gog autoheal workflow docs | scripts, size: S, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof |
| PR | [#83940](https://github.com/openclaw/openclaw/pull/83940) | open | 0.943 | Feat/cron consecutive skips tracking | docs, cli, agents, size: M, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof, dependencies-changed, rating: 🌊 off-meta tidepool |
| PR | [#84962](https://github.com/openclaw/openclaw/pull/84962) | open | 0.940 | Railway/fix control UI origin | docs, docker, size: XS, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof, P2, rating: 🧂 unranked krab, merge-risk: 🚨 automation, merge-risk: 🚨 compatibility, merge-risk: 🚨 security-boundary, status: 📣 needs proof |
| PR | [#83689](https://github.com/openclaw/openclaw/pull/83689) | open | 0.939 | fix(pi-embedded-runner): handle concatenated tool-call argument JSON | agents, size: S, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof, P2, rating: 🧂 unranked krab, merge-risk: 🚨 compatibility, status: 📣 needs proof |
| PR | [#72449](https://github.com/openclaw/openclaw/pull/72449) | open | 0.936 | Fix/cron parse undefined | cli, size: S, triage: refactor-only, triage: blank-template, triage: needs-real-behavior-proof, P2, rating: 🧂 unranked krab, merge-risk: 🚨 compatibility, merge-risk: 🚨 availability, status: 📣 needs proof |

Key snippets:

- [#78342](https://github.com/openclaw/openclaw/pull/78342): ## Summary Describe the problem and fix in 2–5 bullets: If this PR fixes a plugin beta-release blocker, title it `fix(<plugin-id>): beta blocker - <summary>` and link the matching `Beta blocker: <plugin-name> - <summary>` issue labele
- [#80125](https://github.com/openclaw/openclaw/pull/80125): ## Summary Describe the problem and fix in 2–5 bullets: If this PR fixes a plugin beta-release blocker, title it `fix(<plugin-id>): beta blocker - <summary>` and link the matching `Beta blocker: <plugin-name> - <summary>` issue labele
- [#85467](https://github.com/openclaw/openclaw/pull/85467): installSessionEventWriteLock previously targeted session._processAgentEvent, which was removed in pi-coding-agent v0.75.4. Events now flow through Agent.processEvents (pi-agent-core) -> _handleAgentEvent listener -> appendMessage -> appendF

## 3. fix(auth): drop stale Codex OAuth routing

- Cluster: `result-maple-margin-1r1o` (`3`)
- Status: active
- Members: 39 total, 8 shown
- Representative: PR #81700
- Last updated: 2026-05-25

| Type | Number | State | Score | Title | Labels |
| --- | ---: | --- | ---: | --- | --- |
| PR | [#81700](https://github.com/openclaw/openclaw/pull/81700) | open | 1.000 | fix(auth): drop stale Codex OAuth routing | commands, agents, maintainer, size: L, extensions: codex, P2, impact:session-state, impact:auth-provider, rating: 🧂 unranked krab, merge-risk: 🚨 compatibility, merge-risk: 🚨 auth-provider, merge-risk: 🚨 session-state |
| Issue | [#83223](https://github.com/openclaw/openclaw/issues/83223) | open | 0.940 | v2026.5.16-beta.5 audit: migrated openai/gpt-5.5 route still looks up openai-codex auth before fallback | P2, clawsweeper:no-new-fix-pr, clawsweeper:needs-maintainer-review, clawsweeper:needs-product-decision, clawsweeper:needs-live-repro, impact:session-state, impact:auth-provider |
| PR | [#83451](https://github.com/openclaw/openclaw/pull/83451) | open | 0.940 | fix(auth): preserve Codex sidecar Keychain recovery | commands, agents, maintainer, size: M, P2, impact:security, impact:auth-provider, rating: 🧂 unranked krab, merge-risk: 🚨 compatibility, merge-risk: 🚨 auth-provider, merge-risk: 🚨 security-boundary |
| PR | [#75030](https://github.com/openclaw/openclaw/pull/75030) | open | 0.832 | fix(auth): explain masked oauth profiles | agents, size: S, proof: supplied, proof: sufficient, P2, rating: 🐚 platinum hermit, merge-risk: 🚨 compatibility, merge-risk: 🚨 auth-provider, status: 👀 ready for maintainer look |
| PR | [#83383](https://github.com/openclaw/openclaw/pull/83383) | open | 0.829 | fix(auth): clean refresh contention diagnostics | agents, maintainer, size: M, P2, rating: 🐚 platinum hermit, status: 👀 ready for maintainer look |
| PR | [#85413](https://github.com/openclaw/openclaw/pull/85413) | open | 0.823 | Fix OpenAI compaction runtime routing | gateway, agents, size: L, extensions: codex, triage: mock-only-proof, P2, rating: 🧂 unranked krab, merge-risk: 🚨 auth-provider, status: 📣 needs proof |
| PR | [#86476](https://github.com/openclaw/openclaw/pull/86476) | open | 0.804 | Keep Codex turn timeouts inside Codex | agents, maintainer, size: S, extensions: codex, P1, rating: 🦪 silver shellfish, merge-risk: 🚨 compatibility, merge-risk: 🚨 auth-provider, merge-risk: 🚨 availability, status: 📣 needs proof |
| Issue | [#8673](https://github.com/openclaw/openclaw/issues/8673) | open |  | Add retry logic to OAuth token refresh | enhancement, P2, clawsweeper:no-new-fix-pr, clawsweeper:needs-maintainer-review, clawsweeper:needs-product-decision, clawsweeper:source-repro, impact:auth-provider, issue-rating: 🦞 diamond lobster |

Key snippets:

- [#81700](https://github.com/openclaw/openclaw/pull/81700): ## Summary - expand Codex OAuth refresh-failure classification to match current refresh-token reuse, expiry, invalidation, revocation, and account-mismatch messages - keep stale persisted/session-selected Codex auth profiles and stale `aut
- [#83223](https://github.com/openclaw/openclaw/issues/83223): ## Scope One macOS LaunchAgent-backed OpenClaw instance was updated from `2026.5.12` to the latest beta available from upstream tags at audit time: `v2026.5.16-beta.5`. This report is sanitized. The host is referred to as Host S. Private
- [#83451](https://github.com/openclaw/openclaw/pull/83451): ## Summary - preserve the read-only macOS Keychain fallback for legacy Codex `oauthRef` sidecar decryption - keep `openclaw doctor --fix` able to migrate Keychain-only legacy sidecars back to inline OAuth credentials - keep the re-auth pat

Tests

  • go test ./...

@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 25, 2026

Codex review: needs maintainer review before merge. Reviewed May 25, 2026, 5:54 PM ET / 21:54 UTC.

Summary
Adds a gitcrawl clusters-report CLI command that renders Markdown or JSON cluster reports, documents it, and adds CLI coverage.

Reproducibility: not applicable. this is a feature PR rather than a bug report. The review path is source inspection plus the PR body's terminal proof for the new command.

Review metrics: 2 noteworthy metrics.

  • Command surface: 1 CLI command added. A new public command is the main maintainer-visible API change.
  • Changed files: 4 files affected. The diff stays limited to CLI code, CLI tests, and public docs.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none

Next step before merge
No repair lane is needed because review found no actionable patch defect; this MEMBER-authored PR should stay in normal maintainer review.

Security
Cleared: The diff adds local CLI reporting, docs, and tests without changing dependency sources, CI, secrets, auth, or network execution paths.

Review details

Best possible solution:

Land the bounded CLI reporting command after normal maintainer review and CI, preserving the existing display-cluster and source-qualified detail behavior.

Do we have a high-confidence way to reproduce the issue?

Not applicable; this is a feature PR rather than a bug report. The review path is source inspection plus the PR body's terminal proof for the new command.

Is this the best way to solve the issue?

Yes; the implementation reuses the existing display cluster summary/detail APIs and includes coverage for Markdown output, JSON output, and run/durable source collisions.

AGENTS.md: not found in the target repository.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 5046dd0f1d6a.

Label changes

Label changes:

  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The PR body includes after-fix terminal output from ./gitcrawl clusters-report openclaw/openclaw --limit 3 --min-size 5 showing the new Markdown report on real cluster data.
  • remove status: ⏳ waiting on author: Current PR status label is status: 👀 ready for maintainer look.
  • remove rating: 🦐 gold shrimp: Current PR rating is rating: 🐚 platinum hermit, so this older rating label is no longer current.

Label justifications:

  • P2: This is a normal-priority CLI feature with useful maintainer workflow value and limited blast radius.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The PR body includes after-fix terminal output from ./gitcrawl clusters-report openclaw/openclaw --limit 3 --min-size 5 showing the new Markdown report on real cluster data.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes after-fix terminal output from ./gitcrawl clusters-report openclaw/openclaw --limit 3 --min-size 5 showing the new Markdown report on real cluster data.
Evidence reviewed

What I checked:

  • Current main lacks the command: A current-main search for clusters-report, clusters report, and Cluster Report across README, SPEC, CLI, and store code returned no matches, so the requested command is not already implemented on main. (5046dd0f1d6a)
  • PR adds the command implementation: The PR head wires clusters-report into command dispatch and adds runClustersReport, which reads display cluster summaries and source-qualified details before writing Markdown or JSON output. (internal/cli/app.go:177, 22e0ea1656ed)
  • Report rendering uses existing cluster surfaces: The new implementation calls ListDisplayClusterSummaries and passes each summary's Source into ClusterDetail, matching the existing run/durable display model instead of inventing a parallel cluster path. (internal/cli/app.go:1423, 22e0ea1656ed)
  • Tests cover output and source disambiguation: The PR adds CLI coverage for Markdown and JSON report output plus a regression test that colliding run/durable cluster IDs use the correct detail source. (internal/cli/app_test.go:1957, 22e0ea1656ed)
  • Patch hygiene check: git diff --check reported no whitespace or conflict-marker issues for the PR diff. (22e0ea1656ed)
  • Maintainer routing context: The GitHub context reports author association MEMBER, so the conservative cleanup rule keeps this PR open for explicit maintainer handling.

Likely related people:

  • Peter Steinberger: Recent history and blame on the CLI and cluster store paths show repeated maintenance of internal/cli/app.go and cluster detail/source behavior. (role: recent area contributor; confidence: high; commits: 30d6676ad741, 51e8294e67f9, 36f6ede; files: internal/cli/app.go, internal/store/clusters.go)
  • Vincent Koc: Git history shows substantial earlier work on cluster summaries, ghcrawl-style cluster views, and cluster/TUI parity used by this report command. (role: cluster feature contributor; confidence: high; commits: 7c3b1da, f42b6166d548, a418ffaca655; files: internal/store/clusters.go, internal/cli/tui.go, internal/cli/app.go)
  • Dallin Romney: Beyond this PR, current history includes prior CLI work in internal/cli/app.go, making the author a relevant adjacent contributor rather than only the proposer. (role: adjacent CLI contributor; confidence: medium; commits: 940f940; files: internal/cli/app.go)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal priority bug or improvement with limited blast radius. labels May 25, 2026
@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 25, 2026

ClawSweeper PR egg

✨ Hatched: 🥚 common Frosted Merge Sprite

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: 🥚 common.
Trait: stacks clean commits.
Image traits: location proof lagoon; accessory green check lantern; palette amber, ink, and glacier blue; mood curious; pose curling around a status light; shell soft velvet shell; lighting subtle sparkle highlights; background quiet workflow signs.
Share on X: post this hatch
Copy: My PR egg hatched a 🥚 common Frosted Merge Sprite in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@RomneyDa RomneyDa force-pushed the dallin/clusters-report branch from f424dc1 to f7aa3c1 Compare May 25, 2026 21:25
@RomneyDa
Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 25, 2026

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@RomneyDa
Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 25, 2026

🦞👀
ClawSweeper picked this up.

Command router queued. I will update this comment with the next step.

Re-review progress:

@clawsweeper clawsweeper Bot added the proof: sufficient Contributor real behavior proof is sufficient. label May 25, 2026
@RomneyDa RomneyDa force-pushed the dallin/clusters-report branch from f7aa3c1 to 22e0ea1 Compare May 25, 2026 21:48
@RomneyDa
Copy link
Copy Markdown
Member Author

@clawsweeper re-review

@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 25, 2026

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels May 25, 2026
@RomneyDa RomneyDa merged commit e0859c4 into openclaw:main May 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant