Skip to content

Split manual Glama handoff from active queue#3100

Open
LauraGPT wants to merge 1 commit into
mainfrom
codex/glama-manual-handoff-queue
Open

Split manual Glama handoff from active queue#3100
LauraGPT wants to merge 1 commit into
mainfrom
codex/glama-manual-handoff-queue

Conversation

@LauraGPT

Copy link
Copy Markdown
Collaborator

Summary

  • move manual Glama submission out of the Active operator queue
  • add a Manual handoff gates section for account/site tasks such as the Glama listing and score badge requirement
  • keep the active queue focused on PRs the maintainer/operator can actually inspect, fix, or validate from GitHub

Verification

  • python -m pytest tests/test_collect_growth_metrics.py::test_format_integration_markdown_lists_manual_handoff_gates tests/test_collect_growth_metrics.py::test_format_integration_markdown_lists_active_operator_queue -q
  • python -m pytest tests/test_collect_growth_metrics.py -q
  • python -m py_compile scripts/collect_growth_metrics.py && git diff --check
  • GITHUB_TOKEN="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" python scripts/collect_growth_metrics.py --integrations --format markdown | sed -n '/## Active operator queue/,/## Manual review gates/p'

Evidence checked:

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new "Manual handoff gates" section to the growth metrics markdown report, grouping open integrations that require manual actions (such as submitting to Glama) and sorting them by repository stars. Feedback focuses on preventing duplicate listings of these integrations in the "Manual review gates" section, and improving the robustness of the new test's string parsing logic to avoid potential index errors.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +662 to +671
manual_handoff_integrations = sorted(
(
integration
for integration in metrics["integrations"]
if integration.get("state") == "open"
and (integration.get("next_action") or "inspect") in MANUAL_HANDOFF_ACTIONS
),
key=lambda integration: int(integration.get("repo_stars") or 0),
reverse=True,
)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The introduction of the ## Manual handoff gates section causes integrations like punkpeye/awesome-mcp-servers#7153 (which have both a manual handoff action and a known review gate reason) to be listed twice: once under ## Manual handoff gates and again under ## Manual review gates.

To avoid this redundancy and keep the report clean, we should filter out manual handoff integrations from the review_gate_integrations list. Since review_gate_integrations is defined on lines 680-682, you can update its definition to:

    review_gate_integrations = [
        integration for integration in metrics["integrations"]
        if integration.get("known_review_gate_reason")
        and (integration.get("next_action") or "inspect") not in MANUAL_HANDOFF_ACTIONS
    ]

Comment on lines +1108 to +1109
active_queue = output.split("## Active operator queue", 1)[1].split("## Manual handoff gates", 1)[0]
manual_gates = output.split("## Manual handoff gates", 1)[1].split("## Manual review gates", 1)[0]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The current assertion logic is fragile because it assumes that the ## Manual review gates section will always be present in the output. If we filter out manual handoff integrations from the review gates section (to fix the duplication issue), the ## Manual review gates section will not be rendered in this test, causing an IndexError on the split.

We should make the section extraction more robust by checking for the presence of subsequent headers before splitting.

    active_queue = output.split("## Active operator queue", 1)[1].split("## Manual handoff gates", 1)[0]
    manual_gates = output.split("## Manual handoff gates", 1)[1]
    for header in ["## Manual review gates", "## Failed or pending checks"]:
        if header in manual_gates:
            manual_gates = manual_gates.split(header, 1)[0]
            break

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant