Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/lint-and-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,42 @@ jobs:
- name: Build docs (strict — fail on any warning)
run: mkdocs build --strict

check-conflict-markers:
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
# Fast, pre-commit-independent gate that fails immediately if git conflict
# markers (<<<<<<< / ======= / >>>>>>>) are found committed in any text
# file. This is intentionally redundant with pre-commit's check-merge-conflict
# hook — the hook only fires on local `git commit`, whereas this step fires
# on every push and PR, catching markers that sneak in via direct pushes,
# GitHub UI merges, or --no-verify bypasses.
# Excludes: binary extensions, LICENSES/ vendored texts, and the
# .pre-commit-config.yaml itself (which references hook IDs that contain
# the string "conflict").
Comment on lines +548 to +550
name: Check — No committed conflict markers
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Fail if conflict markers are committed
run: |
set +e
hits=$(git grep -In --untracked=false \
-e '^<<<<<<< ' -e '^=======$' -e '^>>>>>>> ' \
-- \
':(exclude)LICENSES/**' \
':(exclude)*.yuv' ':(exclude)*.pkl' ':(exclude)*.onnx' \
':(exclude)*.bin' ':(exclude)*.mexa64' ':(exclude)*.mexw64' \
':(exclude)*.mexmaci64' ':(exclude)*.npy' \
':(exclude)*.so' ':(exclude)*.a' ':(exclude)*.dylib' \
':(exclude)*.dll' ':(exclude)*.onnx.data' \
2>/dev/null)
if [ -n "$hits" ]; then
echo "::error::Committed conflict markers found — resolve before merging:"
echo "$hits"
exit 1
fi
echo "No conflict markers found."
Comment on lines +558 to +574

shellcheck:
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
# T7-CI-DEDUP — body collapsed to a no-op proxy that depends on the
Expand Down
12 changes: 12 additions & 0 deletions changelog.d/fixed/conflict-marker-sweep-plus-ci-gate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### Fixed

- Remove committed conflict markers from 78 files introduced by the
post-merge-train sweep commit (24bb5daf89). Markers kept the HEAD side
in every case — the pre-ADR-0700-correct `core/` path references plus
any forward-looking code additions (math import, `_sanitize_nonfinite`,
`float_ansnr` removal note in test_hip_smoke.c, C++23 safety invariants
in core/AGENTS.md).
- Add `check-conflict-markers` CI job to `lint-and-format.yml`: a fast,
pre-commit-independent `git grep` gate that fails immediately on any
committed conflict marker (`<<<<<<< ` / `=======` / `>>>>>>> `),
blocking merges that bypass the local pre-commit hook.
5 changes: 2 additions & 3 deletions core/src/feature/cuda/integer_vif_cuda.c
Original file line number Diff line number Diff line change
Expand Up @@ -346,9 +346,8 @@ int filter1d_8(VifStateCuda *s, VifBufferCuda *buf, uint8_t *ref_in, uint8_t *di
* ADR-0743: __launch_bounds__(128, 10) on filter1d_8_horizontal_kernel_2_17_9
* reduced registers from 56 to 48. vpt=2 is retained (vpt=4 evaluated and
* rejected — smem-limited at 37.5% occupancy vs 62.5% for vpt=2).
<<<<<<< HEAD
*/ const int BLOCKX = 128, BLOCKY = 1, val_per_thread = 2; const int BLOCKX = 128, BLOCKY = 1, val_per_thread = 2;
>>>>>>> refactor(core): rename feature_extractor.c → .cpp (ADR-0772)
*/
const int BLOCKX = 128, BLOCKY = 1, val_per_thread = 2;

void *args_hori[] = {
&*buf, &w, &h, (uint16_t *)&vif_filter1d_table, &vif_enhn_gain_limit, &buf->accum};
Expand Down
Loading