Skip to content

feat(ci): add Ocelot-style dual-provider Claude reviews + comprehensive docs - #47

Merged
Tony363 merged 4 commits into
mainfrom
feat/claude-review-dual-provider
Jan 14, 2026
Merged

feat(ci): add Ocelot-style dual-provider Claude reviews + comprehensive docs#47
Tony363 merged 4 commits into
mainfrom
feat/claude-review-dual-provider

Conversation

@Tony363

@Tony363 Tony363 commented Jan 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add dual-provider Claude review CI workflow (Ocelot-style)
  • Comprehensive README documentation update with Core API Reference and Metrics System

Changes

CI/CD Enhancements

  • Add Ocelot-style dual-provider Claude review workflow
  • Fix advisory claude-review job (remove exit 1)

Documentation Updates

  • Update agent count to 35 (16 core + 12 traits + 7 extensions)
  • Update skill count to 30 active (plus 106 deprecated)
  • Add solid-aligned and crash-resilient traits to documentation
  • New: Core API Reference section (~230 lines)
    • LoopOrchestrator class with usage examples
    • QualityAssessor with scoring breakdown
    • PALReviewSignal with signal generators
    • Termination functions with examples
  • New: Metrics System section (~120 lines)
    • MetricsEmitter protocol documentation
    • InMemoryMetricsCollector usage examples
    • Prometheus and StatsD integration examples
  • Update Skills System diagram with 19 command skills
  • Sync various config and doc files

Test plan

  • CI workflows pass
  • README renders correctly on GitHub
  • Mermaid diagrams display properly

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Consolidated web search functionality under Rube MCP's LINKUP_SEARCH tool; removed standalone LinkUp integration.
    • Simplified MCP server setup to two servers (PAL and Rube) instead of three.
    • Added Core API Reference and Metrics System documentation sections.
    • Updated all web search references throughout user guides.
  • Chores

    • Updated version numbers: agents (33→35), skills (28→30).

✏️ Tip: You can customize this high-level summary in your review settings.

Tony363 and others added 3 commits January 14, 2026 00:47
Add AWS Bedrock as primary provider with Anthropic API fallback for
Claude code reviews, matching Ocelot's resilient dual-provider pattern.

Changes:
- ci.yml: Add claude-review job with Bedrock/Anthropic dual-provider
- ai-review.yml: Enhance PAL MCP review with Bedrock primary support
- pal-consensus-review.yml: New manual workflow for multi-model consensus

Features:
- Dual-provider resilience (Bedrock primary, Anthropic fallback)
- Non-blocking reviews (continue-on-error: true)
- Skips dependabot PRs to avoid API costs
- GitHub Step Summary shows provider status
- Manual consensus review workflow dispatch

Required secrets:
- AWS_BEARER_TOKEN_BEDROCK (primary)
- AWS_REGION (defaults to us-east-1)
- ANTHROPIC_API_KEY (fallback)
- GEMINI_API_KEY (optional, for PAL consensus)
- OPENAI_API_KEY (optional, for PAL consensus)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The exit 1 contradicted continue-on-error: true, which could cause
the job to fail despite being marked non-blocking. Removed exit 1
to maintain advisory-only behavior as designed.

Addresses feedback from Claude Code Review.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update agent count to 35 (16 core + 12 traits + 7 extensions)
- Update skill count to 30 active (plus 106 deprecated)
- Add solid-aligned and crash-resilient traits
- Add Core API Reference section (~230 lines):
  - LoopOrchestrator class with usage examples
  - QualityAssessor with scoring breakdown
  - PALReviewSignal with signal generators
  - Termination functions with examples
- Add Metrics System section (~120 lines):
  - MetricsEmitter protocol
  - InMemoryMetricsCollector usage
  - Prometheus and StatsD integration examples
- Update Skills System diagram with 19 command skills
- Sync various config and doc files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sorry @Tony363, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jan 14, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

