Skip to content

[Fleet incident] Resolve independent-review bootstrap deadlock for sole-collaborator repositories #948

Description

@seonghobae

Live policy deadlock

Fresh protected-branch rule evidence for ContextualWisdomLab/.github/main requires:

  • 2 approving reviews;
  • stale approvals dismissed on push;
  • approval after the last push;
  • all review threads resolved.

The live collaborators API returns exactly one human collaborator, seonghobae, who is also the author of the current central repair pull requests. Self-approval is not a qualifying independent review.

PR #835 at exact head 6a1acb1559755c27d7267e39fd6275bb9db74dc9 has every observed exact-head quality/security/supply-chain workflow successful, all review threads resolved, auto-merge enabled, and one formal OpenCode APPROVED review. GitHub still reports mergeable_state=blocked, which is consistent with the unsatisfied second approval.

PR #834 repairs the Noema OIDC response-envelope consumer that is intended to supply a second independent review identity, but #834 is governed by the same two-approval rule and currently has no qualifying approval. Therefore the broken second-review path cannot bootstrap its own repair.

The same condition appears in sole-collaborator product repositories such as EmbedRelay: exact-head code/security evidence can be green, but the standard reviewer-request API cannot request a non-collaborator App identity, and the central mention/OIDC route remains the only scalable independent-review path.

Root cause

The repository ruleset assumes at least two simultaneously operational independent reviewer identities, while organization access and reviewer control-plane deployment currently provide only one functioning formal reviewer identity (opencode-agent) in addition to the author. The second reviewer (cwl-noema-review) is itself impaired by the unmerged OIDC envelope and mention-concurrency repairs.

This is not a code-quality failure in #834/#835 and not a reason to reduce the required approval count. It is an identity/bootstrap architecture gap between branch policy and installed reviewer capacity.

Feasible remedies

Revalidate live organization policy and use one of these normal-policy options:

  1. Independent human bootstrap reviewer — immediate and least architectural change

  2. Second review-only GitHub App identity — durable option

  3. Organization team reviewer capacity

    • grant a trusted non-author team read/triage review access and use normal GitHub review requests;
    • preserve the two-approval rule and last-push approval requirement.

Rejected non-remedies

  • lowering required_approving_review_count from 2;
  • administrator bypass or direct merge;
  • self-approval;
  • counting CodeRabbit COMMENTED, status checks, mention acknowledgements, or resolved threads as approval;
  • reusing predecessor-head approvals;
  • granting contents: write, merge, release, or deployment authority to a reviewer merely to satisfy the count;
  • inventing a PAT or using COPILOT_GITHUB_TOKEN;
  • asking the broken Noema path to approve the PR that must first repair that path.

Acceptance criteria

  1. at least two independent non-author reviewer identities are demonstrably operational under the protected-main policy;
  2. fix(noema): validate stable OIDC exchange envelope #834 and fix(automation): replay isolated review-agent queues on current main #835 each receive the required exact-current-head approvals without bypass;
  3. both integrate through normal protected-main policy;
  4. post-merge Noema OIDC and mention-concurrency canaries produce formal reviews on sole-collaborator repository PRs;
  5. reviewer identities remain review-only and cannot write code, merge, release, deploy, or access unrelated secrets;
  6. a documented onboarding/offboarding and outage fallback exists so loss of one reviewer does not deadlock the organization again;
  7. no approval-count reduction or temporary bypass remains after bootstrap.

This issue is part of the organization-wide Hourly Product Development fleet incident. The central .github owner loop retains all implementation and merge authority. The fleet audit remains read-only and reports this because an external independent identity or permission grant is genuinely required to break the bootstrap deadlock.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: apiAPI, protocol, event, or external contractarea: authAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainarea: securitySecurity boundary, hardening, or vulnerability preventionpriority: mediumNormal-priority or P2 workstatus: blockedBlocked by conflict, dependency, or required prerequisitetype: featureNew or expanded product capability

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions