Skip to content

impl(orchestrator/project): Area-unset pool items (17) are invisible to per-project pages - triage pass + taxonomy check #1143

Closed

Description

@dezren39

Finding

Evidence (live review 2026-10-26 ~22:40 CDT, laptop loopback + gh, cross-checked): Project pool tonight: 139 items - lab-cluster 20, id-train 70, pm-dashboard 28, fleet-ops 4, unset Area 17. Per-project pages (#1121) filter by Area, so 12% of the pool belongs to no project. Distribution also drifted vs Oct 25 (fleet-ops 9 -> 4 while id-train grew ~6x) - Area is applied inconsistently as volume grows.

Proposal

A triage pass over the unset items: set Area where determinable, record why for the rest; a lightweight convention note (which labels/repo imply which Area) alongside the #910 conventions; and the unset count surfaced on /projects + the /program index as a visible gap, not silently dropped.

Acceptance

Activity

  1. added
    kind/choreRoutine maintenance, housekeeping, dependency hygiene
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  4. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    Evidence (fresh GitHub reads at HEAD):

    • /program index — DONE: src/render.ts renderProgramIndex (~:4686-4690) renders the banner "N pool items carry no Area — they belong to no project page until Area is set on the Project. Setting Area is the orchestrator's reconciliation job; this count keeps the gap visible." Per-project pages for Area-less projects also state the unset count (:4751).
    • /projects — NOT DONE: renderProjects builds its area chips from pool.map(p => p.area).filter(Boolean) — only set areas get a chip; a card's area badge renders only when p.area is truthy. Unset items appear only inside "all", uncounted and unbucketed, so the acceptance "/projects shows the unset bucket explicitly" is unmet.
    • The unset-item triage pass itself is the orchestrator's: the dashboard's own architecture record (program.ts) names the hourly orchestrator the single writer of Project status/Area reconciliation — a queue worker must not set Area on pool items. The convention/gap-surfacing half is the dashboard work routed below.
    • Live recount limitation: gh project item-list 4 from the worker sandbox fails — the token lacks the read:project scope — so no fresh unset count could be taken this run; the filing count (17 unset of 139, 2026-10-26) stands as the last verified number.

    Route: dashboard slice enqueued as queue task 3033 (small_fix, dedupe repo-health:v1:fix:developing-today/code:issue:1143): explicit "(unset)" bucket with live count on /projects, mirroring the /program banner, plus a projects.test.ts assertion. Reducing the unset count itself stays with the orchestrator's reconciliation pass. The issue stays open; this triage task completes as triaged.

  5. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 29, 2026
  6. 22 remaining items

  7. added
    queue/claimedQueue worker lifecycle state
    and removed
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Oct 29, 2026
  8. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  9. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Oct 29, 2026
  10. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  11. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Oct 29, 2026
  12. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Agent note — done (PR opened)

    Queue task 3033 (small_fix, follow-up of triage 2425) completed as pr_opened.

  13. added a commit that references this issue on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codekind/choreRoutine maintenance, housekeeping, dependency hygiene

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions