Skip to content

Migrate legacy manual anchors to route-aware compiled heading links #1074

Closed as not planned

Description

@cemililik

While addressing F-PR1073-A2-01 in #1073, the two new JSON-reference links were changed to page-qualified SPA routes with compiled heading IDs. The guide router now preserves the page and scroll target on reload.

Other manual pages still contain legacy pure anchors. For example, the configuration reference links to #model. Following that native link replaces #/reference/configuration with #model; reloading then loses the page route. The existing self-contained-link guard skips pure anchors, and Markdown heading IDs can also differ from the compiled IDs, particularly in Turkish.

This is a pre-existing cleanup beyond the two links changed by #1073.

Acceptance criteria:

  • Inventory pure same-page links in both manual languages and migrate them to page-qualified SPA routes with the actual compiled heading IDs.
  • Validate compiled heading targets, not only Markdown source slugs or backing page files.
  • Exercise link clicks and reloads against the shipped router; preserve the selected page and heading in both languages.
  • Keep the EN/TR structure aligned and avoid introducing a growing exception list in the link checks.

Activity

  1. added
    bugSomething isn't working
    documentationImprovements or additions to documentation
    needs-triageNot triaged yet: every new issue starts with it; only a maintainer removes it
    duplicateThis issue or pull request already exists
    severity: lowMinor defect, inaccuracy or rough edge
    wave: 4Roadmap wave 4: low / info / watch, when touching the module
    on Nov 3, 2026
  2. cemililik commented on Nov 3, 2026

    @cemililik
    CollaboratorAuthor

    Duplicate of #670 (CR-A17a-011). The remaining navigation work also overlaps #683 (CR-A18-050) and the link-validation portion of #671 (CR-A17a-040).

    Triage verified against development at 66f2b34, after #1073 merged. The defect is real, but these existing open findings already track the work, so this follow-up is being closed as a duplicate rather than creating a second implementation queue.

    Evidence:

    • Compiling all 134 EN/TR manual pages with the actual manual renderer found 40 bare-anchor link occurrences across 24 pages: 20 links in 12 pages per language. Eight Turkish link occurrences have no matching compiled heading ID. These counts describe link occurrences, not unique destination headings.
    • The English configuration reference still uses #model. The shipped router parses #/reference/configuration as a page route but returns null for #model; after native anchor navigation, reload therefore selects the default page. Verified by executing the actual parseHash function in Node, not by a new browser session.
    • The Turkish audit page still links to #rapor-içeriği, while the compiled target is rapor-icerigi — the exact example already recorded in CR-A17a-011.
    • check_usermanual_self_contained.py --strict still passes all 134 pages because the guard skips bare anchors.

    Disposition: bug; site + dev-tooling; severity low; wave 4. This affects documentation navigation, with reopening the page and using its generated table of contents as a workaround. No training, CLI-result, or audit-integrity failure is established here. No prerequisite dependency is recorded.

    Remaining scope for the existing findings:

    The original report and acceptance criteria are preserved. This closure records duplicate tracking, not a claim that the 40 legacy links are fixed. The existing findings remain open on the ForgeLM Project Plan.

  3. removed
    needs-triageNot triaged yet: every new issue starts with it; only a maintainer removes it
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: dev-toolingCode area: dev-toolingarea: siteCode area: sitebugSomething isn't workingdocumentationImprovements or additions to documentationduplicateThis issue or pull request already existsseverity: lowMinor defect, inaccuracy or rough edgewave: 4Roadmap wave 4: low / info / watch, when touching the module

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions