Skip to content

1.9.79: the release notes list each 1.9.79 change once - #330

Open
tracking202 wants to merge 3 commits into
1.9.79from
1.9.79-changelog-once
Open

tracking202 wants to merge 3 commits into
1.9.79from
1.9.79-changelog-once

Conversation

@tracking202

Copy link
Copy Markdown
Owner

Every 1.9.79 PR added its release-note lines at the end of the version's list, so every merge of two of them conflicted there. Resolving by keeping both sides kept two things:

  • a line both sides already had;
  • the older wording of a line one side had reworded.

Under Version 1.9.79, changelogs.txt held 124 entries for 81 changes:

Each change now has one entry, at the place its first copy held, in the wording its PR ended with. The removed set is exactly those 43 copies (checked by script): no entry is added or reworded, and nothing outside 1.9.79 changes. 202-config/changelogs.json had no repeats and is untouched.

The check

tests/Release/ChangelogEntriesAreUniqueTest:

  • A repeated entry is refused in any version of either file. Every released version passes.
  • For the version version.php names, two entries that share 60% of their five-word runs are refused. On 1.9.79 every reworded copy scored 0.76 to 0.97, and the closest two distinct changes scored 0.18.
  • It is not asked of released versions: 1.9.56 lists one change as both an Update and a Fix (0.78), and it shipped that way.

Plants:

  • With 1.9.79's merged changelogs.txt put back, both tests fail.
  • With only the eight reworded copies added back to the cleaned file, the wording test alone fails, naming all nine pairs.
  • Both were restored with cmp, and the suite was re-run green.

The merge tool that produced most of these was the coordinator's changelog resolver. It kept the incoming side's copy of a line this branch had reworded. It now drops it, in both the text and the JSON resolver.

No backlog item: K2SP's agent found it on 1.9.79 after the merges, and I counted it.

Verification

Run in a worktree at 8288e8b (origin/1.9.79 c6d5167 plus this commit), PHP 8.3.

.claude/skills/p202-verify/scripts/verify.sh --changed, run before the four long lines in the new test were wrapped:

Scope report
------------
  patterns   PASS
  phpcs      FAIL
  phpstan    FAIL  phpstan.neon.dist failed, phpstan-strict.neon passed
  syntax     PASS
  unit       PASS

Not covered by this script:
  live      stand up an instance, drive the path a user would take
  agent     add and run a case under tests/fixtures/agent-eval/cases/
  ci        a workflow still in_progress has not passed; read the run

There is no live or agent path: this is the release-notes text and a test.


Generated by Claude Code

1.9.79's PHPStan job has been red since the merges at 15:46Z. #308 extended
ForbidNumericCastOfRequestParamRule to the pages and baselined the casts
already there. Three PRs merged beside it each added a cast that its baseline
does not count, and each PR passed on its own:

- Personal settings (#283) cast the same-IP fallback after checking it is a
  key of its choices. It now stores 1 for '1' and 0 for '0', the two keys the
  check admits.
- Setup > Offline Conversions (#293) cast a feed id after a regex test. It now
  reads it with PostedId::read().
- Setup > Traffic Sources (#271) cast the edited account's id to read its
  stored postbacks. The page's own ownership check compares the raw value in
  SQL, where MySQL reads '12abc' as 12. So a save from
  ?edit_ppc_account_id=12abc changed account 12 (one of the account's own, not
  the one named) and held that account's postbacks. Measured on a live
  instance: the old page saved the tampered edit onto account 1. The id is now
  read exactly, and anything else is refused in the page's words before
  anything is read or written.

The baseline counts are unchanged: each file now holds only the casts they
counted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VRoS2SViuxaucFaKWsFnLr
Every 1.9.79 PR added its lines at the end of the version's list, so every
merge of two of them conflicted there. Resolving by keeping both sides kept a
line both sides already had, and kept the older wording of a line one side
had reworded. Under Version 1.9.79, changelogs.txt held 124 entries and 81
changes:

- 35 entries were exact repeats. PayKickstart's IPN was listed four times;
  JVZoo, ClickBank and the LTV webhooks three times each.
- 8 were an older wording kept beside the newer. The newer wording is the one
  each change's merged PR head carries: a deleted account's stored keys verify
  nothing (PayKickstart, JVZoo, ClickBank), a second ClickBank refund is
  refused, Google's one-second rule in the offline files, P202_SERVER_STATE_DIR
  per install, and switching a user off revoking their remember-me keys.

Each change now has one entry, at the place its first copy held, in the
wording its PR ended with. Nothing outside 1.9.79 changes.
changelogs.json had no repeats.

ChangelogEntriesAreUniqueTest refuses a repeated entry in any version of
either file; every released version passes. For the version version.php
names, it also refuses two entries sharing 60% of their five-word runs. On
1.9.79 every reworded copy scored 0.76 to 0.97, and the closest two distinct
changes 0.18. That check does not cover released versions: 1.9.56 lists one
change as both an Update and a Fix (0.78), and it shipped that way. Planted
with the merged file it fails both tests; with only the eight reworded copies
it fails the wording test, naming all nine pairs.

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 28, 2026 16:26
@chatgpt-codex-connector

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 ⚠️ Failed 2026-10-28T16:26:16.792319Z
We couldn’t complete this review. Comment @codex review to try again.
8288e8b 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.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

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.

1.9.79's PHPStan job is red on its own tip: three request casts that its
merges left. #328 fixes them, and it is merged here so this branch's
PHPStan check runs green. When #328 merges into 1.9.79, the commit is
already there and this merge adds nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VRoS2SViuxaucFaKWsFnLr

Copy link
Copy Markdown
Owner Author

What is red here, and why it is not this PR's:


Generated by Claude Code

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