Repository navigation
adopt(ntfy): ready to send: account sync undoes recent changes (reserved topic loses its messages; last unsubscribe never syncs) - #157
Open
MeharPro wants to merge 1 commit into
Conversation
Report, harness, results, patch and draft issue/PR text for binwiederhier/ntfy (nothing sent). Two bugs in AccountApi.sync(), both reproduced without GenClass: a sync applies an account fetched before a local change and undoes it (a reserved subscribe loses its messages in natural order, 6 of 6 loads on localhost), and an empty subscription list is never applied (unsubscribing from the last topic leaves it in other browsers, 3 of 3). The patch is against ntfy 8ed8684. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fqwfq2dLpSQotWNHzwrQcF
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status: ready to send (after the by-hand items in
docs/adoption/hunts/ntfy-issue.md, "Before sending").What
I ran a race hunt on the ntfy web app (binwiederhier/ntfy
mainat8ed8684, after v2.37.1), retargeted per the brief to the account-sync paths. It found two bugs inweb/src/app/AccountApi.jssync(), both reproduced without GenClass:reserve-reload.mjs, 3 of 3).omitemptymeetsif (account.subscriptions), so unsubscribing from your last topic leaves it in other browsers, even after a reload: 3 of 3 runs, and 0 of 3 when a second topic is kept.The fix is in one file (
AccountApi.js+17 −3): a counter of local account changes, a skipped sync whenever the counter moved during its fetch, and?? []for the missing list. The patch adds two unit tests and three Playwright checks. Nothing was sent to ntfy.Files
docs/adoption/hunts/ntfy.md: the report (setup, how the app was driven, the table of all six surfaces, the finding in causal order fromgenclass_explain, root cause with lines, fix, tests, fixed variant, GenClass problems, time, reproducing)docs/adoption/hunts/ntfy.patch:git format-patchagainst8ed8684, fix and tests in one commit; verified withgit apply --checkdocs/adoption/hunts/ntfy-issue.md: the issue in ntfy's bug template, the PR text, the disclosure paragraphs and the "before sending" checklistdocs/adoption/hunts/ntfy/:explore.mjs(the harness),last-subscription.mjs,reserve-reload.mjs,unsubscribe-delay.mjs,results/(small summaries, 296 KB in all),README.mddocs/adoption/hunts/README.md: the new rowTo send (a person, from a personal account)
ntfy's
docs/ai-policy.mdwelcomes AI-assisted PRs only if a human reviewed, understood and tested them, and asks for issue and PR text that is written or edited by the human ("Keep it concise"). There is no CLA, DCO or PR template.ntfy-issue.md:git amthe patch, set yourself as the author, and runnpm test,npm run lint,npm run format:checkandmake web-e2e.🪲 bug).mainwithFixes #<issue>and your rewritten text, keeping the AI-assistance paragraph true.?? []part can be split out on its own;Measured (all commands are in the report)
subscribe(6 seeded runs per session, 300/600/900 ms)reserveunsubscriberenameprefs,prefs-twicereserve6/6 (messages lost), the other five 0/6False reports: explore flagged a RACE in all 36 reordered settings loads, and none of them was real.
Problems with GenClass itself (report §6)
data-genclass-ignoredoesn't remove page text: the snapshot usesbody.innerText(src/agent/index.ts:354).~hedgekeys for hedges GenClass never sent.schedule.ts:212names any request whose causal parent has the same signature as a hedge, which shifted keys in one load.There were no tool errors.
Notes for the reviewer
docs/adoption/. No runtime, MCP, test, dependency or model-visible change, so the template's checks (typecheck, unit tests, API/CHANGELOG) don't apply and weren't run.Prefs. Explore can't reorder the server's processing, so it's noted in the report, not claimed.claude/awesome-hypatia-274vxqinstead ofadopt/ntfy.Generated by Claude Code