librelad afe0ef1c7e chore: drop duplicate doc files + fix wrong/stale comments
- docs: remove the docs/README.md index and docs/CONTRIBUTING.md pointer
  (duplicate filenames); the canonical contributing guide stays at
  docs/contributing/contributing.md. Clean tree, no name collisions.
- scripts/system/*: 6 helper headers + host_access.sh said the helpers
  install to /usr/local/sbin, but init.sh installs all of them to
  /usr/local/lib/libreportal/ (verified via initRootHelpers + the sudoers
  Cmnd_Alias). Corrected. The only remaining /usr/local/sbin is the legit
  PATH export in the task processor.
- frontend kernel: drop migration-era comments that are now false post-
  modularization (feature-registry 'passive/phase 0/unused', lifecycle
  'ctx.services lands with Phase 2', manifest 'scan generator lands') —
  describe current behaviour instead.

Comment-only edits to scripts/system/* — no footprint_version bump (no
behavioural change; bumping would force needless reinstalls).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-31 01:05:16 +01:00

98 lines
2.3 KiB
JSON

{
"version": 1,
"note": "Hand-committed page manifest — the authoritative source of pages (feature-registry tries /api/features/list first, then falls back here; that live scan endpoint is deferred — see docs/architecture/webui-architecture.md). 'module' is the feature's self-registering index.js; the kernel loads these from here so they no longer need <script> tags in index.html. 'handler' names the LibrePortalSPAClean method kept as the fallback during the strangler migration; 'navId' is the topbar element id for active-state highlighting.",
"features": [
{
"id": "dashboard",
"routes": [
"/",
"/dashboard"
],
"module": "/components/dashboard/index.js",
"handler": "handleDashboard",
"navId": "nav-dashboard",
"nav": {
"label": "Dashboard",
"order": 10
},
"order": 10
},
{
"id": "apps",
"routes": [
"/apps",
"/apps*",
"/app",
"/app*"
],
"module": "/components/apps/index.js",
"handler": "handleApps",
"navId": "nav-app-center",
"nav": {
"label": "App Center",
"order": 20
},
"order": 20
},
{
"id": "admin",
"routes": [
"/admin",
"/admin*"
],
"module": "/components/admin/index.js",
"handler": "handleAdmin",
"navId": "nav-config",
"nav": {
"label": "Admin",
"order": 40
},
"order": 40
},
{
"id": "tasks",
"routes": [
"/tasks",
"/tasks*"
],
"module": "/components/tasks/index.js",
"handler": "handleTasks",
"navId": "nav-tasks",
"nav": {
"label": "Tasks",
"order": 60
},
"order": 60
},
{
"id": "updater",
"routes": [
"/updater",
"/updater*"
],
"module": "/components/updater/index.js",
"navId": "nav-updater",
"nav": {
"label": "Updates",
"order": 30
},
"order": 30
},
{
"id": "backup",
"routes": [
"/backup",
"/backup*"
],
"module": "/components/backup/index.js",
"handler": "handleBackup",
"navId": "nav-backup",
"nav": {
"label": "Backups",
"order": 50
},
"order": 50
}
]
}