diff --git a/docs/PLAN.md b/docs/PLAN.md
index f28c3ad..b5fb4c9 100644
--- a/docs/PLAN.md
+++ b/docs/PLAN.md
@@ -35,3 +35,4 @@ Updated: 2026-04-02
19. Added service-removal confirmation with linked-user warnings, backend cascade deletion for removed services, and migration that strips persisted legacy `admin` services from stored state.
20. Made `npm run dev` start both the Vite client and Express backend, added a Vite API proxy for local development, and restored `system` as the default panel theme so the login screen follows OS appearance.
21. Re-separated the Settings tab into distinct panel-settings and services cards so panel preferences no longer appear inside the Services section.
+22. Restored editable proxy endpoint in panel settings so copied proxy URLs and displayed user endpoints can be corrected from the UI.
diff --git a/docs/PROJECT_INDEX.md b/docs/PROJECT_INDEX.md
index 7587813..da5055c 100644
--- a/docs/PROJECT_INDEX.md
+++ b/docs/PROJECT_INDEX.md
@@ -24,7 +24,7 @@ Updated: 2026-04-02
- `src/main.tsx`: application bootstrap
- `src/App.tsx`: authenticated panel shell with API-backed login, `sessionStorage` token persistence, localized labels, early theme application, and protected panel mutations
-- `src/SystemTab.tsx`: Settings tab with separate panel-settings and services cards, unified service type editing, remove confirmation, and generated config preview
+- `src/SystemTab.tsx`: Settings tab with separate panel-settings and services cards, editable proxy endpoint, unified service type editing, remove confirmation, and generated config preview
- `src/App.test.tsx`: login-gate, preferences persistence, modal interaction, pause/resume, delete-confirm, and settings-save UI tests
- `src/app.css`: full panel styling
- `src/data/mockDashboard.ts`: default panel state and frontend fallback snapshot
diff --git a/src/App.test.tsx b/src/App.test.tsx
index ceca9d9..77089ca 100644
--- a/src/App.test.tsx
+++ b/src/App.test.tsx
@@ -142,7 +142,7 @@ describe('App login gate', () => {
expect(screen.queryByRole('dialog', { name: /delete user/i })).not.toBeInTheDocument();
});
- it('uses a combined service type field in settings and applies saved ports to the local fallback state', async () => {
+ it('uses a combined service type field in settings and applies saved proxy endpoint values to the local fallback state', async () => {
const user = userEvent.setup();
render(