Summary
The Pulse Work Kanban hides the sync-marker label by matching the hardcoded literal "pai-sync" in three places:
LIFEOS/PULSE/Observability/src/app/work/page.tsx:
301: const labels = (issue.labels || []).filter((l) => l !== "pai-sync");
720: {(it.labels || []).filter((l) => l !== "pai-sync").length > 0 && (
722: {(it.labels || []).filter((l) => l !== "pai-sync").map((l) => (
pai-sync is a leftover from the PAI → LifeOS rebrand — the project and docs are "LifeOS", but the work-system sync marker is still named pai-sync (label + emitters + this filter).
Impact
Because the filter is a single hardcoded string, any install that renames the marker to a LifeOS-consistent name (e.g. lifeos-sync) has it stop matching — the sync marker then renders as a visible pill on every synced Kanban card (cosmetic, but on every card). More broadly, the pai-* naming (pai-sync, and sibling pai-* conventions) is inconsistent with the LifeOS brand.
Suggested fix (pick one)
- Rename the marker end-to-end to
lifeos-sync (label taxonomy + whatever emits it + these three filters), or
- Filter against a small set of known internal markers instead of a single literal, so a rename can't leak the chip:
const HIDDEN = new Set(["pai-sync", "lifeos-sync", "auto-native", "auto-sweep"]);
(issue.labels || []).filter((l) => !HIDDEN.has(l))
Environment
Found on a downstream LifeOS install; line numbers match main at time of filing (verified against the raw page.tsx). Cosmetic-only; no data impact.
Summary
The Pulse Work Kanban hides the sync-marker label by matching the hardcoded literal
"pai-sync"in three places:LIFEOS/PULSE/Observability/src/app/work/page.tsx:301: const labels = (issue.labels || []).filter((l) => l !== "pai-sync");720: {(it.labels || []).filter((l) => l !== "pai-sync").length > 0 && (722: {(it.labels || []).filter((l) => l !== "pai-sync").map((l) => (pai-syncis a leftover from the PAI → LifeOS rebrand — the project and docs are "LifeOS", but the work-system sync marker is still namedpai-sync(label + emitters + this filter).Impact
Because the filter is a single hardcoded string, any install that renames the marker to a LifeOS-consistent name (e.g.
lifeos-sync) has it stop matching — the sync marker then renders as a visible pill on every synced Kanban card (cosmetic, but on every card). More broadly, thepai-*naming (pai-sync, and siblingpai-*conventions) is inconsistent with the LifeOS brand.Suggested fix (pick one)
lifeos-sync(label taxonomy + whatever emits it + these three filters), orEnvironment
Found on a downstream LifeOS install; line numbers match
mainat time of filing (verified against the rawpage.tsx). Cosmetic-only; no data impact.