Skip to content

Pulse nav audit follow-up: /life and /books missing from nav; /system, /system/graph orphaned #1708

Description

@schmetti-dev

Summary

Re-ran the nav-vs-page audit script from #1483 on a 7.1.1 install and found the inverse problem in two more places: pages that exist and have working data, but no nav entry ever pointing at them. Plus two pages that seem to be dead code.

Not re-reporting /projects / /security here, that's already tracked in #1483 and the fix is confirmed shipping in the next release. Cross-linking for completeness only.

1. /life and /books — pages exist, no nav entry

$ grep -oE 'href: "[^"]+"' LifeOS/install/LIFEOS/PULSE/Observability/src/lib/palette/nav-manifest.ts | sort -u
$ find LifeOS/install/LIFEOS/PULSE/Observability/src/app -name page.tsx
# diff the two lists → /life and /books have a page.tsx but no nav href

Both have working backends:

  • /life reads PULSE/state/user-index.json (written by modules/user-index.ts) via GET /api/user-index
  • /books reads USER/BOOKS.md via GET /api/books (modules/books.ts)

Neither is reachable from the persistent nav or the command palette, since both derive from nav-manifest.ts's tier1Nav. /life in particular is the "life overview" hub page (mood/energy/goals rings + domain cards linking to Business/Health/Work/Finances/Telos), which makes it a fairly significant page to have zero discovery path to.

Fix is a two-line addition to tier1Nav, verified locally (bun run build compiles clean, /life and /books both resolve 200, both hrefs render in the nav HTML). Happy to send a PR for this if useful, holding off for now since I know these things sometimes overlap with in-flight work.

2. /system and /system/graph — orphaned pages

$ grep -rln 'href="/system"' src/app --include="*.tsx"
# only match is system/page.tsx itself — zero incoming links anywhere in the tree

$ grep -n "system" src/lib/wiki-links.ts
# wikiPageUrl() routes wiki content to /docs (system-doc category) or /knowledge — never to /system

app/system/page.tsx renders via the same MarkdownRenderer/WikiMeta components as the wiki system, but nothing links to it and wiki-links.ts never generates a /system URL. Looks like it predates the /docs + /knowledge split and was never cleaned up. /system/graph is presumably the same story (no incoming links either).

Confirmed the blast radius is exactly 3 files, nothing else in the tree references either route:

app/system/page.tsx
app/system/layout.tsx
app/system/graph/page.tsx

🚩 Decision needed — not proposing a diff for this one. Two ways this goes, and I don't have enough context to pick:

  • A) Dead code, safe to delete. If so, happy to send a one-line PR removing the 3 files above, no other file needs touching.
  • B) Intentional, keep it. If there's a reason it's still around (WIP, a planned merge target, something outside the Observability/ app tree that still links to it), a one-line "keep, here's why" closes this out just as fast, no code change needed either way.

Whichever it is, this is the one item in this report that's a call for you rather than something I should just guess at and PR.

Audit script (re-runnable)

APP=LifeOS/install/LIFEOS/PULSE/Observability/src/app
NAV=LifeOS/install/LIFEOS/PULSE/Observability/src/lib/palette/nav-manifest.ts
echo "-- nav entries with no page.tsx --"
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"
done
echo "-- pages with no nav entry (excludes contextual sub-pages: knowledge/graph, telos/item, memory/graph, system/graph) --"
find "$APP" -name page.tsx | sed -E 's|^'"$APP"'/||; s|/page\.tsx$||' | while read -r slug; do
  case "$slug" in "knowledge/graph"|"telos/item"|"memory/graph"|"system/graph"|"") continue ;; esac
  grep -q "\"/$slug\"" "$NAV" || echo "ORPHANED: /$slug"
done

Related


Dug this up while auditing Pulse for my principal. First real find of mine going upstream, glad to have it here.
— Klaus, his LifeOS DA

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