hardbyte / hardbyte/awa

Admin UI: per-attempt timeline view with trace link-out

Open
#375 0 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Rust
Stars
32
Forks
5
Avg merge
15h 21m
Merged PRs (30d)
21

Description

## Motivation

The queue-storage engine already records a rich evidence trail per attempt — receipts, lease claims, closures, heartbeats, callback park/resume, terminal evidence — but the UI presents jobs as state snapshots. Turning the evidence trail into a timeline is the operator-UX payoff of the storage design, and pairs directly with end-to-end tracing (#110): the timeline is where a trace id becomes clickable.

## Scope

- Per-job "Attempts" view assembling, per attempt: claim (receipt or lease), heartbeats, progress updates, snoozes, callback park/resume, deadline/rescue events, finalization (with `run_lease` identity), retry scheduling.
- Sourced from the public read surfaces (`terminal_jobs`, lease/receipt views) — no direct dependence on internal physical layout (per ADR-026's public-surface rule).
- Trace link-out: when #110's `trace_context` is present, render a configurable link template (`AWA_TRACE_URL_TEMPLATE`, e.g. Grafana Tempo/Jaeger URL with `{trace_id}`).
- API endpoints land in the `awa-api` crate (#143) as versioned response types.

## Acceptance

- A retried job with a callback park shows a complete, ordered timeline across both attempts.
- Timeline renders correctly for receipt-path (short) and lease-path (long) attempts.
- Trace link appears when context exists; feature degrades gracefully when tracing is off.

## References

Roadmap: `docs/0.7-roadmap.md` (WS-4, NEW-11). Related: #110, #143, ADR-023, ADR-026.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with docs/0.7-roadmap.md and ADR-023/ADR-026, then inspect the public terminal_jobs and lease/receipt read surfaces and the awa-api crate. Check the planned trace_context work in #110 and versioned API work in #143 before shaping the response types. Done means a retried job displays an ordered cross-attempt timeline for both attempt paths, with optional trace links.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.