Repository navigation
Conversation
MarcZX10
left a comment
There was a problem hiding this comment.
The implementation scope and focused regression coverage are clear. One repository-required overlap follow-up remains: the PR itself reports an adjacent conflict with open #11644 in docs/dev/debt/libSceNpCppWebApi.md, and an exact git merge-tree --write-tree of the current heads confirms that this is the only conflict. CONTRIBUTING.md requires the authors to agree which overlapping PR goes first and record that order with Depends on.
Please coordinate the order with #11644's author and update the checklist line to match (for example, Depends on: #11644 if #11644 is to land first). The body currently says Depends on: none, so the recorded prerequisite does not reflect the known conflict. I found no code correctness issue in the reviewed hunks. This request is for the required merge-order coordination only.
|
Independent test follow-up on exact head |
Progress report (4f41f4c → 596c792)📈 System libraries: 26.67% (+0.03%, +10 implemented functions) ✅ 10 implemented
⚪ 10 behaviourally empty (constant return or throw)
Changed libraries (implemented exports)
|
MarcZX10
left a comment
There was a problem hiding this comment.
Approved at exact head ae0d01f4be. My earlier changes-requested point is resolved: the checklist now names Depends on: #11644, and the authors have agreed that #12447 lands first in that stack. I reviewed the ten state-specific exports and sentinel-preserving response tests, independently syntax-compiled the exact test source and ran it against the PR Export.cpp (the temporary handler only covered unrelated no-patch exports); it passed. Hosted Windows, conventions, intake, eligibility, labels and report checks are green; platform build jobs are workflow-skipped. No console run is claimed, and the #11644 dependency remains open.
|
Windows run of this head (
AI-assisted: yes (Claude Code). |
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Merged current Tested on the merge ( |
|
Hi @simnJS — heads-up on landing order. Your dependency #11644 merged today, so this branch is now For the order we've agreed on the NpCppWebApi side (#10925 merged → #11221 → this → #14122 → #14136 → #14273), could you rebase onto current Thanks! |
|
@akkadbakkad89 Rebased onto current |
c736b32 to
6a62214
Compare
…-started transactions as the module does
6a62214 to
596c792
Compare
✅ AMD GPU test: passedPR head
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (3, not counted against this PR)Passed on retry (1, failed in the parallel run, passed when re-run with a 360 s timeout; not counted against this PR)Validation IDs already present on main (8 IDs in 469 tests)Skipped (7)ReproduceAutomated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
What
Ten libSceNpCppWebApi exports on never-started transactions threw on
main. They now give the answers the library's own module code gives for that state. A transaction never starts here:startand the API calls fail, so the two words its constructor zeroes stay null.TransactionBase<...>::abortandgetIdof the fourUserProfile::V1transactions (GetFriendsResponse,GetBlockingUsersResponse,GetBasicPresencesResponse,GetPublicProfilesResponse) return0x80553508and 0. This is theTransactionBasecode fix(libSceNpCppWebApi): answer finish, abort and getId for never-started transactions as the module does #11235 read in the module bundled with PPSA21564, for sixabortand fivegetIdinstantiations thatmainanswers that way;mainalso answersfinishof these four transactions with0x80553508.getIdis declaredstd::int64_t, as fix(libSceNpCppWebApi): answer finish, abort and getId for never-started transactions as the module does #11235 declares the others. These four instantiations were not read in a module.Transaction<...>::getResponseof theInGameCatalog::V5Vector<IntrusivePtr<Container>>andTitleCloudStorage::V1GetMultiDataStatusesResponseBodytransactions return0x80553508and leave the response untouched. BunnyFl read these two instantiations in the module bundled with ASTRO BOT (PPSA21567): they return0x80553508when the transaction's word at +0 or +8 is null (comment on #10832). The constructors of these two transactions zero those words onmain(fix(libSceNpCppWebApi): answer finish, abort and getId for never-started transactions as the module does #11235), and only a successfulstartsets them.What stays throwing, from the same comment:
startof these two transactions andDataApi::getMultiDataStatusesByUser. Past theLibContextchecks, their answer comes fromlibSceNpWebApi2and the service, which nothing measured shows. #10832 was closed for giving themNOT_SIGNED_INwithout a source; this PR does not touch them.Debt: the UserProfile entry no longer lists
abort/getIdas throwing, and a new entry records what is not read (the four UserProfile instantiations) and what still throws (the twostarts andgetMultiDataStatusesByUser).tools/progress.py: libSceNpCppWebApi 484/751 → 494/751.Tested
Windows 11 Pro 10.0.26200, WinLibs GCC 15.2.0 r7 (x86_64-ucrt-posix-seh), Release,
BUILD_TESTING=ON, onmain750cf6cf48; the branch merges cleanly into the currentmainf3eb573e6f, whose newer commits do not touch libSceNpCppWebApi. No title run.guest_np_cpp_web_api_signed_out(extended) and the library's other three tests,guest_np_cpp_web_api_offline,guest_np_cpp_web_api_intrusive_ptrandguest_np_cpp_web_api_string: pass, 20 runs each on this head (ctest --repeat until-fail:10twice, with a rebuild in between).aborts returning0x80553508and the fourgetIds returning 0, next to the instantiations already checked;getResponseon each of the two transactions after construction andfinish:0x80553508, a 0x18-byte response filled with a sentinel left untouched, and the transaction's 0x10 zeroed bytes and the bytes after them unchanged.main's throwing body (same declaration, so the test compiles) makesguest_np_cpp_web_api_signed_outfail with<that symbol> not implemented(exit0xc0000409): 10 of 10, one rebuild each.public_headersandpublic_headers_compile_*: 65/65 pass.build.ymlin full mode: run 40718036566, build and every test pass.conventions_ci_gaterejects that fork-only workflow file, andprecise_waitalso fails on the fork'smain.python tools/check_conventions.py --base origin/mainwith this title and body: all checks pass.python tools/pr_overlap.py --branch feat/npcppwebapi-never-started-userprofile: only feat(libSceNpCppWebApi): track the remaining SessionManager V1 parameter lifecycles as the module does #11644, indocs/dev/debt/libSceNpCppWebApi.md. It rewrites the line just above the UserProfile entry this PR cuts, so git reports an adjacent conflict; keeping both edits resolves it. This PR goes after feat(libSceNpCppWebApi): track the remaining SessionManager V1 parameter lifecycles as the module does #11644 and will mergemainonce it lands. None of the seven open libSceNpCppWebApi PRs touches these ten functions.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)