Skip to content

feat(libSceNpWebApi2): implement push event abort handles - #4188

Closed
MarcZX10 wants to merge 1 commit into
boykopovar:mainfrom
MarcZX10:codex/audit-push-event-abort
Closed

MarcZX10 wants to merge 1 commit into
boykopovar:mainfrom
MarcZX10:codex/audit-push-event-abort

Conversation

@MarcZX10

Copy link
Copy Markdown
Contributor

What

Carries the ready implementation from screamm’s feat/npwebapi2-push-event-abort branch, preserving the original commit author. Tracks push-event handles per library context, marks a handle aborted, returns ABORTED when creating a filter on an aborted handle, validates/deletes handles, and removes a context’s handles on termination. This replaces the existing throwing sceNpWebApi2PushEventAbortHandle export.

The signature, error values, and behavior are based on shadPS4’s PS4 implementation. Their PS5 accuracy is unverified; this limitation and the unmodelled timeouts are documented in TechnicalDebt. PR #3399 only added the export as a throwing stub. This does not overlap #4178’s trace-tag export.

Tested

  • Linux Release configure with GCC, BUILD_TESTING=ON, and ANYPS5_ENABLE_SPIRV_TOOLS=ON completed.
  • Built guest_np_web_api2_tests with Ninja (117/117 steps).
  • ctest --test-dir /tmp/AnyPS5-4174-build -R '^guest_np_web_api2$' --output-on-failure --timeout 60 passed (1/1).
  • python3 tools/check_conventions.py --base upstream/main --head HEAD passed.
  • git diff --check passed.

Checklist

  • Based on current main; no other open PR implements the same function
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation .md files or images added to the repository
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes (original commit co-authored by Claude; carried and validated with Codex)

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Progress report (1acfa7f → 6aa5280)

📈 System libraries: 86.39% (+0.03%, +1 implemented functions)

✅ 1 implemented
Library Name
libSceNpWebApi2 sceNpWebApi2PushEventAbortHandle

@blawesom

Copy link
Copy Markdown
Contributor

Rebase handoff — rebased onto current main, authorship unchanged.

One TechnicalDebt.md conflict: main had added three stub entries where this PR removes the sceNpWebApi2PushEventAbortHandle one it implements — kept main's other two entries (sceNpAuthGetAuthorizedAppCode, sceSaveDataUnknown_RvID8BVeg), dropped the implemented stub's entry.

Verified on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release, BUILD_TESTING=ON, AMD RX 9070 XT / RADV):

  • builds; tools/check_conventions.py --base origin/main passes
  • full suite: 957/957 passed

To pick it up:

git fetch https://github.com/blawesom/AnyPS5 rebase/4188
git checkout <your branch>
git merge --ff-only FETCH_HEAD

Head is c77726cd0.

@MarcZX10
MarcZX10 force-pushed the codex/audit-push-event-abort branch from eb3e693 to 801c263 Compare October 12, 2026 16:12
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@MarcZX10
MarcZX10 force-pushed the codex/audit-push-event-abort branch from 801c263 to ec7bb96 Compare October 12, 2026 18:36
@github-actions github-actions Bot added needs rebase Conflicts with main, rebase needed labels Oct 12, 2026
Planet Coaster (PPSA01736) imports sceNpWebApi2PushEventAbortHandle
(NID 1OLgvahaSco, confirmed with tools/nid_names.py and aerolib); the
import audit in boykopovar#3399 resolves the NID to the throwing stub. No title
execution was captured.

Push event handles are now kept per library context: CreateHandle
registers them, DeleteHandle and Terminate drop them, AbortHandle marks
one as aborted and CreateFilter on an aborted handle returns ABORTED.
An unknown context returns LIB_CONTEXT_NOT_FOUND and an unknown handle
HANDLE_NOT_FOUND. Semantics and codes follow shadPS4
e0a466753a1aacbc8db8253be685bf7ab4d9daae (np_web_api2_internal.cpp
abortPushEventHandle, np_web_api2_context.cpp, np_web_api2_push_event.cpp,
np_error.h), PS4 and unverified on the PS5.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@MarcZX10
MarcZX10 force-pushed the codex/audit-push-event-abort branch from ec7bb96 to 6aa5280 Compare October 12, 2026 18:48
@oneandonlydean oneandonlydean self-assigned this Oct 12, 2026
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@MarcZX10

Copy link
Copy Markdown
Contributor Author

Thanks for preparing the rebase and running the full Linux suite. I see the handoff at c77726cd0 with authorship preserved and 957/957 tests passing. The PR still points to 6aa5280, so I have not adopted that handoff yet; I will verify the branch and its diff before updating the PR.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@xXPBSXx

xXPBSXx commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Windows test of head 6aa5280bf merged onto current main (fa0cc752a, clean merge; built together with four other open PRs, so the run is for the combination): Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release, full build 0 errors, -j2.

guest_np_web_api2 (the test this PR changes) passes. The seven tests of the five PRs (guest_coredump_user_data, guest_np_web_api2, guest_execvp, guest_math, guest_wide_conversion, guest_wide_strings, guest_character) all pass.

Not checked: that the test fails without the change, Linux, a title run.

AI-assisted (Claude Code).

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Closing, as #4375 (the same commit): no title is seen calling sceNpWebApi2PushEventAbortHandle (#4174), and it also changes what CreateHandle, DeleteHandle and CreateFilter return for every title, from PS4 codes. Reopen with the log line where a title stops at it on main, without the removal of docs/dev/debt/libSceNpAuth.md and the sceSaveDataUnknown_RvID8BVeg entry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs needs rebase Conflicts with main, rebase needed prx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants