[GH-ISSUE #7544] [Bug] DOL guide's PowerPC cross-reference opens a missing repository page on GitHub #4487

Closed
opened 2026-10-31 00:50:12 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @coygeek on GitHub (Oct 27, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/7544

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Documentation

Observed behavior

A reader viewing the GameCube DOL guide on GitHub cannot follow its “PowerPC ELF analysis through Ghidra” cross-reference. I requested the rendered guide at the source revision below, extracted that anchor's actual destination, and requested it with Python's HTTP client. GitHub returned HTTP 404. Requesting the intended PowerPC guide at the same revision returned HTTP 200.

The VitePress production build behaves differently: I built an unchanged copy of the baseline documentation and observed that the same cross-reference points to an emitted PowerPC HTML page. The failure is the GitHub reader path.

Reproduction

  1. From the baseline checkout, run this standard-library-only reproduction. It requests the immutable GitHub revision, reads GitHub's rendered link rather than predicting its rewrite, and compares the linked page with the intended guide:

    python3 -I - <<'PY'
    import urllib.request, urllib.error, re
    root = 'https://github.com/morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/'
    with urllib.request.urlopen(root + 'docs/ghidra-dol.md') as response:
        html = response.read().decode()
    href = re.search(r'<a\b[^>]*href="([^"]+)"[^>]*>PowerPC ELF analysis through Ghidra</a>', html).group(1)
    print('Rendered href:', href)
    for url in ['https://github.com' + href, root + 'docs/ghidra-ppc.md']:
        try:
            with urllib.request.urlopen(url) as response:
                status = response.status
        except urllib.error.HTTPError as error:
            status = error.code
        print(status, url)
    PY
    
  2. Observe HTTP 404 for the link GitHub rendered and HTTP 200 for the intended guide. The same result was obtained in two independent HTTP passes during verification. No binary fixture or analysis provider is required.

Expected behavior

Following the PowerPC cross-reference should open the PowerPC guide on GitHub and on the documentation site. The contributor guide explicitly requires relative links between guides so the same Markdown works in both contexts. The specific contract and source locations are listed in the evidence below.

Impact and scope

This blocks one advertised documentation navigation action for GitHub readers. The intended guide remains available: I verified a direct request to its correct URL returns HTTP 200. That direct URL is a practical workaround. No binary-analysis failure or data loss was observed.

Impact is P2 under triage/v1: a bounded behavior defect with a demonstrated workaround. The production VitePress build emitted a working destination for this cross-reference; no deployed website was checked. Other guide links were outside this verification's scope.

REA version

Exact node scripts/rea.mjs --version stdout:

6.8.0

Source revision: 65f1c447344a423fa2785847dbcea1e9a9e2454a.

Runtime and platform

Node.js v24.22.1; macOS 27.0.1; darwin arm64. The documentation build used the baseline's locked VitePress 1.6.4. No Ghidra, Hopper, or IDA process was launched.

Target and artifact context

GitHub-rendered documentation at the stated source revision and a production VitePress build of an unchanged copy of that revision's documentation. No binary target.

Interface

Other

Earliest failure stage

Unknown

Relevant output or evidence

The reproduction above returned:

Rendered href: /morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/ghidra-ppc
404 https://github.com/morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/ghidra-ppc
200 https://github.com/morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/docs/ghidra-ppc.md

Source checks at the baseline:

  • docs/ghidra-dol.md:121-122 contains the cross-reference with destination /ghidra-ppc.
  • git ls-files docs/ghidra-ppc.md ghidra-ppc returned only docs/ghidra-ppc.md.
  • CONTRIBUTING.md:289-291 requires guide links to be relative to support GitHub and the website, reserving full GitHub URLs for repository files outside docs/.
  • docs/.vitepress/config.ts:8 sets the site base to /rea/.

For the website comparison, I copied the baseline documentation unchanged to an isolated directory, reused the baseline dependencies, and ran node node_modules/vitepress/bin/vitepress.js build docs from that physical directory. The build exited 0. Parsing the generated ghidra-dol.html found this anchor:

label: PowerPC ELF analysis through Ghidra
href: /rea/ghidra-ppc.html
corresponding ghidra-ppc.html exists: true

The source DOL guide, PowerPC guide, and VitePress config had identical SHA-256 hashes in the checkout and scratch copy. This verifies the baseline website output, not a proposed fix or a live deployment.

Analysis or suspected cause

Source-derived cause: the cross-reference uses a root-leading, extensionless website destination. GitHub resolves it at the repository root of the selected revision; the guide actually lives under docs/ with a .md extension. VitePress instead supplies the configured site base and HTML route, so its successful build does not establish that the GitHub link works. Using the relative guide destination ghidra-ppc.md is a proposed correction; I did not edit the source or build a repaired version.

Additional context

I searched open and closed issues, all PR states, issue comments, and relevant inline PR review comments. Closed #2679 concerns three README analysis-table links and their translations; its closure explicitly covers those cells. This report concerns a separate DOL-to-PowerPC cross-reference, not a recurrence of those README links. Open #7484 changes provider diagnostics and does not edit the DOL guide. The relevant documentation work in #4108, #6383, and #2791 also does not edit this guide or report this link failure. Merged #6240 introduced the guide. No matching report or existing correction was found.

Originally created by @coygeek on GitHub (Oct 27, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/7544 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Documentation ### Observed behavior A reader viewing the GameCube DOL guide on GitHub cannot follow its “PowerPC ELF analysis through Ghidra” cross-reference. I requested the rendered guide at the source revision below, extracted that anchor's actual destination, and requested it with Python's HTTP client. GitHub returned HTTP 404. Requesting the intended PowerPC guide at the same revision returned HTTP 200. The VitePress production build behaves differently: I built an unchanged copy of the baseline documentation and observed that the same cross-reference points to an emitted PowerPC HTML page. The failure is the GitHub reader path. ### Reproduction 1. From the baseline checkout, run this standard-library-only reproduction. It requests the immutable GitHub revision, reads GitHub's rendered link rather than predicting its rewrite, and compares the linked page with the intended guide: ```bash python3 -I - <<'PY' import urllib.request, urllib.error, re root = 'https://github.com/morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/' with urllib.request.urlopen(root + 'docs/ghidra-dol.md') as response: html = response.read().decode() href = re.search(r'<a\b[^>]*href="([^"]+)"[^>]*>PowerPC ELF analysis through Ghidra</a>', html).group(1) print('Rendered href:', href) for url in ['https://github.com' + href, root + 'docs/ghidra-ppc.md']: try: with urllib.request.urlopen(url) as response: status = response.status except urllib.error.HTTPError as error: status = error.code print(status, url) PY ``` 2. Observe HTTP 404 for the link GitHub rendered and HTTP 200 for the intended guide. The same result was obtained in two independent HTTP passes during verification. No binary fixture or analysis provider is required. ### Expected behavior Following the PowerPC cross-reference should open the PowerPC guide on GitHub and on the documentation site. The contributor guide explicitly requires relative links between guides so the same Markdown works in both contexts. The specific contract and source locations are listed in the evidence below. ### Impact and scope This blocks one advertised documentation navigation action for GitHub readers. The intended guide remains available: I verified a direct request to its correct URL returns HTTP 200. That direct URL is a practical workaround. No binary-analysis failure or data loss was observed. Impact is P2 under triage/v1: a bounded behavior defect with a demonstrated workaround. The production VitePress build emitted a working destination for this cross-reference; no deployed website was checked. Other guide links were outside this verification's scope. ### REA version Exact `node scripts/rea.mjs --version` stdout: ```text 6.8.0 ``` Source revision: `65f1c447344a423fa2785847dbcea1e9a9e2454a`. ### Runtime and platform Node.js v24.22.1; macOS 27.0.1; darwin arm64. The documentation build used the baseline's locked VitePress 1.6.4. No Ghidra, Hopper, or IDA process was launched. ### Target and artifact context GitHub-rendered documentation at the stated source revision and a production VitePress build of an unchanged copy of that revision's documentation. No binary target. ### Interface Other ### Earliest failure stage Unknown ### Relevant output or evidence The reproduction above returned: ```text Rendered href: /morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/ghidra-ppc 404 https://github.com/morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/ghidra-ppc 200 https://github.com/morluto/rea/blob/65f1c447344a423fa2785847dbcea1e9a9e2454a/docs/ghidra-ppc.md ``` Source checks at the baseline: - `docs/ghidra-dol.md:121-122` contains the cross-reference with destination `/ghidra-ppc`. - `git ls-files docs/ghidra-ppc.md ghidra-ppc` returned only `docs/ghidra-ppc.md`. - `CONTRIBUTING.md:289-291` requires guide links to be relative to support GitHub and the website, reserving full GitHub URLs for repository files outside `docs/`. - `docs/.vitepress/config.ts:8` sets the site base to `/rea/`. For the website comparison, I copied the baseline documentation unchanged to an isolated directory, reused the baseline dependencies, and ran `node node_modules/vitepress/bin/vitepress.js build docs` from that physical directory. The build exited 0. Parsing the generated `ghidra-dol.html` found this anchor: ```text label: PowerPC ELF analysis through Ghidra href: /rea/ghidra-ppc.html corresponding ghidra-ppc.html exists: true ``` The source DOL guide, PowerPC guide, and VitePress config had identical SHA-256 hashes in the checkout and scratch copy. This verifies the baseline website output, not a proposed fix or a live deployment. ### Analysis or suspected cause Source-derived cause: the cross-reference uses a root-leading, extensionless website destination. GitHub resolves it at the repository root of the selected revision; the guide actually lives under `docs/` with a `.md` extension. VitePress instead supplies the configured site base and HTML route, so its successful build does not establish that the GitHub link works. Using the relative guide destination `ghidra-ppc.md` is a proposed correction; I did not edit the source or build a repaired version. ### Additional context I searched open and closed issues, all PR states, issue comments, and relevant inline PR review comments. Closed [#2679](https://github.com/morluto/rea/issues/2679) concerns three README analysis-table links and their translations; its closure explicitly covers those cells. This report concerns a separate DOL-to-PowerPC cross-reference, not a recurrence of those README links. Open [#7484](https://github.com/morluto/rea/pull/7484) changes provider diagnostics and does not edit the DOL guide. The relevant documentation work in [#4108](https://github.com/morluto/rea/pull/4108), [#6383](https://github.com/morluto/rea/pull/6383), and [#2791](https://github.com/morluto/rea/pull/2791) also does not edit this guide or report this link failure. Merged [#6240](https://github.com/morluto/rea/pull/6240) introduced the guide. No matching report or existing correction was found.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4487
No description provided.