Skip to content

Current Focus can never populate: TELOS.md 'Current State' section shadows CURRENT.md, making the fallback dead code #2039

Description

@jacobo-ortiz

What breaks

The /work tab's Current Focus (and the Life view's mood/energy banner) can never populate, on any install — including a stock one.

handleLifeWork and handleLifeHome in LIFEOS/PULSE/Observability/observability.ts resolve the focus text via:

const current = telosSectionOrFile(parseTelosUnified(), "current state", "CURRENT.md")
const fields = parseBoldFields(current)

telosSectionOrFile returns the unified TELOS.md ## Current State section whenever it exists, and only falls back to USER/TELOS/CURRENT.md when it doesn't. But:

  • The stock install/USER/TELOS/TELOS.md template ships a ## Current State (where you are now) section, so the section always exists.
  • That section holds dimension bullets (- Health: …, - Finances: …) — no **Focus:** / **Mood:** / **Energy:** bold fields, in the template or in any reasonable user fill.

Consequence: parseBoldFields(current).focus is always empty, the CURRENT.md fallback is dead code, and /work renders "No current focus set in TELOS/CURRENT.md" even when CURRENT.md carries a full **Focus:** block.

Measured on 7.40.4

  • GET /api/life/workcurrentFocus: "" with a fully populated CURRENT.md.
  • Same result on a stock template by construction (section always wins, section never has the fields).

Suggested fix

Prefer CURRENT.md when it actually carries a **Focus:** field; otherwise keep current behavior:

const currentMd = readMd(join(TELOS_DIR, "CURRENT.md"))
const current = parseBoldFields(currentMd).focus
  ? currentMd
  : telosSectionOrFile(parseTelosUnified(), "current state", "CURRENT.md")

In handleLifeHome, keep reading domains from the TELOS.md section (the dimension bullets do live there) and only source the bold fields + "Next likely actions" from CURRENT.md — the two sources answer different questions.

Related nit

parseNumberedList(content, heading) splits on the first literal occurrence of the heading text, so any prose mention of "Next likely actions" before the actual ## heading silently empties the list.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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