Commit Graph
760 Commits
Author SHA1 Message Date
GalaxyGamingFRandClaude Opus 5.5 c177bde316 fix(trace_digest): print non-ASCII names on a legacy console
On Windows, piped or redirected output uses the ANSI code page, so a
trace whose thread or slice names are not in cp1252 (a Japanese thread
name, for example) made the markdown digest stop with
UnicodeEncodeError after the work was done. stdout is now set to UTF-8
when the tool runs from the command line, as check_conventions.py does.
The --json output was not affected because json.dumps escapes non-ASCII.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:52:39 -07:00
ShinMalphur 2507b84f16 test(tools): cover GPU mutex wait accounting 2026-10-14 16:22:30 +06:30
ShinMalphur 97bb32d516 fix(tools): classify GPU mutex trace slices as waits 2026-10-14 16:21:35 +06:30
GalaxyGamingFRandClaude Opus 5.5 25527f97a0 fix(stubgen): report named stubs by __func__
CONTRIBUTING.md says unimplemented exports call
NotImplemented_nid_no_patch(__func__), and 362 calls in core/ do. A stub
generated for a NID with a known name passed the NID string instead,
so its log line showed tNn5WBkta60 rather than sceAmprCommandBufferNop
and the output had to be edited by hand. Named stubs now use __func__;
stubs with an unknown name keep the NID, the only identifier they have.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:50:53 -07:00
GalaxyGamingFRandClaude Opus 5.5 efde691a45 fix(conventions): accept Depends on answered as a list
The pr-template check only accepted "Depends on: #N" or "none" on the same
line, so a checklist answering it as a bulleted list failed CI although
pr_overlap reads exactly that form (test_pr_overlap_dependencies covers
"Depends on:
- #2
- #3"). Allow one list marker before the first answer;
an empty answer is still reported.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:32:58 -07:00
Alexej Szpevák 739fcd7862 perf(tools): read checker file contents through one git cat-file process
Check read every technical debt file and every changed file with its
own git show, so each run started one process per file: 99 git
processes for a typical pull request, 311 for a 118-file range, and the
count grew with docs/dev/debt. Process start-up dominates on Windows.

Read the blobs the checks use in one git cat-file --batch process,
keyed by the object ids ls-tree already returns, and batch the files
duplicates() inspects the same way. Paths that are not cached still go
through git show, so failures are unchanged.
2026-10-14 11:11:38 +02:00
GalaxyGamingFRandClaude Opus 5.5 a30f700630 fix(tools): accept skip reasons on their own line in check_skips
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 01:44:11 -07:00
GalaxyGamingFRandClaude Opus 5.5 813a7f2691 fix(tools): strip .prx suffix from stubgen module name
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 01:43:14 -07:00
Muhammad Wasif Ali WasifandClaude Opus 5.5 c53c349095 fix(tools): count tests registered per configuration as run
Ninja Multi-Config writes one add_test per configuration and a final NOT_AVAILABLE one for the same name. The audit kept only the last, so every test executable was reported as never run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 13:37:17 +05:00
Ondra97 be9fbd5371 fix(release): include the enabled Tracy runtime 2026-10-14 10:12:29 +02:00
GalaxyGamingFRandClaude Opus 5.5 05357cbbf9 fix(progress): ignore member and qualified calls to stub wrappers
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 01:10:10 -07:00
Ondra97 f6b9938d73 fix(tools): retain summaries for decompressed traces 2026-10-14 09:58:57 +02:00
boykopovar a48c00660e refactor(ci): refactor release notes prepare py 2026-10-14 10:52:14 +03:00
GalaxyGamingFRandClaude Opus 5.5 e052811006 fix(conventions): ignore code blocks when checking doc links
The doc-link check matched C++ lambdas such as `[](int a)` inside fenced
code blocks and inline code, reporting bogus missing targets. Links now
require non-empty link text, and links() strips fenced blocks and inline
code spans first. docs() also skips added lines that sit inside a fence
of the full file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 00:49:22 -07:00
boykopovar 6d35b92ba6 feat(ci): truncate long release commits list 2026-10-14 10:48:45 +03:00
Ondra97 fd3c679604 fix(tools): retain source commit when Git status fails 2026-10-14 09:44:33 +02:00
Rujul Talekar 39317d5b31 fix(tools): decode Ninja targets using its build-file encoding 2026-10-14 10:50:32 +05:30
Evgeniy Kazarin 7ff22e76dc fix(tools): audit ELF modules with out-of-file section tables
Use program headers when the section table starts at or beyond EOF. Keep rejecting tables that start inside the file but are truncated.

Cover imports, exports, full module audits, and extended section counts.
2026-10-14 07:59:12 +03:00
Dean 486420f91a Merge pull request #4950 from MarcZX100/codex/pr-overlap-compatible-merge-base
fix(tools): use the shared merge base for overlap checks
2026-10-14 15:54:50 +13:00
Dean 60ad9ad47c Merge pull request #4951 from Ondra97/codex/fix-shared-library-import-audit
fix(tools): audit stubs from shared library sources
2026-10-14 15:54:35 +13:00
Dean a8cb091eba Merge pull request #4955 from Ondra97/codex/fix-high-refresh-skip-policy
fix(tools): accept skips on displays without 120 Hz
2026-10-14 15:54:20 +13:00
Dean 39bf2b9e9d Merge pull request #4986 from Ondra97/codex/fix-conventions-raw-literals
fix(conventions): ignore C++ raw literal contents
2026-10-14 15:54:04 +13:00
Dean 622fb542d2 Merge pull request #4764 from nikowolf123/fix/conventions-test-fixtures
fix(conventions): skip library test fixtures in the export checks
2026-10-14 15:37:56 +13:00
Dean cdea950b7e Merge pull request #4825 from StefanBuc/prepare/elf-import-audit-20261012
fix(tools): validate empty ELF dynamic symbol table bounds
2026-10-14 15:37:26 +13:00
Nixitov b9acf34801 fix(tools): do not report weak imports as a title's current stop
A weak import is optional: the entry stub leaves it unresolved and the loader sees null, so the title runs. The relinker now records the symbol binding in the call registry and import_audit skips weak imports when computing the current stop. regie5 (PPSA99520) weak-links sceLncUtilLaunchApp and was reported as stopping there while it runs past it.
2026-10-14 04:27:55 +02:00
thuanquangandClaude Opus 5.5 10fbc5b835 test(tools): simulate cp1252 and write LF fixtures on Python 3.9
On Python 3.9, Popen passes encoding=None, not "locale", to
TextIOWrapper, so simulated_cp1252 changed nothing and the encoding
regressions could not catch a missing encoding="utf-8". The stdout
newline test used Path.write_text(newline=...), which needs 3.10.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 09:08:20 +07:00
lorkydey 0c62cd4a66 feat(hw-oracle): export results with run settings as JSON 2026-10-14 04:06:05 +02:00
Dean a98d42d08c Merge pull request #4799 from ArjenS-LA/fix/trace-summary-selection
fix(tools): match explicit trace summaries to their capture
2026-10-14 14:51:27 +13:00
Dean 5a81f6085b Merge pull request #4765 from nikowolf123/fix/conventions-template-subsections
fix(conventions): keep #### subsections inside the pull request template sections
2026-10-14 14:41:00 +13:00
Dean 1633843382 Merge pull request #4998 from ideabsassistenza/fix/debt-resolve-leading-entries
fix(debt): preserve leading entries during conflict resolution
2026-10-14 14:39:06 +13:00
Dean cd90ca50be Merge pull request #4712 from Ondra97/codex/fix-debt-section-moves
fix(tools): preserve technical debt section moves
2026-10-14 14:13:58 +13:00
ryyReid 2a01e9eb18 feat(tools): unwrap decrypted SELF containers into clean ELF
The relinker reads a plain ELF executable and skips SELF containers with a
warning, so an eboot.bin or a *.prx taken from a title cannot be relinked
before it is unwrapped, and the repository has no tool for that.

The inner ELF program headers of a container carry stale offsets: a SELF
inserts its own metadata blocks between the segments, so the data sits at the
offsets of the SELF segment-record table at file offset 0x40. The segments are
also packed without honouring p_align, while ELF requires p_offset % p_align
== p_vaddr % p_align, which the relinker enforces on guest modules. The tool
places the segments from the records, falls back to the vaddr to file mapping
of the containing PT_LOAD for segments the table does not cover, copies every
region to an offset satisfying the alignment, and refuses a container whose
load segments all look encrypted.
2026-10-13 19:23:51 -05:00
JJenkx 78f661e6e6 Merge commit '30f961266ade83b41d5c9de7dec1393e7fcecfb7' into fix/pad-command-file-access 2026-10-13 18:59:59 -04:00
Zinebyte 3b2601daa3 fix(tools): ignore non-module sidecars in import audit 2026-10-13 18:24:56 -04:00
ideabsassistenza 5e4d5e64ca fix(tools): compare trace slice boundaries at nanosecond precision 2026-10-13 21:52:37 +02:00
Prophet069 dbbe54eebe feat(tools): fail import audits on strict provider mismatches 2026-10-13 21:33:51 +02:00
lorkydey d45fee9b69 fix(import-audit): preserve JSON reports when writing fails 2026-10-13 21:20:45 +02:00
Stefan Bucataru 89a8ec58b1 fix(tools): validate empty ELF dynamic symbol table bounds 2026-10-13 21:07:36 +02:00
Ondra97 c7800dd96b fix(tools): reject colliding web library archive paths 2026-10-13 20:40:46 +02:00
MiniRML ef1f2b8c77 fix(conventions): accept first-line BOM shebangs 2026-10-13 11:19:59 -07:00
MiniRML e070c72345 fix(tools): preserve external URLs during debt migration 2026-10-13 11:15:35 -07:00
pushkarreddyy bf1aadea66 fix(conventions): reject modern agent instruction files
Expand AGENT_FILES in tools/check_conventions.py to include instruction and configuration files for modern AI coding assistants (.windsurfrules, windsurf.md, chatgpt.md, .chatgptrules, .aider.conf.yml). Add test coverage in tools/tests/test_check_conventions_agent_files.py.
2026-10-13 23:39:04 +05:30
MiniRML 209ebcf035 fix(web): recognize nested roots with ZIP directory entries 2026-10-13 11:08:12 -07:00
MiniRML 6c90102e50 fix(progress): follow chains of local stub helpers 2026-10-13 10:59:58 -07:00
thuanquangandClaude Opus 5.5 ae28529f35 fix(conventions): pair each type change with both of its patch headers
git diff prints a file whose type changes (a file replaced by a link or
a submodule) as a deletion and a creation, two diff --git headers for
one --name-status entry, so the checker ran out of paths and stopped
with StopIteration instead of checking the pull request.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 00:56:08 +07:00
Ondra97 1666ab4bd0 fix(tools): reject unsupported ELF versions in import audits 2026-10-13 18:58:10 +02:00
Ondra97 b309086b1a fix(tools): keep ELF hash metadata inside load mappings 2026-10-13 18:58:04 +02:00
Ondra97 d327a7e23d fix(tools): stop ELF dependency audits at DT_NULL 2026-10-13 18:57:32 +02:00
Ondra97 27e5a6d75d fix(tools): reject ambiguous guest modules in import audit 2026-10-13 18:12:46 +02:00
Adrià 8b20708599 Merge pull request #4579 from MiniRML/fix/release-configured-windows-runtime
fix(release): find the configured Windows runtime
2026-10-13 17:48:48 +02:00