The PR consolidates LinkUp web search functionality into Rube MCP's LINKUP_SEARCH tool by removing the standalone LinkUp documentation file, updating Rube MCP documentation with comprehensive LINKUP_SEARCH examples, removing LinkUp from default MCP server installations, and updating terminology across multiple documentation and configuration files.

Changes

Cohort / File(s) Summary
Documentation - LinkUp to LINKUP_SEARCH terminology updates
.claude/skills/sc-test/SKILL.md, AGENTS.md, CLAUDE_CORE.md, TOOLS.md, commands/test.md
Reframes web search references from LinkUp to Rube MCP's LINKUP_SEARCH tool. Updates command descriptions and usage examples to reflect new tool naming and includes configuration details (depth, output_type parameters).
User documentation - Web search integration
Docs/User-Guide/mcp-servers.md, PRINCIPLES.md
Consolidates LinkUp web search into Rube MCP description. Removes standalone LinkUp entry and updates section headers from "LinkUp Web Intelligence" to "Web Search (via Rube MCP)". Clarifies environment variable SC_RUBE_API_KEY now includes LINKUP_SEARCH web searches.
MCP documentation consolidation
mcp/MCP_LinkUp.md, mcp/MCP_Rube.md
Deletes entire MCP_LinkUp.md file (79 lines). Expands MCP_Rube.md with comprehensive LINKUP_SEARCH documentation including Parameters table, usage examples (Simple Search, Batch Searches), and capabilities.
Default configuration and memory
Docs/memory-optimization-plan.md, config/mcp.yaml
Removes MCP_LinkUp.md from default MCP docs installation list (now includes only PAL and Rube). Adds inline comment documenting LINKUP_SEARCH tool availability via RUBE_MULTI_EXECUTE_TOOL.
Setup and installation updates
setup/cli/commands/uninstall.py, setup/components/mcp_docs.py, commands/index.yaml
Removes "linkup" entry from MCP documentation servers map and default_doc_servers list. Updates field name from mcp_integration.rube.linkup.search to mcp_integration.rube.linkup_search in configuration index.
README.md major expansion
README.md
Updates version badges (agents 33→35, skills 28→30, adds python_core). Adds new sections (Core API Reference with exported entities, Metrics System with MetricsEmitter). Expands Tiered Agent Architecture counts and trait examples. Adds 106 deprecated skills catalog entry and new Command Skills (sc-readme, sc-workflow, sc-worktree). Removes LinkUp from architecture diagrams and web search references.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 LinkUp's web-search dreams now dance with Rube,
Consolidated searches in one sturdy tube!
LINKUP_SEARCH shines through our toolbox clear,
Documentation gleaming, no LinkUp to fear.
Simpler paths forward, architecture's cheer! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main changes: adding dual-provider Claude review workflows with Ocelot-style implementation and comprehensive documentation updates.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings


📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 225a910 and a6945b4.

📒 Files selected for processing (15)
  • .claude/skills/sc-test/SKILL.md
  • AGENTS.md
  • CLAUDE_CORE.md
  • Docs/User-Guide/mcp-servers.md
  • Docs/memory-optimization-plan.md
  • PRINCIPLES.md
  • README.md
  • TOOLS.md
  • commands/index.yaml
  • commands/test.md
  • config/mcp.yaml
  • mcp/MCP_LinkUp.md
  • mcp/MCP_Rube.md
  • setup/cli/commands/uninstall.py
  • setup/components/mcp_docs.py

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

PAL MCP Consensus Code Review (via AWS Bedrock)

Overview

This PR introduces a comprehensive dual-provider CI/CD infrastructure for Claude Code reviews, adds extensive documentation updates, and improves MCP integration patterns. The changes span 15 files with 461 insertions and 154 deletions, focusing on workflow enhancements and documentation improvements.

Key Changes:

  • New dual-provider CI workflows (AWS Bedrock + Anthropic API fallback)
  • PAL MCP multi-model consensus review workflow
  • README documentation overhaul with Core API Reference
  • MCP docs updates for Rube LINKUP_SEARCH integration
  • Path validation security enhancement in uninstall module

Critical Issues

None identified - No blocking security vulnerabilities or critical defects found.

High Priority

1. Incomplete Backup Implementation

Location: setup/cli/commands/uninstall.py:668-673

The create_uninstall_backup() function creates an empty tarfile with placeholder logic. Users are told a backup is created, but it is actually empty. This could lead to data loss if users rely on these backups.

Recommendation: Either implement proper backup functionality or remove the feature entirely until complete.

2. Workflow Secret Validation Logic

Locations: Multiple workflow files

The secret validation logic works correctly but could be more readable. The current implementation evaluates GitHub Actions expressions that return boolean strings, then compares them in bash. The current env section approach is clear and works well.

Medium Priority

3. Error Handling in File Verification

Location: setup/cli/commands/uninstall.py:98-100, 134-136

Bare except Exception blocks without logging could make debugging difficult.

Recommendation: Add debug logging to exception handlers.

4. Workflow Timeout Consistency

Different timeouts for similar review operations (15min vs 20min) could cause confusion. Document why different values are needed.

5. MCP Documentation Updates

Comments updated to reference Rube MCP LINKUP_SEARCH with new API patterns. Verify example code is tested.

Positive Observations

Excellent Security Practices:

  • Path Traversal Protection validates installation directory is within user home
  • Comprehensive File Verification with whitelist-based fail-safe defaults
  • Secret Masking properly masks sensitive environment variables

Robust Architecture:

  • Graceful Degradation with dual-provider fallback ensures availability
  • DRY Principle with well-structured reusable workflow components
  • Comprehensive User Feedback with excellent UX and progress indicators

Good Code Quality:

  • Consistent type hints throughout
  • Well-documented functions with clear docstrings
  • Defensive programming with extensive validation

Review Summary

Category Rating Notes
Security 4.5/5 Excellent path validation, file verification, secret handling
Code Quality 4/5 Strong structure, deduction for incomplete backup
Architecture 5/5 Excellent dual-provider design and graceful degradation
Testing 3/5 No tests modified, backup feature needs tests

Overall Assessment: 4/5 - Well-architected PR with strong security practices. Main concern is incomplete backup implementation.

Recommendations Priority

  1. MUST FIX: Complete or disable the create_uninstall_backup() function
  2. SHOULD FIX: Add logging to bare exception handlers
  3. NICE TO HAVE: Add tests for uninstall path validation
  4. NICE TO HAVE: Add integration tests for CI workflows

This review was generated by PAL MCP Consensus Code Review (AWS Bedrock).
Multiple AI models were consulted to validate findings.
Review is advisory - please use human judgment for final decisions.

@github-actions

Copy link
Copy Markdown
Contributor

Claude Code Review (via AWS Bedrock)

Overview

This PR implements a comprehensive dual-provider Claude Code review system with AWS Bedrock as the primary provider and Anthropic API as fallback. The changes include:

  • New dual-provider workflow in .github/workflows/ci.yml for automated PR reviews
  • Enhanced PAL MCP consensus review workflow for manual deep analysis
  • Updated .github/workflows/ai-review.yml with provider validation and fallback logic
  • New manual-trigger workflow for multi-model consensus reviews
  • Minor documentation updates in skill files and Python components

Critical Issues

None identified. The implementation follows security best practices and includes proper validation.

High Priority

1. Secret Validation Logic May Skip Reviews Silently

  • Location: .github/workflows/ci.yml:34-42, .github/workflows/ai-review.yml:27-51
  • Issue: The condition checking secrets may not evaluate correctly if secret is set to empty string
  • Recommendation: Add runtime validation that checks for non-whitespace content
  • Impact: Could skip reviews when credentials are misconfigured

2. Error Handling for Dual-Provider Fallback

  • Location: .github/workflows/ci.yml:135, .github/workflows/ai-review.yml:90
  • Issue: Fallback triggers even for transient Bedrock failures
  • Recommendation: Distinguish between "not configured" vs "configured but failed"
  • Impact: May mask intermittent issues and consume Anthropic API credits unnecessarily

3. MCP Configuration File Security

  • Location: .github/workflows/pal-consensus-review.yml:69-82
  • Issue: MCP config with API keys written to /tmp/pal-mcp-config.json without explicit permissions
  • Recommendation: Set restrictive permissions (600) and ensure cleanup
  • Impact: Potential exposure of API keys in shared runner environments

Medium Priority

4. Empty Tarfile in Backup Creation

  • Location: setup/cli/commands/uninstall.py:668-673
  • Issue: Backup creation opens tarfile but never writes component files
  • Recommendation: Implement backup logic or remove incomplete implementation

5. Hardcoded Timeout Values

  • Multiple workflows use hardcoded 15-20 minute timeouts
  • Suggestion: Use workflow-level variables for easier maintenance

6. Git Diff Command Safety

  • Using git diff without verifying base_ref exists locally
  • Suggestion: Add error handling for edge cases

Positive Observations

Excellent Architecture:

  • Dual-provider approach with graceful degradation
  • Security-first design with provider validation
  • Non-blocking reviews keep CI pipeline flowing
  • Comprehensive status reporting

Strong Security Practices:

  • Path validation prevents directory traversal
  • Secret masking in environment variable display
  • File verification before deletion
  • Conservative preserve-by-default approach

Code Quality:

  • Clean separation of concerns
  • Comprehensive type hints
  • Detailed docstrings
  • Consistent error handling

Review Summary

Category Rating
Security 4/5
Code Quality 4.5/5
Architecture 5/5
Testing 4/5

Overall: Well-architected, production-ready implementation. Main improvements: MCP config security and backup implementation.

Recommendation: Approve with suggestions to address MCP config security and empty backup tarfile.


Generated by Claude Code Review (AWS Bedrock)

@Tony363 Tony363 self-assigned this Jan 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PAL MCP Consensus Code Review (via AWS Bedrock)

Overview

This PR consolidates MCP server documentation from three servers (PAL, Rube, LinkUp) to two (PAL, Rube), reflecting that web search is now accessed through Rube MCP's LINKUP_SEARCH tool rather than a standalone LinkUp server. The changes span 15 files with 461 additions and 154 deletions, including comprehensive documentation updates, badge updates, and new API reference sections.

Key Changes:

  • Removed all standalone LinkUp MCP references
  • Updated documentation to reflect web search via Rube MCP LINKUP_SEARCH tool
  • Added comprehensive Core API Reference section (~230 lines)
  • Added Metrics System documentation (~125 lines)
  • Updated agent count: 33→35 agents (added 2 traits: solid-aligned, crash-resilient)
  • Updated skills count: 28→30 active skills (plus documented 106 deprecated)
  • Updated Python components to reflect the consolidation

Critical Issues

None identified. No blocking issues found.

High Priority

None identified. The changes are primarily documentation consolidation with minimal code changes.

Medium Priority

1. Inconsistent MCP Server List in Python Code (Code Quality)

File: setup/components/mcp_docs.py:26-29

# Map documentation categories to files
# Note: LinkUp web search is accessed via Rube MCP's LINKUP_SEARCH tool
self.server_docs_map = {
    "pal": "MCP_Pal.md",
    "rube": "MCP_Rube.md",
}

Issue: The comment mentions LinkUp but doesn't need to since it's now integrated into Rube.
Recommendation: Simplify the comment to just document the structure:

# Map MCP server names to documentation files
self.server_docs_map = {
    "pal": "MCP_Pal.md",
    "rube": "MCP_Rube.md",  # Includes LINKUP_SEARCH for web search
}

2. Hardcoded File List in Uninstall Safety Check (Maintainability)

File: setup/cli/commands/uninstall.py:79

