Skip to content

[Fleet incident] Disable orphaned commercial-readiness and PR repair workflow identities #478

Description

@seonghobae

Live Actions registry drift

The repository's GitHub Actions API currently reports 32 workflow identities. Numerous historical bootstrap, one-shot production verification, attachment repair, PR-specific repair/finalizer, and bot-reopen records remain in state: active, including examples such as:

  • bootstrap-opencode-commercial-readiness.yml;
  • finalize-419-as-bot.yml;
  • one-shot-clearfolio-production-boundary.yml;
  • one-shot-oidc-production-verification.yml;
  • one-shot-orchestrator-production-boundary.yml;
  • one-shot-secure-stripe-webhook.yml;
  • one-shot-session-auth-repair.yml;
  • attachment repair/reopen workflows;
  • PR 386, 397, and 419 repair workflows.

Fresh protected-default-branch contents lookup returns 404 Not Found for sampled active path .github/workflows/one-shot-session-auth-repair.yml. The source file is absent from current develop, but GitHub continues to advertise its workflow identity as active.

The supported Hourly OpenCode Commercial Readiness, Fuzz, OpenCode Review, dependency/security, Pages, release, and current product workflows must be preserved.

Root cause

Temporary commercial-readiness, production-boundary, and PR repair workflows were removed from the repository tree after their bounded purpose, while their independent GitHub Actions registry records were not disabled. File deletion was treated as complete workflow lifecycle cleanup. Current tree-level checks cannot detect orphaned control-plane identities after source removal.

Realistic remediation

Do not restore historical YAML and do not create another self-deleting cleanup workflow. Under ScopeWeave's dedicated writer/operations loop:

  1. paginate the complete Actions registry;
  2. bind evidence to the exact protected develop SHA and tree;
  3. distinguish present repository workflows, active orphan records, disabled records, GitHub-owned dynamic workflows, intentionally pending supported integrations, and unresolved records;
  4. refetch exact branch/workflow state immediately before mutation;
  5. disable active orphan repository-path identities through an authorized operator or normal reviewed control-plane action;
  6. preserve all current scheduled, review, CI/security, release, and product workflows;
  7. retain immutable before/after evidence.

Coordinate with central lifecycle issue ContextualWisdomLab/.github#945 and AppGuardrail detector issue ContextualWisdomLab/appguardrail#929. Do not add another PAT, COPILOT_GITHUB_TOKEN, broad secrets: inherit, or workflow-disable authority to an untrusted scanner.

Acceptance criteria

  • complete paginated inventory with exact protected-default-branch binding;
  • every reviewed active repository-path workflow absent from current develop disabled or explicitly justified;
  • no current Hourly OpenCode Commercial Readiness or supported production workflow disabled by name-only matching;
  • no historical bootstrap/repair source reintroduced;
  • read-only recurrence detector emits workflow ID, path, state, default-branch SHA, observation time, and pagination receipts;
  • adversarial tests cover pagination truncation, permission loss, transient 403/404/5xx, branch movement, path case/encoding, renamed/reused workflow IDs, GitHub dynamic workflows, and a legitimate present one-shot-like production verification still owned by an active PR;
  • exact-head CI/security/review gates;
  • normal protected-default-branch integration;
  • post-remediation live inventory proves orphan identities disabled while supported ScopeWeave automation remains operational.

This issue is part of the organization-wide GitHub Actions fleet incident. The fleet audit remains read-only and tracks protected-branch operational evidence.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: authAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainarea: dependenciesDependency or lockfile maintenancearea: securitySecurity boundary, hardening, or vulnerability preventionmaintenancepriority: mediumNormal-priority or P2 workscope: commercial-readinessProduction, enterprise, release, or commercial readinessstatus: triagedOpen issue has an organization taxonomy assignmenttype: featureNew or expanded product capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions