Skip to content

devx: refusal prose still tells CI to set fetch-depth: 0 where ci.yml now fetches history in a step #31649

Closed

Description

@objectstack-fleet

domain:devx#2 · zhuangjianguo · session_01QsR2jTo666XXx9e1Gm21C6

What

Since #31429 and PR #31644 (card #22034), ci.yml checks out at depth 1 and runs the step "Fetch this commit's history and the base branch" in test-plan, test, test-ui and type-check-ui. ci.yml no longer has any fetch-depth: key. Three shallow-clone refusal messages still tell a CI reader to give the checkout fetch-depth: 0:

  • packages/spec/scripts/build-schemas.ts L2430: "in CI the checkout step needs fetch-depth: 0"
  • ui/scripts/check-new-cross-file-line-citations.mjs L505: "In CI the checkout needs fetch-depth: 0"
  • ui/scripts/check-changeset-claims.mjs L1424: "In CI, give the checkout fetch-depth: 0"

Found by the contract review of PR #31644 (records 6725549004 and 6725813726). It was outside that diff and not graded.

Fix

Reword each message so that a CI reader is pointed at what works now. In a ci.yml job, that is the history fetch step (named by its step name). In a workflow that still checks out full history, such as lint.yml, it is fetch-depth: 0. Before rewording, read which workflow runs each script. If a pin asserts the old text, move the pin with it.

Acceptance

  1. None of the three messages names fetch-depth: 0 as the only CI fix for a job that ci.yml runs with the fetch step.
  2. Every pin on these messages is green.

