Young's Mind
06 Implementation

HANDOFF — Nova: docs.youngle.au nav (decoded root cause + full evidence)

Young says you take over the frontend nav lane. This note has everything I've proven so you don't re-walk it.

HANDOFF — Nova: docs.youngle.au nav (decoded root cause + full evidence)

Young says you take over the frontend nav lane. This note has everything I've proven so you don't re-walk it.

Young's symptoms (all one root cause)

  • Mobile drawer: shows Docs subtree, but groups don't expand on tap; no Pulse at all
  • Desktop aside on /pulse/* shows the DOCS tree
  • "menu doesn't match, only shows Docs even when on Pulse"

ROOT CAUSE (decoded from the served devalue payload 2026-10-16 ~22:00)

The provided navigation in app/app.vue (my merge of two queryCollectionNavigation calls) delivers only the Docs tree in the served payload. Root array [5,9,19,585] decodes to Kanban /docs/kanban, SolOS V3 /docs/solosv3 (+ full children: 00 Scope, 01 Research (19 studies), 02 Architecture, 03 Decisions (41), 04 Snapshot, 05 Operations, 06 Implementation (41), Manual, VAULT-INDEX) — all correct — and a 4th root ref (585) that resolves to nothing: the Pulse tree is absent.

Corruption signature found: the Pulse landing page (stem pulse/pulse/index.md — note the DOUBLED pulse/) appears as a PAGE object, not as a nav node; and one orphan fragment {"title": "Pages in this section (46):", "children": -1} exists where the Pulse nav node should be. children: -1 = dangling ref.

So: queryCollectionNavigation('pulse') returns a malformed/empty nav for the pulse collection, while queryCollectionNavigation('docs') is perfect. The docs collection is the built-in-named one (docs); pulse is my custom one.

Prime suspect (verify first, ~10 min)

Nuxt Content v3 multi-collection quirk: navigation: true in a section .navigation.yml (my forge writes title: Pulse\nnavigation: true into content/Pulse/.navigation.yml) may only be honored for the DEFAULT collection, or the navigation: true flag on the second collection's root breaks its tree construction (children resolve to -1).

Secondary suspects:

  • The pulse collection's prefix: '/pulse' + source Pulse/** — the landing stem pulse/pulse/index.md shows the content-key vs route-prefix double-apply; maybe the collection root should be content/Pulse with include: '**' and NO prefix, letting file paths carry.
  • queryCollectionNavigation('pulse') may need to be awaited inside useAsyncData differently when called outside a page context.

Quick probes I'd run (all on prod /home/ubuntu/docs-site)

  1. curl 127.0.0.1:8091/pulse | grep -c '"children":13' — docs tree present (expect ≥1)
  2. In the payload, search "\\u002Fpulse","\\u002Fpulse\u002Fbrief" adjacency — absent = pulse nav never built
  3. Remove navigation: true from content/Pulse/.navigation.yml (keep title), rebuild, re-check payload for the Pulse node with real children
  4. If still broken: drop the merge; instead provide navigation = ONLY the docs tree, and hand sub sections via two SEPARATE layouts (docs.vue + a pulse.vue layout mapping) — Docus supports per-layout asides cleanly
  5. Nuclear but clean: make Pulse a subfolder of the docs collection (content/docs/pulse/** → route /docs/pulse/**) — everything then lives in ONE collection and all existing nav logic works unchanged; Young's "Docs + Pulse" UX preserved (top tabs still possible via appconfig)

State that's DONE (don't redo)

  • Content mirror: both sections serve 200, deep pages included; forge v4 (archive+junk excluded) installed; 6e3eacb
  • app.config.ts restored (sub: aside + brand) — committed b924023
  • Green brain favicon + Young's Mind title live
  • Investing/Properties removed everywhere (404)

Ops lane (mine — call anytime)

  • Content updates: LAB /tmp/build_site.py → /tmp/site_build → tar → prod content/ → bash sync-docus.sh (~5-8 min build)
  • Code changes: edit prod repo → commit → push (origin youngframeworks/solos-docs)
  • Rebuild command: ssh -i ~/.ssh/tam_server_key ubuntu@161.33.71.67 'cd /home/ubuntu/docs-site && bash sync-docus.sh'

Contact: via group (my A2A port 8443 reachable from LAB at 127.0.0.1:18443; hermes gateway sometimes flaky — group is fastest).

Copyright © 2026