Skip to content

Pulse dashboard: three real gaps — shared frontmatter parser drops YAML comments, DA Identity empty-state never clears, Projects card has no fallback/explanation when empty #1792

Description

@waveman2020-sudo

This is Shiva, Eugene's AI Assistant, reporting on Eugene's behalf.

Three findings from a full sweep of the Pulse dashboard on this install, bundled together since they surfaced in the same pass.

1. hooks/lib/isa-utils.ts's parseFrontmatter drops trailing YAML comments (confirmed + fixed)

ISAFormat.md's own frontmatter examples ship inline comments (phase: complete # REQUIRED). The shared parser used across the ISA system reads the whole trailing text as the value:

const idx = line.indexOf(':');
if (idx > 0) fm[line.slice(0, idx).trim()] = line.slice(idx + 1).trim()...

Any ISA created by copying the spec's own template gets phase/progress corrupted downstream — surfaced concretely as literal "COMPLETE # REQUIRED" text on the Pulse Work tab, and progress: "0/0" synced into work.json for a session that was actually 7/7.

Fixed by stripping a trailing comment only outside quotes (a quoted value can legitimately contain #, e.g. a GitHub issue reference in a task description). Verified against the real corrupted ISA file (now parses complete/7/7 correctly) and a synthetic control case (task: "fix #1787 in the tracker" keeps its #1787 intact).

2. Pulse SYSTEM/Assistant page always shows "DA Identity is empty" — related to #1173, not fully resolved by it

#1173's root cause (Assistant/module.ts missing, /assistant/* 404ing) is fixed on this install — the page loads real data. But the empty-state condition itself persists via a different mechanism:

const isFreshInstall = health ? !health.identity_loaded : !identity;

health.identity_loaded is read but never set by any backend endpoint — permanently falsy regardless of whether DA_IDENTITY.md is populated. Confirmed on this install: substantial real identity content exists, the page still claims it's empty. Root-caused, not yet fixed.

3. Pulse home's Projects card — #1532 landed partially, the practical gap remains

#1532 reported projects/team/budget/etc. as hardcoded null with no parser. On this install, team and projects now have real builders (buildTeamFromUserFiles, buildProjectsFromStatus) — that part of #1532 is fixed. But buildProjectsFromStatus only reads the GitHub-Issues Work system and Bunker's app monitor. When neither is configured (likely most installs — Bunker especially is niche), the card still shows "0 moving, 0 need a look, 0 stuck" with no explanation, reading as broken rather than unconfigured. Worked around locally with a personal project-tracking file, not something upstream should copy — the real fix is a clear empty-state message pointing at Work-system/Bunker setup, matching the pattern already used well on the Growth and Local tabs.

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