Skip to content

fix(gitignore): ignore .artifacts/ release-lane PR-CI evidence scratch dir (#1150, #1155) - #1285

Merged
SisyphusZheng merged 1 commit into
devfrom
kimi/v044-release-artifacts-gitignore
Sep 3, 2026
Merged

fix(gitignore): ignore .artifacts/ release-lane PR-CI evidence scratch dir (#1150, #1155)#1285
SisyphusZheng merged 1 commit into
devfrom
kimi/v044-release-artifacts-gitignore

Conversation

@SisyphusZheng

Copy link
Copy Markdown
Member

Problem

The v0.44.0-beta.1 publish run (autoflow-release.yml, run 33734627360) failed after all release-tier gates passed with:

Refusing release from a dirty worktree: ?? .artifacts/

The workflow downloads the authorizing PR-CI evidence artifact into .artifacts/pr-ci/ (workflow lines ~76–91), and assertCleanWorktree (tools/lib/git-cleanliness.ts) rejected the untracked .artifacts/ directory. The dry-run path cannot catch this because it returns before the cleanliness assertion. Publish blocker for #1150 / #1155.

Owner

v0.44 Kimi implementer, dispatch packet: release-lane fix — .artifacts/ scratch dir breaks publish-existing clean-worktree assertion (#1150 publish blocker).

Before

With .artifacts/pr-ci/pr-full-ci-evidence.json present (exactly what the release workflow downloads), git status --porcelain prints ?? .artifacts/, and filterNonEvidenceDirty returns ["?? .artifacts/"]assertCleanWorktree refuses the release.

RED proof (base cbd60136):

$ git status --porcelain
?? .artifacts/
$ deno eval 'import { filterNonEvidenceDirty } from "./tools/lib/git-cleanliness.ts"; ...'
nonEvidenceDirty: ["?? .artifacts/"]
WOULD REFUSE: Refusing release from a dirty worktree   (exit 1)

After

.artifacts/ is listed in .gitignore under the existing "Root-local media/agent scratch artifacts (never release inputs)" section, with a one-line comment tying it to the release workflow's PR-CI evidence download dir. With the evidence file present, git status --porcelain is empty and deno task repo:hygiene passes.

GREEN proof (head 13d914c):

$ test -f .artifacts/pr-ci/pr-full-ci-evidence.json && echo present
present
$ git status --porcelain
(empty)
$ deno task repo:hygiene
Repo hygiene check passed.   (exit 0)

Why-not-second-owner

This change introduces no duplicate-looking implementation: it adds one ignore entry to the existing root-local scratch section of .gitignore. No new tooling, test framework, or allowlist logic was added (repo:hygiene has no gitignore-coverage test hook, so per the packet the behavior is proven directly instead of inventing one).

Evidence

All run against 13d914c on branch kimi/v044-release-artifacts-gitignore:

Command Exit
deno task fmt:check (Checked 1552 files) 0
deno task lint (Checked 883 files) 0
deno task repo:hygiene (with .artifacts/pr-ci/ present) 0
deno task workflow:check 0
git status --porcelain with .artifacts/pr-ci/pr-full-ci-evidence.json present 0, empty output
deno eval filterNonEvidenceDirty pre-fix 1 (RED, would refuse)

Additional scan (packet step 3) of the release lane found no other unignored scratch writes: the workflow otherwise writes only $HOME/.npmrc (outside the repo); publish-existing persists only under docs/release/ (allowlisted in git-cleanliness.ts); npm pack tarballs packages/*/*.tgz are covered by *.tgz; pack-time temp dirs use Deno.makeTempDir (outside the repo); www/app/data/_generated- writes are allowlisted.

Scope

  • .gitignore — 2 lines added (entry + comment) in the root-local scratch artifacts section.

Nothing outside the packet-owned path was edited. No product code, no workflow edits, no tooling logic changes.

Risk

None known. Residual: the implementer agent doc's generic "do not commit/push/PR" guardrail was overridden by this packet's explicit workflow step 4 (branch/commit/push/PR); noted for the record. Follow-up: re-run the v0.44.0-beta.1 publish after merge.

…h dir (#1150, #1155)

The v0.44.0-beta.1 publish run (autoflow-release.yml, run 33734627360)
failed after all release-tier gates passed: the workflow downloads the
authorizing PR-CI evidence artifact into .artifacts/pr-ci/, and
assertCleanWorktree rejected the untracked .artifacts/ dir
('Refusing release from a dirty worktree: ?? .artifacts/').

.artifacts/ is CI scratch, never a release input, so it belongs in the
root-local scratch artifacts ignore section alongside /.tmp/.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying openelement with  Cloudflare Pages  Cloudflare Pages

Latest commit: 13d914c
Status: ✅  Deploy successful!
Preview URL: https://8c1c8ddf.lessjs.pages.dev
Branch Preview URL: https://kimi-v044-release-artifacts.lessjs.pages.dev

View logs

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

APIError: Insufficient Balance

opencode session  |  github run

@SisyphusZheng
SisyphusZheng merged commit aeeddae into dev Sep 3, 2026
10 checks passed
@SisyphusZheng
SisyphusZheng deleted the kimi/v044-release-artifacts-gitignore branch September 3, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant