Bug
observability.ts's telos-overview handler (~line 3282-3299) returns a fixed object where several fields are literal null with no parser feeding them, while sibling fields (problems, missions, goals, challenges, strategies) are genuinely parsed from TELOS files just above in the same function:
return Response.json({
...
problems, // real parser output
missions: missionsFull, // real parser output
goals, // real parser output
challenges, // real parser output
strategies, // real parser output
projects: null, // <-- no parser, always null
team: null, // <-- no parser, always null
budget: null, // <-- no parser, always null
recommendations: null, // <-- no parser, always null
stranded: null, // <-- no parser, always null
subtabs: null, // <-- no parser, always null
...
})
The dashboard UI renders a "Projects" tab (positioned between Strategies and Team in the nav) that scroll-anchors to a Projects section header — but the section is permanently empty because the API can never supply data for it, regardless of what's written in TELOS.md's ## Projects section or the split TELOS/PROJECTS.md file.
Repro
- Populate
TELOS/PROJECTS.md and sync a real ## Projects section into TELOS.md (the unified file the dashboard is documented to read).
- Hit
GET /api/telos/overview on a running Pulse instance.
- Observe
"projects": null in the response regardless of step 1 — confirmed on a fresh v7.1.1 install with real, non-empty Projects content in both files.
- Same for
team, budget, recommendations, stranded, subtabs — none have a backing parser anywhere in the file.
Impact
Any user who completes the TELOS interview's Projects section (or otherwise adds real project content) gets a permanently blank Projects tab with no indication it's a missing feature rather than empty content — the dashboard gives no signal that this tab simply isn't wired up yet, unlike the isPersonalized empty-state handling that correctly distinguishes "no content yet" from "feature not implemented" for the parsed fields.
Suggested fix
Either: (a) implement real parsers for projects/team/budget/recommendations/stranded/subtabs mirroring the existing problems/missions/challenges/strategies pattern, reading from TELOS/PROJECTS.md and whatever their respective split-file sources should be; or (b) if these tabs are intentionally not-yet-implemented, have the dashboard render an explicit "not yet built" state for them instead of an indistinguishable-from-empty blank section, and drop them from the nav until real.
Environment
ThinkPad, Ubuntu, LifeOS 7.1.1.
Bug
observability.ts's telos-overview handler (~line 3282-3299) returns a fixed object where several fields are literalnullwith no parser feeding them, while sibling fields (problems,missions,goals,challenges,strategies) are genuinely parsed from TELOS files just above in the same function:The dashboard UI renders a "Projects" tab (positioned between Strategies and Team in the nav) that scroll-anchors to a Projects section header — but the section is permanently empty because the API can never supply data for it, regardless of what's written in
TELOS.md's## Projectssection or the splitTELOS/PROJECTS.mdfile.Repro
TELOS/PROJECTS.mdand sync a real## Projectssection intoTELOS.md(the unified file the dashboard is documented to read).GET /api/telos/overviewon a running Pulse instance."projects": nullin the response regardless of step 1 — confirmed on a fresh v7.1.1 install with real, non-empty Projects content in both files.team,budget,recommendations,stranded,subtabs— none have a backing parser anywhere in the file.Impact
Any user who completes the TELOS interview's Projects section (or otherwise adds real project content) gets a permanently blank Projects tab with no indication it's a missing feature rather than empty content — the dashboard gives no signal that this tab simply isn't wired up yet, unlike the
isPersonalizedempty-state handling that correctly distinguishes "no content yet" from "feature not implemented" for the parsed fields.Suggested fix
Either: (a) implement real parsers for
projects/team/budget/recommendations/stranded/subtabsmirroring the existingproblems/missions/challenges/strategiespattern, reading fromTELOS/PROJECTS.mdand whatever their respective split-file sources should be; or (b) if these tabs are intentionally not-yet-implemented, have the dashboard render an explicit "not yet built" state for them instead of an indistinguishable-from-empty blank section, and drop them from the nav until real.Environment
ThinkPad, Ubuntu, LifeOS 7.1.1.