Agents Builders

Pin session mascot statusline

Archived
pin-session-mascot-statusline

Created

Jun 25, 20:41

Started

Jun 25, 20:42

Completed

Jun 25, 21:28

DevOps handoff

Type

Bug

Shape

backend

Worktree Slug

pin-session-mascot-statusline

Repositories

mcritchie-studio

Release Train

Branch

feat/pin-session-mascot-statusline

QA URL

Production URL

tooling devops

Acceptance Criteria

  • Session mascot stays sticky across task moves
  • Status line never shows pink wrench-dot fallback
  • App feature and stage still update on moves

Expected Test Plan

  • unit

Checks Run

  • [unit] test/lib/statusline_test.rb — 17 green; no-emoji mascot renders clean name (neutral 250), never pink 🛠 ⊙ (213)
  • [unit] test/lib/feature_marker_test.rb — 6 green; pure mascot fallback chain
  • [integration] test/lib/task_cli_test.rb — 39 green; bin/task writes marker across file boundary: sticky session mascot pinned, stray task mascot ignored, persona overrides, no-disk adopts
  • [full-suite@db393e0f9506aa2c7d21c994069d939341dc1dc6] bin/rails test green
  • [rubocop@db393e0f9506aa2c7d21c994069d939341dc1dc6] bin/rubocop clean

Agent Context

Bug: bin/task create/move calls write_feature_marker, which overwrites the per-session marker with the MOVED task's mascot. Tasks assigned via backfill_mascots! (or before the color/emoji feature) carry mascot name but EMPTY mascot_color/mascot_emoji, so bin/statusline falls to its pink 'wrench dot' fallback (out='🛠 ' + ⊙ + default tint 213). Confirmed live: rolio-hotwire-native-shell serves mascot=rhyhorn with empty color/emoji. Owner decision: PIN the session mascot. Fix part 1 (bin/task marker_mascot_attrs): the session's mascot trio is sticky — the existing on-disk marker's mascot/color/emoji wins over the moved task's, so reviewing/moving another session's task updates app/feature/stage context but never swaps in its under-stamped mascot. Persona (act-as-soul) still overrides. First-task-in-fresh-session still adopts (its response carries color/emoji; SessionMascot makes it the session handle). Fix part 2 (bin/statusline render): safety net — a mascot with no type emoji renders clean (name only, color tint or NEUTRAL non-pink default), never the pink 🛠 ⊙. Update the two statusline tests that assert the old fallback (213 default + ⊙ Snorlax) and add a sticky-mascot regression test. Out of scope (follow-up): backfill_mascots! server bug stamps only the name (board card colors) — needs deploy+backfill.

Stage Timeline

Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. means the agent didn't report that metric.

  1. Created Designed
    O Omanyte
    Omanyte
    Model
    Duration
    Tokens
    Cost
    Completed Jun 25, 20:41 · 1 day ago
    api
  2. Designed Building
    O Omanyte
    Omanyte
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 25, 20:41
    Completed Jun 25, 20:42 · 1 day ago
    cli
  3. Building Submitted
    O Omanyte
    Omanyte
    Model
    claude-opus-4-8
    Duration
    30 minutes
    Tokens
    17,899,711
    Cost
    ~$14.99
    Started Jun 25, 20:42
    Completed Jun 25, 21:12 · 1 day ago
    cli
  4. Submitted Reviewed
    C Carl
    Carl primary
    J Jasper
    Jasper light
    Model
    claude-opus-4-8
    Duration
    8 minutes
    Tokens
    Cost
    Started Jun 25, 21:12
    Completed Jun 25, 21:20 · 1 day ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 25, 21:20
    Completed Jun 25, 21:21 · 1 day ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    7 minutes
    Tokens
    Cost
    Started Jun 25, 21:21
    Completed Jun 25, 21:28 · 1 day ago
  7. Shipped Archived
    Model
    Duration
    about 2 hours
    Tokens
    Cost
    Started Jun 25, 21:28
    Completed Jun 25, 23:00 · 1 day ago

Conversation

QA review feedback, agent handoffs, and follow-up notes for this task.

Comment 1 day ago

Review pair APPROVED + READY-TO-UNDRAFT (both): carl (heavy) + jasper (light). All 3 acceptance bullets verified in code+tests — (a) marker_mascot_attrs resolves persona->disk->response->board so the pinned session mascot wins over a moved/stray task mascot (incl. a fully-attributed stray); (b) bin/statusline default tint 213->250 + no-emoji branch renders clean name, never the pink wrench/dot; (c) app/feature/stage still update (write_feature_marker untouched for those). Persona-override + fresh-session-adopt preserved+tested. CI green (1703 runs). Non-blocking follow-up: bin/statusline:113 tint() docstring still references the now-removed dot glyph — one-line cleanup. Un-drafted.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual