Skip to content

docs-update and docs-locale-sync workflows are skipped on every run #57623

Open

Description

@oke3

Description

The docs-update workflow never does anything in this repository. Its job is gated on:

if: github.repository == 'sst/opencode'

but the repository was moved to anomalyco/opencode, so that condition can never be true here. The workflow still fires on its schedule and every run is skipped without a job executing.

Same shape for docs-locale-sync, whose job is disabled outright with if: false, so the locale copies under packages/web/src/content/docs/<locale>/ no longer follow the English pages.

Evidence from the Actions API on 2026-10-21:

  • docs-update.yml — 611 runs, most recent three all conclusion: skipped (2026-10-21, 2026-10-20, 2026-10-20).
  • docs-locale-sync.yml — 373 runs, most recent three all conclusion: skipped.

Question: is the docs bot meant to run against this repository, and if so should the if: condition be updated to anomalyco/opencode? If the workflow is only meant to run from a private mirror named sst/opencode, then the if: false in docs-locale-sync still leaves the locale translations frozen and probably wants a comment explaining that.

Steps to reproduce

  1. Open the Actions tab for docs-update.yml.
  2. Filter by conclusion: skipped.
  3. Every run is skipped; there is no successful run in the list.

OpenCode version

Not a runtime issue - repository automation.

Activity

  1. opencode-agent commented on Oct 21, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed report. I can confirm it on the latest dev (c9b5a9f).

    • docs-update.yml still gates its job on if: github.repository == 'sst/opencode' and still calls the action as sst/opencode/github@…. The public Actions API shows 27 successful runs, the last on 2026-01-02, and every run since then (582) skipped, the latest today. So it did work until about the org transfer and has been dead since, because the repository check was never updated.
    • docs-locale-sync.yml has if: false. The API shows 11 successes up to 2026-03-09 and then 34 failures up to 2026-03-29, after which every run is skipped. It looks like it was switched off on purpose after those failures, but there's no comment saying so. Whether to re-enable it or document why it's off is up to the maintainers.

    One correction to the steps: older successful runs do exist, but nothing has actually run since January (docs-update) or March (locale sync).

    The script below prints the job conditions and the run counts by status; it needs no token.

    Earlier reports of the same docs-update problem, which closed without a merged fix:

    Reproduction script (check-docs-workflows.sh)
    #!/usr/bin/env bash
    # Shows that docs-update / docs-locale-sync never run their jobs in anomalyco/opencode.
    # Usage: bash check-docs-workflows.sh [path-to-opencode-checkout-on-dev]
    set -euo pipefail
    REPO_DIR="${1:-.}"
    API="https://api.github.com/repos/anomalyco/opencode/actions/workflows"
    
    echo "== job gates on $(git -C "$REPO_DIR" rev-parse HEAD)"
    grep -n "if: github.repository\|uses: sst/" "$REPO_DIR/.github/workflows/docs-update.yml"
    grep -n "^    if:\|^    #if:" "$REPO_DIR/.github/workflows/docs-locale-sync.yml"
    
    for w in docs-update.yml docs-locale-sync.yml; do
      echo "== $w: run counts by status (and most recent run with that status)"
      for s in success failure skipped; do
        curl -s "$API/$w/runs?per_page=1&status=$s" | python3 -c '
    import json,sys
    d=json.load(sys.stdin); r=d.get("workflow_runs",[])
    print("  %-8s %s %s" % (sys.argv[1], d.get("total_count"), r[0]["created_at"] if r else "-"))' "$s"
      done
    done

    Run it: bash check-docs-workflows.sh

  2. Dante-dan commented on Oct 21, 2026

    @Dante-dan
    Contributor

    There are two additional preflight checks before changing the repository guard:

    • The exact action pin, 2c14fc5586fe0b88e5c04732d2e846769cc35671, is currently unavailable at the canonical raw action URL (404), and the commits API returns 422 / “No commit found for SHA”. This does not prove what happened in historical Actions runs. The old sst/opencode REST endpoint redirects successfully to anomalyco/opencode, so the old owner name alone does not establish that the action reference is broken.
    • At dev 15adc3d, the checked agent directory contains duplicate-pr.md and triage.md, but no docs.md or translator.md. The current action's agent input documents fallback to default_agent / build when the requested agent is absent. These are current-source checks, not evidence about the unavailable action revision; the effective agent configuration needs validation before restoring automation.

    I suggest keeping locale sync disabled and treating docs-update restoration as a separate, bounded change: select a resolvable action revision, verify the intended docs agent/configuration, then update the repository guard if this repository is meant to host the bot. Changing that guard activates a job with contents/PR/id-token write permissions and OPENCODE_API_KEY, so it needs an explicit deployment decision rather than just a string replacement. Please confirm whether docs-update should run here; locale sync can remain outside that scope. I have not run or enabled either workflow.

  3. oke3 commented on Oct 21, 2026

    @oke3
    ContributorAuthor

    Two pieces of evidence for the preflight, from a checkout of dev at 5c52626:

    • A resolvable action revision exists. The pinned 2c14fc55… is gone (raw URL 404, commits API "No commit found for SHA"), but github/action.yml is still in the repo and was last touched by 5c5262660f87d3327868af3559a71810fefe2bed (2026-10-20), which is the current dev HEAD. Pinning that SHA makes uses: sst/opencode/github@5c52626… resolvable through the sst/opencode → anomalyco/opencode redirect — the REST endpoint still answers 301 → repositories/975734319.

    • The agent fallback is the part that would change behaviour. github/action.yml documents its agent input as "Must be a primary agent. Falls back to default_agent from config or 'build' if not found", and .opencode/agent/ on dev contains only duplicate-pr.md and triage.md — so a docs/translator agent request falls back to build rather than the docs agent the workflow was written for.

    Not touching either workflow; flagging it since the guard change alone would activate a job with contents/PR/id-token write permissions and OPENCODE_API_KEY.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions