Commit Graph
760 Commits
Author SHA1 Message Date
NikoandClaude Opus 5.5 0f7cd5b7ac fix(conventions): skip library test fixtures in the export checks
The duplicate-export and silent-stub rules treated every APS5_VABI
definition under core/libs/prx/ as a library export, including mocks
and callbacks in a library's tests/ directory. Those files are built
only into separate test executables, never into the library, so they
are not exports. PR #3533 failed CI because a sceKernelGetProcessTime
mock in libSceAudioOut/tests was reported as a duplicate of libkernel's
export. An sce* fixture with a stub-shaped body was also reported as a
silent stub, and a real export that shares a name with a fixture in
another library's tests/ was reported as a duplicate.

Skip files under a tests directory on both sides of the check, with the
same test code() already uses for title-specific and progress.py uses
for its function counts.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 17:39:20 +02:00
Adrià 842766d39c Merge pull request #4606 from Nixitov/feat/import-audit-stop
feat(tools): report each converted title's current stop in import_audit
2026-10-13 17:26:59 +02:00
Adrià 39890031e3 Merge pull request #4591 from MiniRML/fix/oracle-input-rows
fix(oracle): validate input words before tool lookup
2026-10-13 17:25:30 +02:00
Adrià a56c905df6 Merge pull request #4589 from MiniRML/fix/tools-cut-helper-accounting
fix(tools): exclude cut helpers from NID accounting
2026-10-13 17:24:55 +02:00
Adrià 5a76fd716f Merge pull request #4575 from MiniRML/fix/progress-raw-string-literals
fix(progress): ignore C++ raw-string contents
2026-10-13 17:19:23 +02:00
Adrià 242bae7445 Merge pull request #4597 from MiniRML/fix/release-destination-preflight
fix(release): preflight asset destination types
2026-10-13 17:07:51 +02:00
Nixitov a3a3f3a9ce feat(tools): report each converted title's current stop in import_audit
The stop is the first unresolved import in the registry order, the line the loader fails on. Print it per registry and add it to the --json result.
2026-10-13 16:50:51 +02:00
Adrià b8683834f3 Merge pull request #4596 from MiniRML/fix/oracle-target-override
fix(oracle): honor the current target override
2026-10-13 16:48:06 +02:00
Adrià 2f5c3a4bf5 Merge pull request #4559 from MarcZX100/codex/import-audit-sectionless-modules
fix(tools): audit sectionless guest modules
2026-10-13 16:43:53 +02:00
Adrià c02df171c8 Merge pull request #4545 from thuanquang/test/tools-python39-hard-links
test(tools): create hard links with os.link for Python 3.9
2026-10-13 16:30:44 +02:00
MiniRML a8a78ded96 fix(progress): load the tokenizer beside the source file 2026-10-13 16:27:51 +02:00
MiniRML f37eecfdac fix(progress): ignore C++ raw-string contents 2026-10-13 16:27:51 +02:00
Dextroid17 851b66bb2a feat(tools): report whether a branch is in step with main 2026-10-13 09:40:20 -04:00
Adrià 5b08344585 Merge pull request #3907 from GalaxyGamingFR/fix/progress-read-encoding
fix(progress): read cmake and shader tables as utf-8
2026-10-13 15:27:02 +02:00
Adrià e22a77eba2 Merge pull request #3901 from GalaxyGamingFR/fix/conventions-agent-file-case
fix(conventions): match agent instruction files case-insensitively
2026-10-13 15:26:01 +02:00
Adrià 4008e68e39 Merge pull request #3919 from GalaxyGamingFR/fix/stubgen-stdout-newlines
fix(stubgen): write LF to stdout on Windows
2026-10-13 15:09:35 +02:00
GalaxyGamingFRandClaude Fable 5.1 1c32fd93c8 fix(progress): read cmake and shader tables as utf-8
scan_library and collect_shaders read CMakeLists.txt, the ISA table and the opcode header with the locale codec. On Windows that is cp1252, so a UTF-8 file containing U+2010 or U+2192 raised UnicodeDecodeError. These reads now pass encoding="utf-8" and errors="ignore", and a subprocess test with an ASCII default codec covers it.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 14:48:50 +02:00
GalaxyGamingFRandClaude Fable 5.1 b12d6f5394 fix(conventions): match agent instruction files case-insensitively
The repository check compared the file name to a lower-case set, so a
file added as CLAUDE.md, Agents.md or GEMINI.md passed the check while
claude.md was rejected. Compare the lower-cased name so every spelling
of an agent instruction file is reported.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 14:48:43 +02:00
boykopovar 0f2683cb7d Merge pull request #5135 from boykopovar/feat/web-relinker-ui
feat(ci): add relinker wasm build ci
2026-10-13 15:31:28 +03:00
boykopovar dece64c6e8 ci(pages): build and deploy wasm converter 2026-10-13 15:26:04 +03:00
boykopovar 8485298e46 Merge pull request #5114 from boykopovar/feat/web-relinker-ui
feat(pages): add web relinker ui
2026-10-13 15:16:10 +03:00
Dean ce8f7eeb3f Merge pull request #4344 from Roojool/contrib/round2-c19
fix(tools): use configured Ninja for test registration audit
2026-10-14 00:46:35 +13:00
Adrià e57a793958 Merge pull request #3911 from GalaxyGamingFR/fix/pr-overlap-own-branch
fix(tools): drop the branch's own pull request in pr_overlap --branch
2026-10-13 13:39:14 +02:00
Adrià e99a1b0aa9 Merge pull request #3903 from GalaxyGamingFR/fix/conventions-body-bom
fix(conventions): read the PR body file with utf-8-sig
2026-10-13 13:30:34 +02:00
boykopovar 57801875db refactor(web): load zip.js from pinned cdn version 2026-10-13 14:02:46 +03:00
boykopovar 78df1e3244 feat(web): stream zip conversion and release library packaging 2026-10-13 13:48:23 +03:00
Adrià FranchandClaude ff6c1ea5f3 fix(stubgen): reconfigure stdout only when it supports it
Callers that replace sys.stdout (test_stubgen redirect_stdout) have no reconfigure().

Co-Authored-By: Claude <[email protected]>
2026-10-13 12:07:13 +02:00
GalaxyGamingFRandClaude Fable 5.1 f6d5404f45 fix(stubgen): write LF to stdout on Windows
When --out was not given, stubgen wrote the generated code and debt lines to
sys.stdout, which translates LF to CRLF on Windows, so redirecting stdout
produced CRLF files. stdout is now reconfigured to utf-8 with LF newlines,
matching the --out path. A subprocess test checks the bytes on stdout.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 12:06:59 +02:00
GalaxyGamingFRandClaude Fable 5.1 0817454371 fix(tools): drop the branch's own pull request in pr_overlap --branch
The --branch mode removed the branch's own open pull request only when its
head equalled the local branch exactly. Checking commits before pushing
left the branch ahead of its pull request, so the tool reported the user's
own pull request as overlapping. The filter is now a function that also
drops any pull request whose head is an ancestor of the branch.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 12:00:41 +02:00
GalaxyGamingFRandClaude Fable 5.1 d15cc41299 fix(conventions): read the PR body file with utf-8-sig
A pull request body saved with a UTF-8 byte order mark starts with
U+FEFF before "### What", so the first heading is not recognised and the
checker reports the What section as missing. Decode the body file with
utf-8-sig so the mark is dropped and the sections are found.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 11:48:36 +02:00
GalaxyGamingFRandClaude Fable 5.1 02dad4429f fix(progress): recognise non-static and noexcept stub helpers
The stub helper pattern required a leading static and a plain signature,
so exports calling helpers in anonymous namespaces, or helpers with
noexcept, a trailing return type or a pointer next to the name, counted
as done. The pattern now anchors at line start, makes static optional,
skips APS5_VABI exports and control keywords, and accepts those suffixes.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 11:42:32 +02:00
LeandroLP23andClaude Opus 5.5 91593bb966 feat(tools): plot counts in the progress history chart
The chart repeated the percentages the badges and the progress map
already show. Because declaring and implementing functions usually
land together, the library line stayed near flat while the project
grew. It now plots implemented and declared library functions and
decoded shader instructions as counts; the tooltips keep the
percentage.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:25:57 +02:00
Rujul Talekar 290675799e test(tools): drop the Ninja-on-PATH requirement from the registration suite
Remove test_built_uses_configured_ninja_outside_path per review: it copied
whatever ninja was on PATH and asserted one existed, so the suite failed on
exactly the setup this PR fixes. The rewritten tests already verify the
configured CMAKE_MAKE_PROGRAM is the program that runs; the suite now passes
with and without Ninja on PATH on Windows and Linux.
2026-10-13 14:51:04 +05:30
ideabsassistenza 8a51ff3154 fix(tests): ignore bracket comments in registration audit 2026-10-13 10:07:08 +02:00
Simon 149aea5061 fix(stubgen): clean read-only staged files after failure 2026-10-13 09:45:59 +02:00
ideabsassistenza 6fb0727c48 fix(debt): preserve leading entries during conflict resolution 2026-10-13 09:34:22 +02:00
Ondra97 74e239408b fix(tools): reject mixed high refresh skip diagnostics 2026-10-13 09:25:12 +02:00
Ondra97 7ebad36341 fix(tools): accept skips on displays without 120 Hz 2026-10-13 09:19:28 +02:00
Ondra97 6706e44d95 fix(conventions): ignore C++ raw literal contents 2026-10-13 09:15:31 +02:00
Zurisen 7822535b49 fix(progress): extract history archives on Python without tarfile filters
progress_history passed filter="data" to TarFile.extractall, which only
exists from Python 3.12 and the 3.11.4/3.10.12 security releases. On
Python 3.10.11 every measured commit raised TypeError, so
progress_history failed. Pass the filter when tarfile has data_filter
and extract without it otherwise; the archive is git archive output of
the repository's own commits.
2026-10-13 08:50:40 +02:00
JJenkx c465e00150 fix(tools): preserve controller command access 2026-10-13 02:44:47 -04:00
MarcZX100 c7aca86c61 fix(tools): use the shared merge base for overlap checks 2026-10-13 06:01:10 +00:00
Ondra97 66edc7463f fix(tools): audit stubs from shared library sources 2026-10-13 07:59:10 +02:00
MarcZX100 2a91815210 fix(tools): parse paginated overlap API responses 2026-10-13 05:52:46 +00:00
AlxcBTWandClaude Opus 5.5 52c71b837c feat(agc): add APS5_TRACE_SUMMARY_EVERY for summary lines of a long session
APS5_TRACE_SUMMARY_EVERY=<seconds> appends one line to aps5-summary.jsonl
every <seconds> seconds, at a present, from the per-scope totals the trace
threads already keep. No event buffer is allocated unless a window switch is
set as well; then the window records its full trace on top of the intervals
and its own summary line holds only the time inside the window. Each line has
the fields of the window summary line for its interval plus interval_start_s
and interval_end_s.