"mcp_docs": ["MCP_Pal.md", "MCP_Rube.md"],

Issue: This hardcoded list duplicates the information in mcp_docs.py:26-29. If a new MCP server is added, both locations need updates.
Recommendation: Import the mapping from mcp_docs.py or use a shared constant:

from ...components.mcp_docs import MCPDocsComponent
# Then use:
"mcp_docs": list(MCPDocsComponent(None).server_docs_map.values()),

3. Missing Validation in Badge Updates (Documentation Quality)

Files: README.md:4-6

<img src="https://img.shields.io/badge/agents-35-orange" alt="Agents">
<img src="https://img.shields.io/badge/skills-30-green" alt="Skills">

Issue: The badge counts (35 agents, 30 skills) should be verified against actual file counts to prevent drift.
Recommendation: Add a CI check or script to validate badge counts against actual counts in directories.

Positive Observations

1. Excellent Documentation Consolidation

The PR systematically updates all references to LinkUp across multiple documentation files, maintaining consistency. The migration from three MCP servers to two simplifies the mental model for users.

2. Comprehensive Core API Reference

The new Core API Reference section (README.md:287-512) is exceptionally well-structured:

  • Complete module exports listing
  • Detailed class documentation with examples
  • Clear parameter descriptions
  • Usage examples for all major components
  • Table-based metric documentation

This is production-quality API documentation that significantly improves developer experience.

3. Proactive Safety in Uninstall Logic

setup/cli/commands/uninstall.py includes multiple safety mechanisms:

  • verify_superclaude_file() function to prevent accidental deletion of user files
  • verify_directory_safety() to check directory contents before removal
  • Whitelist-based approach (only removes known SuperClaude files)
  • Path validation to ensure installation is within user profile directory (lines 818-825)

This is exemplary defensive programming for a destructive operation.

4. Metrics System Design

The documented metrics system (README.md:1275-1396) uses a callback-based protocol approach that:

  • Decouples metrics emission from collection (Protocol pattern)
  • Provides testing utilities (InMemoryMetricsCollector)
  • Follows naming conventions (component.subject.unit)
  • Shows clear integration examples for Prometheus and StatsD

This is a well-architected observability solution.

5. Consistent Terminology Migration

All references to "LinkUp web search" have been consistently updated to "Rube MCP LINKUP_SEARCH tool" across:

  • Skills documentation (.claude/skills/sc-test/SKILL.md)
  • Core documentation (AGENTS.md, CLAUDE_CORE.md, PRINCIPLES.md)
  • User guides (Docs/User-Guide/mcp-servers.md)
  • Command definitions (commands/index.yaml, commands/test.md)

6. No Tests Broken

The PR metadata shows 0 tests modified, which is appropriate since this is primarily a documentation refactoring. The Python changes are minimal and confined to configuration mappings.

Review Summary

Category Rating Notes
Security 5/5 No security concerns. Uninstall safety mechanisms are exemplary.
Code Quality 4.5/5 Minor DRY violation in hardcoded file list. Otherwise excellent.
Architecture 5/5 Clean consolidation that simplifies the MCP server model.
Testing 5/5 No test changes needed (documentation-focused PR).
Documentation 5/5 Outstanding API reference and metrics documentation added.

Additional Recommendations

  1. Consider Adding CHANGELOG Entry: This consolidation changes the MCP server model from 3→2 servers, which may affect users who reference LinkUp directly.

  2. Verify Mermaid Diagram Counts: The architecture diagrams should be validated to ensure they reflect the updated server count (particularly README.md:151-170).

  3. Run Documentation Linter: Consider running a markdown linter to catch any formatting inconsistencies introduced across 15 files.


This review was generated by PAL MCP Consensus Code Review (AWS Bedrock).
Multiple AI models were consulted to validate findings.
Review is advisory - please use human judgment for final decisions.

Recommendation: ✅ APPROVE - This PR is ready to merge with minor follow-up improvements suggested for the Medium Priority items.

@Tony363
Tony363 merged commit fb81035 into main Jan 14, 2026
29 of 30 checks passed
@Tony363
Tony363 deleted the feat/claude-review-dual-provider branch January 14, 2026 06:55
@github-actions

Copy link
Copy Markdown
Contributor

Claude Code Review (via AWS Bedrock)

Overview

This PR refactors the MCP integration documentation by consolidating LinkUp web search functionality under Rube MCP's LINKUP_SEARCH tool. The changes span 15 files (461 additions, 154 deletions) and include comprehensive README updates with a new Core API Reference section documenting the ~3,200-line Python orchestration layer.

Key Changes:

  • Removed standalone LinkUp references, clarifying it's accessed via RUBE_MULTI_EXECUTE_TOOL
  • Added extensive Core API Reference documentation (230+ lines) for Python orchestration layer
  • Updated MCP documentation component to reflect consolidated architecture
  • Added security validation in uninstall.py to prevent operations outside user home directory

Critical Issues

None identified - The changes are primarily documentation and architectural cleanup with one security enhancement.

High Priority

1. Security Enhancement in Uninstall (Positive)

The validation at setup/cli/commands/uninstall.py:817-825 prevents directory traversal attacks and ensures the uninstaller only operates on user-owned directories. The use of .resolve() prevents symlink-based bypasses. Recommendation: Consider adding similar validation to the install operation for consistency.

2. Breaking Change Documentation

The removal of standalone LinkUp references is technically a breaking change for users who may have scripts or workflows referencing LinkUp directly. Recommendation: Add a MIGRATION.md or prominent note in CHANGELOG.md explaining the migration path from direct LinkUp calls to RUBE_MULTI_EXECUTE_TOOL with LINKUP_SEARCH.

Medium Priority

  1. mcp_docs.py hardcoded list: The server_docs_map at line 27-29 should potentially use an enum for type safety
  2. Uninstall verification logic: File at line 79 has hardcoded list that duplicates mcp_docs.py - recommend importing from component
  3. Documentation consistency: Verify skill count (28→30) matches actual merged skills - sc-readme and sc-worktree mentioned but not shown in diff
  4. Type hints: The Core API Reference uses list[str] | None syntax which requires Python 3.10+ or from future import annotations

Positive Observations

  1. Outstanding documentation: The new Core API Reference (README.md:287-510) with complete examples for LoopOrchestrator, QualityAssessor, PALReviewSignal, and metrics system
  2. Smart architecture: Consolidating LinkUp under Rube MCP reduces complexity and clarifies web search as one tool among 500+
  3. Security best practices: Path validation demonstrates strong security awareness with proper canonicalization
  4. Backward compatibility: Migration notes in comments help users understand transitions
  5. Metrics system: Exceptionally well-documented with protocol definition and integration examples

Testing Observations

Concern: No tests added for:

  • New security validation in uninstall.py
  • Changes to mcp_docs.py component logic

Recommendation: Add tests to verify path validation and ensure linkup is not in server_docs_map.

Review Summary

Category Rating Notes
Security 5/5 Excellent path validation added, no vulnerabilities introduced
Code Quality 4/5 Clean refactoring, minor improvements suggested for maintainability
Architecture 5/5 Logical consolidation of MCP integrations, reduces complexity
Testing 3/5 No tests added for security validation or component logic changes

Conclusion

This is a high-quality PR that improves both the architecture and documentation of SuperClaude. The consolidation of LinkUp under Rube MCP is a smart simplification, and the new Core API Reference is exceptionally comprehensive. The security enhancement in the uninstaller is a welcome addition.

The primary concern is the absence of test coverage for the new security validation and component logic changes. Otherwise, this PR represents a significant improvement to the project's maintainability and clarity.

Recommendation: Approve with minor test additions requested.


Generated by Claude Code Review (AWS Bedrock) - Model: Claude Sonnet 4.5

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