# Story: Nav rename — "Sources" becomes "RAG", "Git sources" becomes "Sources" **Phase:** `48_nav_rename_sources` · **E2E:** `tests/e2e/test_nav_rename_sources.py` ## Narrative As **the admin (owner)**, the two admin-only nav items are confusing: "Sources" (the document catalog) and "Git sources" (the source manager) read like the same thing. I want the navbar to say **"RAG"** for the document catalog page and **"Sources"** for the source manager page, so the labels say what each page *is*: RAG = the indexed knowledge base you chat against; Sources = where that knowledge comes from. - **Given** I am signed in as admin, on any of the six pages (chat, sources, git-sources, tuning, document viewer, login) - **When** I look at the primary nav - **Then** the catalog link (`#nav-sources`, → `/sources.html`) is labeled **"RAG"** and the manager link (`#nav-git-sources`, → `/git-sources.html`) is labeled **"Sources"** — same ids, same hrefs, same order, same admin-only ship-hidden/reveal contract as before. ## Acceptance criteria 1. All six pages (`frontend/index.html`, `sources.html`, `git-sources.html`, `tuning.html`, `document.html`, `login.html`) carry the swapped label text on `#nav-sources` ("RAG") and `#nav-git-sources` ("Sources"). Element ids, `href`s, `hidden` defaults, `is-active`/`aria-current` markers, and the nav order (Chat, RAG, Sources, Tuning) are unchanged — this is a label-only rename, and `header.js` logic (reveal by id) is untouched. 2. Anonymous visitors still see neither link (ship-hidden contract unchanged); the admin sees both, as before. 3. Existing test assertions on the old label text are updated (`test_git_sources_admin.py` nav-link text, `test_mobile_hamburger_nav.py` `LINK_TEXTS`); assertions that are NOT about these two nav items stay untouched (the document viewer's "Sources" back button, the "Sync sources" button label, the `/git-sources.html` page-`