Skip to content

v7.1.1 Pulse: nav-manifest links /projects and /security, but neither page exists — both 404 (APIs ship and return data; only the page components are missing) #1483

Description

@vanvonlj

Summary

nav-manifest.ts (new in the 7.x palette nav) advertises 26 destinations. Two of them have no page, so clicking them lands on a bare Not found:

Nav entry src/app/… page Pulse API Result
PROJECTS/projects ❌ missing modules/projects.ts/api/projects 200 404
Security/security ❌ missing /api/security 200 404

The backends are fine and already return real data. Only the page components are missing. Every other nav href resolves (audit below), so this is two specific gaps, not a systemic routing problem.

Reproduce

Fresh 7.1.1 install, Pulse running:

curl -s -o /dev/null -w '%{http_code}\n' http://localhost:31337/projects   # 404
curl -s -o /dev/null -w '%{http_code}\n' http://localhost:31337/security   # 404

# …while the APIs behind them are healthy:
curl -s http://localhost:31337/api/projects
# {"count":0,"source":"USER/PROJECTS.md","generatedAt":"…","projects":[]}
curl -s http://localhost:31337/api/security
# {"model":"minimal-v1","description":"Three-layer defense: constitutional rule …"}

Or just click PROJECTS in the top nav.

Evidence

LifeOS/install/LIFEOS/PULSE/Observability/src/lib/palette/nav-manifest.ts @ 03a969d:

48:  { href: "/projects", label: "PROJECTS", icon: FolderGit2,  keywords: ["repos", "sites"] },
80:  { href: "/security", label: "Security", icon: ShieldCheck, keywords: ["monitoring"] },

Neither route exists:

$ git ls-tree --name-only upstream/main:LifeOS/install/LIFEOS/PULSE/Observability/src/app
agents  air  amber  arbol  assets  assistant  books  bunker  business  conduit
content  docs  finances  globals.css  growth  health  hooks  hypotheses  knowledge
layout.tsx  life  local  memory  page.tsx  performance  providers.tsx  skills
system  telos  usage  work
#            ^ no `projects`, no `security`

Full nav audit (24/26 OK)

Script to re-run — worth keeping as a guard, since a nav entry pointing at a non-existent route fails silently at build time (static export happily emits the link):

APP=LifeOS/install/LIFEOS/PULSE/Observability/src/app
NAV=LifeOS/install/LIFEOS/PULSE/Observability/src/lib/palette/nav-manifest.ts
grep -oE 'href: "[^"]+"' "$NAV" | sed 's/href: "//;s/"//' | sort -u | while read -r h; do
  slug="${h#/}"
  [ -z "$slug" ] && continue
  [ -f "$APP/$slug/page.tsx" ] || echo "BROKEN: $h  (no $APP/$slug/page.tsx)"
done

Output on upstream/main @ 03a969d:

BROKEN: /projects  (no …/src/app/projects/page.tsx)
BROKEN: /security  (no …/src/app/security/page.tsx)

All 24 others resolve, including the nested ones (/memory/graph, /knowledge/graph, /system/graph, /telos/item).

Suggested fix

Either direction is a small change — the data layer is already done:

  1. Ship the two pages. /api/projects already returns { count, source, generatedAt, projects[] } (parsed from USER/PROJECTS.md, with badges, hrefs and open-session flags), and /api/security returns the security model. Both are render-ready; they just need a page.tsx each, in the shape of the existing /work or /skills pages.
  2. Or drop the two entries from nav-manifest.ts until the pages land — one line each, and it stops advertising a dead end.

Option 1 seems right for /projects given modules/projects.ts is a complete, tested parser that currently has no consumer in the UI at all.

Environment

  • LifeOS 7.1.1 (upstream/main @ 03a969d)
  • Linux (Ubuntu), Bun 1.3.14, Pulse on :31337, Next.js static export
  • Reproduced against a clean 7.1.1 payload, and confirmed in-browser (bare Not found page)

Not a fork-local issue: verified directly against danielmiessler/LifeOS@03a969d — both nav-manifest.ts entries and both missing pages are upstream as shipped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions