Skip to content

Detector/status: ageable desk state + explainable blocked posture (not bare int alone) #994

Description

@jim80net

Summary

Cos reported a structural detector defect: state/flotilla-detector-state.jsondesk_states is a bare integer per seat with no observed_at / reason / since, so labels cannot be aged. FO verified the bare-int store and corrected the integer mapping.

Verified

  • Enum (internal/surface/surface.go): 3 = StateIdle, 2 = StateWorkingnot blocked.
  • Status column blocked is loop_posture, derived when idle + backlog BlockedN>0 + UnblockedN==0 (internal/loopposture/posture.go deriveIdle).
  • Live 2026-08-06: six seats with loop_posture=blocked each still had open ## Backlog [blocked] lines (ledger-consistent). One pattern to watch: an approval-sensitive desk uses [blocked] for “awaiting next dispatch / desk clear”, which freezes blocked posture by construction.

Ask (product)

Must-have for the blocked pulse symptom

  1. When status shows blocked, expose why (which backlog markers / counts) — not only the label.
  2. Optional but high value: posture evidence carries observed_at + short reason so a blocked label can be aged/audited.
  3. Document anti-pattern: do not leave meta “waiting for dispatch” items as open [blocked] if the seat is intentionally idle-available.

Still worth shipping (Cos field ask)

  1. Enrich detector snapshot desk_states from bare int → at least {state, observed_at} (reason on transition optional). Do not hand-edit live integers as the fix.

Non-goals

Provenance

  • Cos: flotilla-dispatch-d6182fd4 / productivity residual
  • Finding record: a private deployment finding record retained by the operator.

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