Skip to content

fix(ci): pull_request.base.sha is stale on long-lived PRs, so every gate that computes a range from it silently inspects the wrong changeset #1564

Description

@rickylabs

Resolution audit — 0.0.7 planning

The stale-base failure was real in the former two-dot code-quality.yml construct, but that
construct was fixed by #1403. A fresh audit at 01e0960494c95ce56eb35892c211a095eb13e6ed found no
remaining implementation work.

Workflow / construct Audited behavior Resolution
ci.yml changed files BASE_SHA...HEAD_SHA, fetch-depth 0 merge-base semantics; safe
e2e-cli.yml changed files BASE_SHA...HEAD_SHA, fetch-depth 0 merge-base semantics; safe
surface-diff.yml changed files BASE_SHA...HEAD_SHA, fetch-depth 0 merge-base semantics; safe
pages.yml changed files BASE_SHA...HEAD_SHA, fetch-depth 0 merge-base semantics; safe
fresh-ui-quality.yml changed files BASE_SHA...HEAD_SHA, fetch-depth 0 merge-base semantics; safe
code-quality.yml changed source .llm/tools/quality/changed-source-files.ts, three-dot fixed by #1403; red-first stale/foreign fixture exists
ci.yml / e2e-cli.yml / pages.yml / fresh-ui-quality.yml base deno.json git show BASE_SHA:deno.json not a changed-file range; deliberate base-vs-head tasks-only classification that fails toward running

Acceptance criteria

Boundary

This issue is audit-completed and is not a 0.0.7 implementation barrier. Reopening requires a new
red-first fixture against a currently unsafe construct, not the already-repaired #1403 line.

Provenance

Originally filed from the 0.0.6 #1539 reproduction. Corrected by the 0.0.7 PLAN-EVAL consumer-by-consumer audit on 2026-08-13.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions