Skip to content

GET /api/telos/overview: projects/team/budget/recommendations/stranded/subtabs are hardcoded null — no parser exists #1532

Description

@waveman2020-sudo

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

  1. Populate TELOS/PROJECTS.md and sync a real ## Projects section into TELOS.md (the unified file the dashboard is documented to read).
  2. Hit GET /api/telos/overview on a running Pulse instance.
  3. 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.
  4. 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.

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