Skip to content

1.9.79: changelogs.json is JSON again (conflict markers from #327's merge), and no tracked file may hold one - #332

Merged
tracking202 merged 1 commit into
1.9.79from
1.9.79-changelog-json-markers
Oct 29, 2026
Merged

tracking202 merged 1 commit into
1.9.79from
1.9.79-changelog-json-markers

Conversation

@tracking202

Copy link
Copy Markdown
Owner

1.9.79 is broken at its tip (81c601f). 202-config/changelogs.json holds committed conflict markers:

<<<<<<< HEAD
      "Fixed: The Redirector page no longer drops every destination …"
=======
      "Fixed: p202 report losers and winners with --aff-campaign-id priced every click at a payout of 0 …"
>>>>>>> origin/1.9.79

They came from the Copilot merge of 1.9.79 into #327 (507dc9e, "Apply remaining changes"), which #327's squash took into 1.9.79. The file is no longer JSON, and it is the one the in-app release notes read (functions-tracking202.php, around line 1221).

The fix: both entries are kept, as each side wrote it, with #321's first, since 1.9.79 had it before #327. The file parses again: 76 entries under 1.9.79, none repeated.

Why nothing caught it: PHP lint reads only PHP, and no test decoded this file. The new tests/Release/NoMergeConflictMarkersTest checks two things:

  • no tracked text file has a conflict-marker line (<<<<<<< , >>>>>>> , ||||||| , or ======= alone on a line);
  • every tracked JSON file parses (41 today).

With the broken file put back, both tests fail and name it. Restored (cmp-checked), they pass. The rest of the tree has no such line.

Merge this before #330 and #331. Both will take it in their next update from 1.9.79.

No backlog item: found when merging 1.9.79 into #330 at 02:35Z.

Verification

Run in a worktree at 9a2553f (origin/1.9.79 81c601f plus this commit), PHP 8.3:

  • NoMergeConflictMarkersTest: OK, 2 tests (2,982 assertions). The plant above failed both.
  • phpcs --standard=PSR12 and phpstan on the new test: clean.
  • json_decode of every tracked .json: all parse.

The full verify.sh ladder was not run, because the change is one JSON hunk and one new test. No live or agent path is touched.


Generated by Claude Code

… conflict marker

81c601f (#327's squash) took a merge an agent left unresolved:
202-config/changelogs.json held <<<<<<<, ======= and >>>>>>> around two
1.9.79 entries, so the file the in-app release notes read stopped being JSON.
Both entries are kept, 1.9.79's first, as each side wrote it.

Nothing CI runs would have refused it: PHP lint reads PHP, and no test decoded
the file. NoMergeConflictMarkersTest holds every tracked text file to having no
conflict-marker line, and every tracked JSON file to parsing. With the marked
file put back, both tests fail on it; the tree is otherwise clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VRoS2SViuxaucFaKWsFnLr
Copilot AI balanced review requested due to automatic review settings October 29, 2026 02:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T02:44:08.059144Z 9a2553f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copy link
Copy Markdown
Owner Author

claude-review and adversarial-review did not run here, and this PR cannot fix that. The Claude app runs a review only when its workflow file matches master's copy. 6834377 (#275) changed both review workflows on 1.9.79, so neither runs on any PR into 1.9.79 until master carries those files. Re-running gives the same refusal.

One related result: on #330's previous head, GitHub's merge with today's 1.9.79 already failed ChangelogEntriesAreUniqueTest with JsonException: Syntax error. That is this PR's broken file, read by the test #330 adds.


Generated by Claude Code

@tracking202
tracking202 merged commit e7e7300 into 1.9.79 Oct 29, 2026
13 of 15 checks passed
tracking202 added a commit that referenced this pull request Oct 30, 2026
…are reviewed again (#341)

Claude's GitHub app runs a review only when the workflow file the PR runs
is identical to the one on the default branch. 1.9.79 changed
adversarial-review.yml (0befdee, 6834377) and claude-code-review.yml
(80f983c, 6834377), so every PR against 1.9.79 since then was skipped:
'Workflow validation failed. The workflow file must exist and have
identical content to the version on the repository's default branch',
then 'the adversarial review did not run' (#331, #332, #334, #335, #336).

This takes both files from 1.9.79 unchanged. They read nothing master
lacks: .github/review-findings-key.asc is the same file on both, and the
review reads CLAUDE.md from the PR's own branch.
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.

3 participants