Hiro development journal

Queue cards gain event-backed lifecycle dates

Implemented, validated, and live Machine-readable JSON

Executive summary

Every idea card in Hiro's Ranked Ideas queue now shows when the idea was added and its actual progress dates, including investigation, first candidate attempt, canary start, terminal outcome, and latest activity when those milestones exist.

The dates are derived from Hiro's immutable append-only event ledger, so the improvement applies to historical queue records as well as newly added ideas.

The live current candidate was verified with an August 14 added date and August 15 investigation and first-attempt dates after Hiro restarted on the new code.

All 586 repository tests passed, the live circuit breaker remained closed, and browser inspection confirmed the lifecycle dates render on the Ranked Ideas page.

Work completed

Event-backed lifecycle model

Completed
  • Added a bulk lifecycle derivation method that reads idea creation metadata and the append-only events table in event order.
  • Mapped idea_queued to Added, investigation_started to Investigated, potential_confirmed to First attempted, and candidate_tests_passed to Canary started.
  • Mapped implementation, rejection, and supersession event families to their corresponding terminal dates while retaining Latest activity for every record.
  • Used creation and update timestamps only as safe fallbacks for records whose historical event coverage predates a milestone.

Ranked Ideas interface

Completed
  • Added a compact wrapping lifecycle row to every queue card.
  • Cards suppress milestones that were never reached, so a waiting idea shows Added and Latest activity while progressed or terminal records show the additional applicable dates.
  • Dates use the existing dashboard local-time formatter and the timeline has an accessible Idea lifecycle dates label.
  • The lifecycle appears consistently in Waiting, Active, Retrying, Implemented, Rejected, Superseded, and the unfiltered queue view because all use the shared card renderer.

Historical backfill and live rollout

Completed
  • No database migration or guessed timestamp generation was required; the existing immutable event ledger supplies historical milestones on read.
  • Hiro restarted successfully after the implementation commit, and both API ports returned on the updated process.
  • The continuous-improvement endpoint returned lifecycle data for all 118 queue records and kept the promotion circuit breaker closed.

Decisions and reasoning

Validation and evidence

CheckStatusResult
Focused lifecycle and dashboard tests passed Twenty-four focused tests passed, including new coverage for full implemented lifecycles, rejection dates, supersession dates, and required queue-card labels.
Authoritative full Hiro suite passed All 586 tests passed in 163.52 seconds in Hiro's real pinned environment.
Live API backfill passed The live API reported 118 ideas with lifecycle objects. The current candidate reported Added at 2026-08-14T23:22:22.214893+00:00, Investigated at 2026-08-15T20:08:12.872669+00:00, and First attempted at 2026-08-15T20:08:12.899856+00:00.
Live browser rendering passed The Ranked Ideas view visibly rendered Added, Investigated, First attempted, and Latest activity in local time for the active card.
Runtime health passed Hiro restarted on the new commit, ports 8001 and 8765 listened on the same validated child process, and the continuous-improvement circuit breaker remained closed.

Current state

Next steps