tools/trace_digest.py prints a summary file with interval lines as one row
per interval with a text sparkline of the frame p99 and the GPU busy time.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 00:40:52 +02:00
ArjenS-LA 819c475266 fix(tools): match explicit trace summaries to their capture 2026-10-12 15:18:16 -07:00
NikoandClaude Opus 5.5 7f39ac991b fix(conventions): keep #### subsections inside the pull request template sections
SECTION matched every heading that starts with ###, so a #### line opened
a new section named "# ...". A Tested section written as #### Linux and
#### Windows subsections was reported as missing or empty, and an
unchecked item after a #### line in Checklist was not reported.

A level-4 heading belongs to the level-3 section above it (CommonMark
4.2), and silent_stub_debt() already keeps deeper headings inside their
section. SECTION now matches only headings with exactly three #.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 23:14:49 +02:00
Adrià 0428328b79 Merge pull request #4581 from AlxcBTW/feat/trace-digest
feat(tools): digest a performance trace for an issue or a pull request
2026-10-12 22:13:37 +02:00
Ondra97 85cf9c3ac7 fix(tools): preserve technical debt section moves 2026-10-12 21:37:58 +02:00
AlxcBTWandClaude Opus 5.5 ca219d1b67 feat(tools): digest a performance trace for an issue or a pull request
tools/trace_digest.py reads an APS5_TRACE_FRAMES capture (aps5-trace-*.json.gz)
and prints a markdown report of a few KB, or the same data as JSON: the
summary line from aps5-summary.jsonl, the slowest frames with their largest
slices, the busy, wait and untraced time of each thread, the largest slices
per frame, the longest waits, and with --stacks the hottest frames of an
APS5_SAMPLE_WORKER collapsed-stack file. Python standard library only; a
unittest checks every section on a small synthetic trace.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 21:33:18 +02:00