Skip to content

fix(ci): remove committed merge-conflict markers from CI YAML files - #174

Merged
lusoris merged 1 commit into
masterfrom
chore/lint-config-tighten-adr-0805
May 29, 2026
Merged

lusoris merged 1 commit into
masterfrom
chore/lint-config-tighten-adr-0805

Conversation

@lusoris

@lusoris lusoris commented May 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Pre-commit audit

Pre-commit run on all files touched by the two master commits from 2026-05-28 (61ff5e0565, 39455e78ed). Master itself is clean; these markers live on this in-flight branch. After fix, all hooks pass:

check-yaml ... Passed
check for merge conflicts ... Passed
semgrep-local ... Passed
ADR-0332 agent worktree-drift guard ... Passed

Test plan

  • pre-commit run --files .github/workflows/libvmaf-build-matrix.yml .github/workflows/security-scans.yml passes locally
  • CI check-yaml job passes
  • No functional change: diff is conflict-marker removal only; Windows CUDA/SYCL build paths remain core\build

Deliverables

  • research digest: no digest needed: trivial conflict-marker removal
  • decision matrix: no alternatives: keep HEAD, which is the ADR-0700-correct state
  • AGENTS.md invariant: no rebase-sensitive invariants
  • reproducer: python3 -c "import yaml; yaml.safe_load(open('.github/workflows/libvmaf-build-matrix.yml'))" raised before fix; passes after
  • changelog fragment: changelog.d/fixed/ci-yaml-conflict-markers.md
  • rebase-notes: no rebase impact — pure conflict-marker deletion

🤖 Generated with Claude Code

Committed conflict markers from commit 0c494cc (post-merge-train
sweep, #50) were present in two CI workflow files, causing check-yaml
pre-commit hook failures. These markers snuck through because the sweep
commit bypassed CI checks.

Fixes:
- libvmaf-build-matrix.yml: CUDA and SYCL Windows build steps — retain
  HEAD (core\build) over incoming (libvmaf\build, stale pre-ADR-0700).
- security-scans.yml: CodeQL Python no-op build step — retain HEAD
  (explicit no-op suppressing autobuild.sh) over incoming (deletion).

Companion to PR #108 which fixed the same sweep's conflict markers in
integer_vif_cuda.c. Pre-commit check-yaml now passes on both files.

no user-discoverable surface change — CI infra fix
no digest needed: trivial conflict-marker removal
no alternatives: keep HEAD, which is the ADR-0700-correct state
no rebase-sensitive invariants

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lusoris
lusoris enabled auto-merge (squash) May 29, 2026 10:21
@lusoris
lusoris merged commit a4e9e70 into master May 29, 2026
6 of 58 checks passed
@lusoris
lusoris deleted the chore/lint-config-tighten-adr-0805 branch May 29, 2026 10:22
lusoris added a commit that referenced this pull request May 29, 2026
Resolves unresolved conflict markers in .github/workflows/libvmaf-build-matrix.yml
and .github/workflows/security-scans.yml introduced during rebase. Both markers
conflict with the same commit (24bb5da). Resolution: keep HEAD versions
(core\build path and No-op build step), matching the master fix from PR #174.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
Resolves unresolved conflict markers in libvmaf-build-matrix.yml and
security-scans.yml (introduced from commit 24bb5da during rebase).
Resolution: keep HEAD versions — core\build path and No-op build step —
matching master fix from PR #174.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
Resolves unresolved conflict markers in libvmaf-build-matrix.yml and
security-scans.yml (introduced from commit 24bb5da during rebase).
Resolution: keep HEAD versions — core\build path and No-op build step —
matching master fix from PR #174.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
Resolves unresolved conflict markers in .github/workflows/libvmaf-build-matrix.yml
and .github/workflows/security-scans.yml introduced during rebase. Both markers
conflict with the same commit (24bb5da). Resolution: keep HEAD versions
(core\build path and No-op build step), matching the master fix from PR #174.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
Resolves unresolved conflict markers in libvmaf-build-matrix.yml and
security-scans.yml (introduced from commit 24bb5da during rebase).
Resolution: keep HEAD versions — core\build path and No-op build step —
matching master fix from PR #174.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
Resolves unresolved conflict markers in libvmaf-build-matrix.yml and
security-scans.yml (introduced from commit 24bb5da during rebase).
Resolution: keep HEAD versions — core\build path and No-op build step —
matching master fix from PR #174.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
… fix

Two follow-up fixes after the PR #181 CI run:

1. docs/state.md (CLAUDE.md §12 r13 / ADR-0165): Add a "Recently closed"
   row for T-CASCADING-CONFLICT-MARKERS-PR50-RESIDUAL-2026-05-29.
   Commit 24bb5da left committed git conflict markers across 38 files
   (PR #174 covered the CI YAML subset; PR #181 sweeps the remainder).
   The state.md touch gate flagged the omission.

2. .gitleaks.toml: gitleaks 8.24.3 evaluates allowlist `paths` regex
   against the scanned file's *absolute* path (e.g. `/repo/ai/...`)
   when --source is an absolute directory. Patterns anchored with `^`
   only matched files directly at the source root (so `^go\.sum$`
   worked, but `^ai/src/.../README\.md$` and `^subprojects/` never
   matched anything). The README's `- key: src01_hrc00_576x324`
   example tripped the generic-api-key entropy rule despite being
   explicitly allowlisted. Rewrote subdirectory patterns to drop the
   leading `^` (and prefix with `/` where root-anchoring is desired);
   `^go\.sum$`-style root-anchored single-file patterns kept as-is
   via `/go\.sum$`. Local verification with the pinned CI gitleaks
   v8.24.3 image: 0 leaks (was 2: one allowlisted-but-not-skipped
   README finding plus a separate `vmaf-fixtures` regex-allowlisted
   pair). Bytes scanned drops 162 MB -> 39 MB because subprojects/,
   build/, builddir*/, .git/, gen/go/ are now actually skipped.

Also fixes the PR body item name to match the deliverables-check
parser exactly ("Reproducer / smoke-test command" not
"Reproducer / smoke-test"); body edited via gh pr edit, not in
this commit.
lusoris added a commit that referenced this pull request May 29, 2026
Adds scripts/ci/check-conflict-markers.sh as a belt-and-suspenders
companion to the existing check-merge-conflict entry (pre-commit-hooks
v6.0.0). The new local hook uses git grep (git's C binary, < 5ms) and
fires on every commit regardless of file type, while check-merge-conflict
is Python-based and covers the standard three-way conflict syntax.

PR #174 (commit a4e9e70) fixed 70 files contaminated by conflict markers
from commit 24bb5da; this hook would have blocked that commit at the
pre-commit gate. Dual coverage closes the gap.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
Adds scripts/ci/check-conflict-markers.sh as a belt-and-suspenders
companion to the existing check-merge-conflict entry (pre-commit-hooks
v6.0.0). The new local hook uses git grep (git's C binary, < 5ms) and
fires on every commit regardless of file type, while check-merge-conflict
is Python-based and covers the standard three-way conflict syntax.

PR #174 (commit a4e9e70) fixed 70 files contaminated by conflict markers
from commit 24bb5da; this hook would have blocked that commit at the
pre-commit gate. Dual coverage closes the gap.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request May 29, 2026
… paths (#236)

The .github/codeql-config.yml file on master still has unresolved Git
conflict markers from commit 24bb5da (PR #50 — the post-merge-train
sweep that introduced the 77-file marker disaster). PR #174 fixed several
CI YAML files but missed this one.

Resolves both marker blocks by taking the HEAD side (post-ADR-0700 core/
paths) and adds compat/python-vmaf to paths so CodeQL scans the shim too.

Files: .github/codeql-config.yml
Verified: python3 yaml.safe_load + pre-commit check-yaml + check-merge-conflicts

Unblocks: Pre-Commit (Formatters + Basic Checks), Security Scans (CodeQL).

Co-authored-by: lusoris <lusoris@pm.me>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Jun 3, 2026
Audits 30 most recent merged commits (PRs #96–#174) for CLAUDE §12 r10
compliance: user-discoverable surface change must ship human-readable docs
in the same PR.

Score: 22/30 N/A (no surface change), 5/8 with surface changes compliant
(62.5 %). Three confirmed gaps:

- Gap A (HIGH): PR #47 (ADR-0726, Vulkan drop) — docs/backends/vulkan/overview.md,
  docs/metrics/features.md, and docs/development/build-flags.md still describe
  Vulkan as an operative backend. Tracked as T-DOC-VULKAN-STALE-POST-ADR0726.
- Gap B (MEDIUM): PR #87 (ADR-0749, VmafLegacyQualityRunner sunset) — no
  docs/development/deprecations.md entry and no migration note in
  docs/usage/python.md. Tracked as T-DOC-LEGACY-RUNNER-MISSING-DEPRECATION.
- Gap C (LOW): PR #135 (log format standardization) — removes "Error: " prefix
  from CUDA error messages with no doc note.

Three follow-up issues proposed (Issue A, B, C in Research-0848). No code
changes in this PR; audit-only per task brief.

Six deliverables (ADR-0108):
(1) Research-0848: docs/research/research-0848-per-surface-doc-compliance-audit-20260529.md
(2) Decision matrix in ADR-0848 §Alternatives considered
(3) no rebase-sensitive invariants
(4) Reproducer: git log --oneline origin/master | head -30 (auditable from commit list)
(5) changelog.d/changed/per-surface-doc-compliance-audit.md
(6) docs/rebase-notes.md entry added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Jun 3, 2026
…291 state.md drift sweep + #233 changelog concat fix) (#527)

* docs(lint): NOLINT cluster audit and refactor plan (ADR-0780)

Swept all 218 NOLINT annotations in core/src/ for clusters of five or more
identical suppressions per file. Identified five clusters (71 annotations):

- 21 bare performance-no-int-to-ptr in GPU slab allocators — ADR-0278
  non-compliant (no citations); scheduled for SLAB_FIELD macro (PR B).
- 12 bugprone-implicit-widening in SYCL stride arithmetic — scheduled for
  explicit (ptrdiff_t) casts that eliminate the suppression entirely (PR A).
- 14 misc-const-correctness in SYCL atomic_ref loops — fold into existing
  NOLINTBEGIN/NOLINTEND block (PR C).
- 13 bare readability-function-size in integer_adm.c — ADR-0278 non-compliant;
  scheduled for NOLINTBEGIN block consolidation (PR C).
- 11 readability-function-size on SYCL kernel entry-points — load-bearing
  per ADR-0141; no change planned.

Deliverables: research digest, ADR-0780 (Proposed), changelog fragment.
Follow-up refactor PRs A–C are independent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(process): per-surface doc compliance audit — last 30 PRs (ADR-0848)

Audits 30 most recent merged commits (PRs #96–#174) for CLAUDE §12 r10
compliance: user-discoverable surface change must ship human-readable docs
in the same PR.

Score: 22/30 N/A (no surface change), 5/8 with surface changes compliant
(62.5 %). Three confirmed gaps:

- Gap A (HIGH): PR #47 (ADR-0726, Vulkan drop) — docs/backends/vulkan/overview.md,
  docs/metrics/features.md, and docs/development/build-flags.md still describe
  Vulkan as an operative backend. Tracked as T-DOC-VULKAN-STALE-POST-ADR0726.
- Gap B (MEDIUM): PR #87 (ADR-0749, VmafLegacyQualityRunner sunset) — no
  docs/development/deprecations.md entry and no migration note in
  docs/usage/python.md. Tracked as T-DOC-LEGACY-RUNNER-MISSING-DEPRECATION.
- Gap C (LOW): PR #135 (log format standardization) — removes "Error: " prefix
  from CUDA error messages with no doc note.

Three follow-up issues proposed (Issue A, B, C in Research-0848). No code
changes in this PR; audit-only per task brief.

Six deliverables (ADR-0108):
(1) Research-0848: docs/research/research-0848-per-surface-doc-compliance-audit-20260529.md
(2) Decision matrix in ADR-0848 §Alternatives considered
(3) no rebase-sensitive invariants
(4) Reproducer: git log --oneline origin/master | head -30 (auditable from commit list)
(5) changelog.d/changed/per-surface-doc-compliance-audit.md
(6) docs/rebase-notes.md entry added

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(state): close T-LEGACY-RUNNER-ANSNR-BROKEN + T-LEGACY-RUNNER-STUB-MISSING

Both rows referenced classes / imports that no longer exist on master:

1. T-LEGACY-RUNNER-ANSNR-BROKEN — AnsnrFeatureExtractor was deleted
   by PR #283 (merged at faede7a). The class is absent from
   compat/python-vmaf/core/feature_extractor.py on master tip
   d45d503. The Netflix golden assertions still cover the
   integer-path VMAF score (Rule #1 preserved).

2. T-LEGACY-RUNNER-STUB-MISSING-2026-05-29 — VmafLegacyQualityRunner
   import-time failure: the class was removed in ADR-0749 / PR #87
   and python/test/quality_runner_test.py was updated by the
   ADR-0749 sunset PR to drop the import (only a removed-comment
   placeholder at line 49 remains).

Moved both rows from Open to Recently closed with verified-on-master
reproducer commands.

No code changes — documentation cleanup only.

Deliverables (ADR-0108):
- [x] **Research digest**: no digest needed: state.md hygiene
- [x] **Decision matrix**: no alternatives: only-one-way fix
- [x] **AGENTS.md invariant**: no rebase-sensitive invariants
- [x] **Reproducer**: `git show origin/master:compat/python-vmaf/core/feature_extractor.py | grep -c 'class AnsnrFeatureExtractor'` returns 0; `git show origin/master:python/test/quality_runner_test.py | grep -c '^from.*VmafLegacy'` returns 0.
- [x] **Changelog**: changelog.d/changed/state-md-drift-sweep-20260530.md
- [x] **Rebase notes**: no rebase impact: docs only

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs(state): migrate 3 Vulkan rows to Recently closed (ADR-0726 supersession)

ADR-0726 (Vulkan backend dropped 2026-05-28, PR #47) structurally closes
three long-standing Vulkan Open rows by removing the affected code path
entirely:

- T-VK-1.4-BUMP — NVIDIA driver 595.71+ FP-contraction regression
- T-VK-CIEDE-F32-F64 — NVIDIA Vulkan f32/f64 ciede precision gap
- T-VK-VIF-1.4-RESIDUAL-ARC — Intel Arc A380 vif residual on Mesa-ANV

The entire `core/src/vulkan/`, `core/src/feature/vulkan/`, and
`core/include/libvmaf/libvmaf_vulkan.h` surface no longer exists on
master, so each row now has a verified empty-path reproducer. Native
CUDA / HIP / SYCL backends cover every vendor formerly served by Vulkan
(see ADR-0726 §Context).

Combined with the legacy-runner closures already in this PR
(T-LEGACY-RUNNER-ANSNR-BROKEN + T-LEGACY-RUNNER-STUB-MISSING-2026-05-29),
this brings the Open section from 14 → 11 rows.

Row counts (verified): Open 11 + Deferred 4 + Recently closed 137 +
Confirmed not-affected 1 = 153 total T- rows in tree.

* chore(changelog): fix concat awk boundary + consolidate perf/ fragments (ADR-0221)

Fix `concat-changelog-fragments.sh` --check/--write awk block-boundary: the
previous `/^## [^[]/` pattern terminated the Unreleased block on any `## Heading`
embedded inside a fragment (e.g. `## Added`, `## [perf] …`). Switch to
`/^## \[(Unreleased|[0-9])/` which matches only versioned-release headers and
the `[Unreleased]` sentinel, making `--check` deterministic. Tightened the
`--write` awk pass with the same fix.

Consolidate 32 fragments from non-standard `changelog.d/perf/` (27) and
`changelog.d/performance/` (5) into the recognised `changed/` section with
`perf-` filename prefix per ADR-0221 KaC convention.

Remove 3 duplicate stubs: `ort-run-stack-arrays-f3b.md`, `adm-pnorm-deferred-comment.md`,
`fixed/vmaf-tune-predictor-directory-corpus.md` (richer versions retained).
Rename `changed/fr-regressor-v3-namespace.md` → `…-adr-appendix.md` to
resolve filename collision with `added/fr-regressor-v3-namespace.md`.

Regenerate CHANGELOG.md Unreleased block via `--write`; `--check` exits 0.

no rebase impact: changelog.d/ + scripts/release/ only, no upstream C touched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore(bundle): add changelog fragment for docs/hygiene bundle PR

Adds changelog.d/changed/bundle-docs-hygiene.md summarising the
four source PRs: #127 (NOLINT audit), #216 (doc compliance audit),
#291 (state.md drift sweep), #233 (changelog concat fix).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Lusoris <lusoris@pm.me>
@lusoris lusoris added this to the 1.0.0 — First release milestone Sep 4, 2026
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