Activity

  1. added
    toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
    domain:devxDomain lane — seat card indexed by label:pm:seat
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Nov 8, 2026
  2. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: domain:devx · p3 · pm:queue · 2026-11-08T19:55Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. added
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 8, 2026
  4. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#2 · zhuangjianguo · session_01QsR2jTo666XXx9e1Gm21C6

    Claim: PM loop round 5 · 2026-11-08T20:16Z
    Session: session_01QsR2jQqimUnb4io8LpGcvH (card thread, dev) · seat session_01QsR2jTo666XXx9e1Gm21C6
    Account: zhuangjianguo
    Branch: claude/project-thread-pasvxm
    Worktree: objectstack-issue-31649
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: refusal message text, and the pins on it, in packages/spec/scripts/build-schemas.ts, ui/scripts/check-new-cross-file-line-citations.mjs and ui/scripts/check-changeset-claims.mjs. ⛔ No logic change, no workflow file, no ui/.github/**.
    Container & model: S, mode:thread, model: default tier (no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the shallow-clone refusal text these three gates print | ci.yml checks out at depth 1 and runs a history fetch step (#31429, PR #31644) | anyone reading a red gate in CI and following its fix line
    Thread-read: 6726335648
    Premise: holds; the contract reviews 6725549004 and 6725813726 on PR #31644 read all three lines on main
    Serial constraints cleared: PR #31644 (#22034, this seat) and PR #31611 edit ci.yml only, with no file in common. The ci.yml wording must stay true whether #31644 has landed or not.

    Scope: per the brief /mnt/project-files/issue-31649/brief.md. The PR says Fixes #31649. The packages/spec/scripts/** line rides here under #31424 rule 2, as the triage notes (prose only). Summons: the maintainer's 「开一个 devx 车道」 (this project, 2026-11-08T11:03Z).

  5. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#2 · zhuangjianguo · session_01QsR2jTo666XXx9e1Gm21C6

    Claim: PM loop round 5 · amendment · 2026-11-08T20:19Z
    Session: session_01QsR2jQqimUnb4io8LpGcvH (card thread, dev) · seat session_01QsR2jTo666XXx9e1Gm21C6
    Account: zhuangjianguo
    Branch: claude/project-thread-pasvxm
    Worktree: objectstack-issue-31649
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: refusal message text, and the pins on it, in packages/spec/scripts/build-schemas.ts, ui/scripts/check-new-cross-file-line-citations.mjs, ui/scripts/check-changeset-claims.mjs, and the same-class siblings ui/scripts/check-changeset-overwrite.mjs (L298) and ui/scripts/check-changeset-presence.mjs (L1103), which the dev found on main 532230f3. ⛔ No logic change, no workflow file, no ui/.github/**.
    Container & model: S, mode:thread, model: default tier (no path-derived mandate), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the shallow-clone refusal text these three gates print | ci.yml checks out at depth 1 and runs a history fetch step (#31429, PR #31644) | anyone reading a red gate in CI and following its fix line
    Thread-read: 6726335648
    Premise: holds; the contract reviews 6725549004 and 6725813726 on PR #31644 read all three lines on main
    Serial constraints cleared: PR #31644 (#22034, this seat) and PR #31611 edit ci.yml only, with no file in common. The ci.yml wording must stay true whether #31644 has landed or not.

    Scope: per the brief /mnt/project-files/issue-31649/brief.md. The PR says Fixes #31649. The packages/spec/scripts/** line rides here under #31424 rule 2, as the triage notes (prose only). Summons: the maintainer's 「开一个 devx 车道」 (this project, 2026-11-08T11:03Z).

  6. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#2 · zhuangjianguo · session_01QsR2jQqimUnb4io8LpGcvH
    os-dev-report

    {
      "issue": 31649,
      "status": "done",
      "branch": "claude/project-thread-pasvxm",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/31667",
      "head": "e7396e12",
      "session": "session_01QsR2jQqimUnb4io8LpGcvH",
      "premise_still_valid": true,
      "summary": "Five shallow-clone refusal messages now name both CI remedies: run the step `Fetch this commit's history and the base branch` before the gate (ci.yml), or give the checkout `fetch-depth: 0` (lint.yml). The scripts are build-schemas.ts plus four ui gates; two of the ui gates came in through Claim amendment 6726615830. Local advice, exit codes and every other line are unchanged, and there is no logic change and no workflow file. The wording names no job, so it holds before and after #31644 lands.",
      "files_changed": ["packages/spec/scripts/build-schemas.ts", "packages/spec/scripts/build-schemas-check-mode.git-topology.test.ts", "ui/scripts/check-new-cross-file-line-citations.mjs", "ui/scripts/check-changeset-claims.mjs", "ui/scripts/check-changeset-overwrite.mjs", "ui/scripts/check-changeset-presence.mjs", "ui/scripts/__tests__/check-changeset-presence.test.ts"],
      "line_budget": "+22 / -9 across 7 files (S)",
      "tests": "Measured at head 243250a6. Red leg: restored main 532230f3's text for presence.mjs and build-schemas.ts, tree only. Both extended pins went red, 1 failed in each file, then were restored with an empty git diff HEAD. Green: the spec topology test passed 17/17, the four ui gate suites passed 196/196, and `pnpm --dir ui exec vitest run scripts/` passed 5021 tests with 2 skipped (lock VERDICT command-exit 0).",
      "gates": "Measured at 243250a6. dispatch-gates --commands derived 66, and 65 exited 0. check:dual-build-cjs-loads is NOT MEASURED: exit 3, PREREQUISITE NOT MET, because about 33 packages have no dist. check-plugin-teardown-shape --self-test exited 0 after fetching fixture 621a4876 at depth 1; the first run exited 3 on the shallow clone. check:query-options-erasure exited 0 when run alone, after hitting the loop's 300 s timeout. check:pm-dispatch-gates exited 0 with 2205 cases. --ran reconciliation: 66 accounted for, 65 run, 1 NOT MEASURED, 0 unrun. Main 8c9260f7 was merged in afterwards and touched no surface file, so nothing was re-run. The PR body gates (changeset-no-major, adr-0087, closing-keyword-parity, partof) all exited 0. CI check-runs are in_progress at report time.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "deviations": "The commits carry Co-Authored-By: Claude plus Claude-Session, which is model-free. No skipped steps.",
      "mcp_calls": "0",
      "api_writes": "2 — fleet-write pr_create (#31667, label skip-changeset) and this post-stamped comment; plus git push x3",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": ["carrier: none · noted, not filed: neither check:new-line-citations nor check:changeset-claims (nor overwrite/presence) is run as a step by any workflow on main 532230f3, so their 'In CI' line names job shapes generically", "carrier: none · noted, not filed: build-schemas.ts --update-base shallow warning and the `why` line still cite fetch-depth: 0; both stay true (local-only mode; lint.yml typecheck-source-gates is full-history)"]
    }
  7. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#2 · zhuangjianguo · session_01QsR2jTo666XXx9e1Gm21C6

    Landed 2026-11-08T22:06Z · PR #31667 merged through the merge queue as 9bf32864f3a505c2e847daf2bdf6e775de8da32f. The seat armed auto-merge after ACCEPT 6727493982 on head e7396e12, Tier S, and no contract review was owed. All five shallow-clone refusal messages now name both CI remedies: the ci.yml history fetch step and lint.yml's fetch-depth: 0. Nothing is left owed on this card.

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxDomain lane — seat card indexed by label:pm:seatpriority:p3toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions