Skip to content

fix(ci): repair contract-doc path filtering - #338

Draft
seonghobae wants to merge 16 commits into
fix/release-artifact-windows-namespace-v1from
fix/test-path-filter-contract-v1
Draft

fix(ci): repair contract-doc path filtering#338
seonghobae wants to merge 16 commits into
fix/release-artifact-windows-namespace-v1from
fix/test-path-filter-contract-v1

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Problem

DiskSage Test workflow must use GitHub's supported ordered paths re-inclusion contract rather than negative re-inclusion under paths-ignore, while remaining the canonical owner for shared Test-workflow behavior. A leaf runtime PR (#345) also introduced a valid Windows agent-session regression directly in .github/workflows/test.yml; that evidence belongs here, not in the runtime lane.

Current exact state — 2026-09-06 KST

  • protected main: 0e90f9cebadbd7f59606baaec4ca1d2f178c899a;
  • direct parent/base fix: verify Windows release artifact namespace #264: 3e33229b4157a084a1985a1c7e952f98a64f25e3;
  • exact fix(ci): repair contract-doc path filtering #338 head: 29aaf64c9fea7ffde88fc9a8adcd6f0560c26466;
  • semantic delta remains canonical Test workflow plus its contract test; release/Test foundation source is inherited through ancestry rather than copied;
  • exact Test 34038386834 is non-terminal: Windows windows-home-resolution job 101500547096 is terminal success and executed the new conditional agent-state step successfully; Ubuntu test 101500547141 and llm-engine-build 101500546979 remain runner-unassigned with steps=[], runner_id=0;
  • Draft Release 34038386863 is skipped and is not passing evidence;
  • open, Draft, mechanically mergeable. Predecessor evidence does not transfer.

Review → RED → causal owner repair

The valid #345 Windows regression compiled src-tauri/src/agent_state_guard.rs directly, but placing that step in a leaf-owned shared workflow violated the Test single-writer boundary. Test-first fe2059645790f3d0a2163cbebb16fcf1763089b2 extends src/lib/testWorkflowPathFilterContract.test.ts to require that the canonical workflow run the agent-state regression whenever the owner source exists. Its hosted Test was cancelled by the immediate successor, so no hosted RED is claimed.

Production 29aaf64c9fea7ffde88fc9a8adcd6f0560c26466 adds the Windows step in this canonical workflow with an explicit Test-Path 'src-tauri/src/agent_state_guard.rs' admission. That keeps #338 independently runnable before #345 is integrated while ensuring any descendant carrying the agent-state owner source executes the Windows regression. The check is additive; no existing job, required test, timeout, or failure condition was weakened. Current Windows hosted execution confirms the workflow parses and the conditional step completes successfully on the canonical owner head; #345 must still later prove the source-present branch after normal owner adoption.

#345 subsequently restored .github/workflows/test.yml to its protected-main blob in cbdc760cc8fb733772d718c29b0459d324b852bf, removing the competing leaf writer. #345 must later adopt the canonical Test owner through normal ancestry before using this workflow evidence; no predecessor check is transferred.

Existing path-filter contract

Push/pull-request filters include **, exclude generic docs/root Markdown, then re-include contract-checked documents and CHANGELOG.md. The regression contract prevents comments or inline YAML lists from hiding unsupported negative paths-ignore entries.

Merge boundary

Keep Draft while #264 is not integrated or any required exact-head gate is non-terminal/non-passing. #264 remains blocked by the canonical .github CodeQL metadata-binding owner path. Revalidate protected main, live ruleset, review threads, Test/Release/Security/SAST/CodeQL/OSV/Scorecard and central required workflows immediately before Ready/merge. No force-push, destructive rebase, self-approval, gate weakening, administrative bypass, or predecessor-evidence transfer.

Latest owner update — conditional macOS cache regressions

Current head: dad7832cbc20acf8b709b6ed28e06e3db6319b12 (Draft). Earlier exact-head status above is historical and does not establish this head's hosted checks.

The canonical Test owner now carries the macOS job setup, pinned actions, and Corepack/permanent-Gradle regression intent from PR #295 head b7fbf6f58e196ff7c4b059477af6d450c41373a1, with the generated-cache staging regression added. Each target runs only when its test source exists. An absent source prints an explicit skip stating that no runtime regression executed. No test implementation was copied into this owner.

Validation: the focused Vitest workflow contract passed 4/4 tests; the previous canonical workflow failed the new assertion (3 passed, 1 failed). The shell fixture verifies absent-source skips, exact Cargo dispatch for present source, and failure propagation. Actionlint and git diff --check pass. These are workflow/dispatch checks, not Rust runtime execution. All three cache test sources are absent on this canonical head, so its macOS job cannot establish their runtime correctness.

Protected owner adoption remains pending. PR #295's existing workflow delta remains unchanged until successor ancestry and coverage are verified; duplicate-owner reconciliation must follow that adoption. No consumer workflow was edited, no PR was merged, and no prior hosted result transfers to this head.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

테스트 워크플로의 pushpull_request 경로 필터를 paths 기반으로 변경했습니다. 문서 경로를 제외한 뒤 지정된 문서와 CHANGELOG.md를 다시 포함합니다. paths-ignore의 잘못된 부정 패턴을 검사하는 Vitest 계약 테스트를 추가했습니다.

Changes

워크플로 경로 필터

Layer / File(s) Summary
경로 필터 전환 및 계약 검증
.github/workflows/test.yml, src/lib/testWorkflowPathFilterContract.test.ts
pushpull_request 트리거가 paths 필터를 사용합니다. 문서 경로와 Markdown 파일을 제외한 뒤 지정된 파일을 다시 포함합니다. 계약 테스트는 paths-ignore 블록에 !로 시작하는 패턴이 없는지 검사합니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🔵 Low · up to 47d16

The workflow now uses supported ordered path filters, but the added safeguard may not detect every future invalid negative paths-ignore pattern. Strengthen the test's YAML handling before relying on it as the contract check.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 GitHub Actions의 계약 문서 경로 필터링 수정이라는 주요 변경 사항을 정확하고 간결하게 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/test-path-filter-contract-v1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as ready for review September 3, 2026 11:41
devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae changed the base branch from main to fix/release-artifact-windows-namespace-v1 September 3, 2026 12:17
@seonghobae
seonghobae marked this pull request as draft September 3, 2026 13:10
Adopt exact #264 while preserving #338 ordered path re-inclusion and the reviewed first-attempt PR cancellation contract.

Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 4, 2026
Adopt exact #338 non-force while preserving coverage jobs and aligning Test concurrency with the canonical first-attempt PR supersession contract.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Keep #338 ordered path-filter ownership unchanged while inheriting #264's corrected run_id release contract assertions through ancestry.

Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 4, 2026
Preserve #337 coverage/test evidence while inheriting #338 and #264's corrected release run_id test contracts through ancestry. Coverage thresholds and denominator remain unchanged.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae seonghobae added bug Something isn't working priority: medium Normal-priority or P2 work status: draft Draft pull request type: bug Defect or incorrect behavior labels Sep 6, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working priority: medium Normal-priority or P2 work status: draft Draft pull request type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant