Proposit Logo

v0.17.3

Pipeline UX polish + correct timestamps + concurrency safeguards

May 28, 2026

  • Pipeline status reliability fixes — Fixed two bugs in the pipeline status view: clicking a stage that hadn't started yet no longer throws a 500 error, and completed stages no longer hang in a "Loading…" state after the pipeline progresses.
  • Friendlier pipeline stage names — Pipeline stages now show human-readable names like "Claim Canonicalization" instead of the internal slug claim-canonicalization.
  • Pipeline progress in the argument view — When you load an argument view while an import is in progress, the live pipeline status now appears inline straight away. Previously only a "View pipeline →" link showed until the next stage event fired. Clicking a stage in this compact view also no longer puts it in a selected state — it's purely a status display.
  • Failed imports stay visible in the argument view — If your import fails, the argument view now keeps the compact pipeline view visible (showing which stage failed and a link to the full pipeline page) instead of silently dropping back to the empty argument builder.
  • Mobile-friendly pipeline display — The compact pipeline track now wraps to a second row instead of clipping off the right when the argument view is narrower than the full 12-stage strip.
  • Clearer over-budget error responses — When you hit the monthly token limit, the API now returns a structured response showing exactly how many tokens you've used, your limit, and when the budget resets. Previously the body was a plain error message with no usage detail.
  • Retry button is now actually clickable — The "Retry" affordance on the task page used to be silent — a click did nothing. It now correctly opens the confirmation dialog.
  • Retry button labeled honestly — Both the per-stage and the whole-task retry buttons now read "Retry import". The previous "Retry from this stage" label implied the per-stage button only re-ran that one stage; in fact both buttons re-run the entire pipeline (the consent dialog still spells this out).
  • Retry is disabled when it can't help — When the import failed for a reason that re-running won't fix (account out of LLM credits, certain provider errors), the Retry button is now disabled with a tooltip explaining why, instead of letting you burn a no-op round-trip.
  • Copy buttons on the Input/Output sections — Every "Attempt N" entry in the per-stage Input and Output panels now has a one-click copy-to-clipboard button.
  • Readable Input/Output text in dark mode — Fixed a contrast bug where the per-stage Input/Output code blocks rendered light text on a light background in dark mode.
  • Accurate stage timing — The "in progress (Xs)" cue on running pipeline stages now shows a real elapsed-seconds value. Previously it could surface a 10-digit number (the underlying timestamp was being stored incorrectly). Newly-run imports also store correct start/finish times in the pipeline detail view.
  • No more silent re-runs after a server restart — If the server restarts mid-import, the affected import is now marked failed (with a "Retry import" button) instead of silently re-running the pipeline from the start and re-charging your token budget for the stages that had already finished. A concurrent-execution safeguard also makes sure the same import never runs twice in parallel.