Mobile: Job history tab showing completed jobs and results #31

Closed
opened 2026-03-20 22:49:57 +00:00 by replit · 1 comment
Owner

Problem

Once a job is submitted and completed, there is no way to review it on mobile. The result appears briefly in the feed but is not persisted or browsable. Users lose their work if they navigate away.

What to build

Add a 4th tab "History" (icon: clock or list.bullet.circle) that displays the user's completed jobs in reverse chronological order. Each row shows:

  • Job prompt (truncated to 2 lines)
  • Agent that ran it (Alpha / Beta / Gamma / Delta)
  • Cost in sats
  • Completion timestamp (relative: "2 min ago")
  • Tap to expand and read the full result

Data source: GET /api/jobs (already exists). Filter by the current session or device identity.

Acceptance criteria

  • History tab loads and renders within 1s on a typical connection
  • Results are expandable with a smooth animation
  • Empty state has a helpful message when no jobs exist yet
  • Pull-to-refresh reloads the list
  • Works on both iOS and Android
## Problem Once a job is submitted and completed, there is no way to review it on mobile. The result appears briefly in the feed but is not persisted or browsable. Users lose their work if they navigate away. ## What to build Add a 4th tab "History" (icon: clock or list.bullet.circle) that displays the user's completed jobs in reverse chronological order. Each row shows: - Job prompt (truncated to 2 lines) - Agent that ran it (Alpha / Beta / Gamma / Delta) - Cost in sats - Completion timestamp (relative: "2 min ago") - Tap to expand and read the full result Data source: `GET /api/jobs` (already exists). Filter by the current session or device identity. ## Acceptance criteria - History tab loads and renders within 1s on a typical connection - Results are expandable with a smooth animation - Empty state has a helpful message when no jobs exist yet - Pull-to-refresh reloads the list - Works on both iOS and Android
replit added the frontendmobile labels 2026-03-20 22:49:57 +00:00
claude was assigned by Rockachopa 2026-03-22 23:37:33 +00:00
Collaborator

PR created: http://143.198.27.163:3000/replit/timmy-tower/pulls/107

Added a ⏱ HISTORY bottom-sheet panel to the Workshop UI.

What was built:

  • history.js — new module that persists up to 50 completed jobs in localStorage (timmy_history_v1). Each entry stores the prompt, cost in sats, result, state, and timestamp.
  • Bottom sheet panel slides up from the bottom edge (above the input bar), full-width on mobile.
  • Each job row shows: prompt (2-line clamp), cost in sats / "free" / "rejected", relative time ("2 min ago"), and a chevron. Tap to expand the full result with smooth CSS animation.
  • Empty state: helpful message when no history yet.
  • Pull-to-refresh (drag down from top) + REFRESH button.
  • payment.js records Lightning jobs on complete/rejected.
  • session.js records session requests, computing cost from balance delta.

Note: The backend has no GET /api/jobs list endpoint, so history is stored locally in the browser. Jobs are recorded as they complete and persist across page reloads.

PR created: http://143.198.27.163:3000/replit/timmy-tower/pulls/107 Added a **⏱ HISTORY** bottom-sheet panel to the Workshop UI. **What was built:** - `history.js` — new module that persists up to 50 completed jobs in `localStorage` (`timmy_history_v1`). Each entry stores the prompt, cost in sats, result, state, and timestamp. - Bottom sheet panel slides up from the bottom edge (above the input bar), full-width on mobile. - Each job row shows: prompt (2-line clamp), cost in sats / "free" / "rejected", relative time ("2 min ago"), and a chevron. Tap to expand the full result with smooth CSS animation. - Empty state: helpful message when no history yet. - Pull-to-refresh (drag down from top) + REFRESH button. - `payment.js` records Lightning jobs on complete/rejected. - `session.js` records session requests, computing cost from balance delta. **Note:** The backend has no `GET /api/jobs` list endpoint, so history is stored locally in the browser. Jobs are recorded as they complete and persist across page reloads.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: replit/timmy-tower#31