Log corrected Today recap time to Gitea #587

Closed
opened 2026-08-11 19:20:24 +00:00 by timmy · 0 comments
Owner

User problem

The mobile Today flow records, corrects, and syncs actual time, but stops before the durable Gitea record. Operators must re-enter every corrected duration item by item.

Vertical slice

Add an explicit opt-in recap action that logs selected non-zero corrected durations to each canonical issue or pull request through Gitea’s native time endpoint. Ordinary recap saving must remain mutation-free. Confirmed per-item receipts must make retries safe and account-scoped; partial failures must remain visible and retryable.

Acceptance criteria

  • Each eligible recap item has an unchecked 44px mobile control; zero-minute or malformed targets are ineligible.
  • Ordinary Save recap & adjust plan performs no Gitea time mutation.
  • Explicit save-and-log sends corrected minutes as seconds to the canonical repository and issue/PR number.
  • Confirmed items are not posted again on replay; partial results identify logged and retryable rows.
  • Pending state remains account-scoped across reloads.
  • Backend rejects malformed identities, target substitution, and values over 24 hours before upstream contact.
  • Focused behavioral tests and the full suite pass.

This is not duplicate work: #577, #579, #581, #583, and #585 intentionally stop at timer/recap/replanning; repository and historical issue searches show no native /times mutation implementation.

## User problem The mobile Today flow records, corrects, and syncs actual time, but stops before the durable Gitea record. Operators must re-enter every corrected duration item by item. ## Vertical slice Add an explicit opt-in recap action that logs selected non-zero corrected durations to each canonical issue or pull request through Gitea’s native time endpoint. Ordinary recap saving must remain mutation-free. Confirmed per-item receipts must make retries safe and account-scoped; partial failures must remain visible and retryable. ## Acceptance criteria - Each eligible recap item has an unchecked 44px mobile control; zero-minute or malformed targets are ineligible. - Ordinary **Save recap & adjust plan** performs no Gitea time mutation. - Explicit save-and-log sends corrected minutes as seconds to the canonical repository and issue/PR number. - Confirmed items are not posted again on replay; partial results identify logged and retryable rows. - Pending state remains account-scoped across reloads. - Backend rejects malformed identities, target substitution, and values over 24 hours before upstream contact. - Focused behavioral tests and the full suite pass. This is not duplicate work: #577, #579, #581, #583, and #585 intentionally stop at timer/recap/replanning; repository and historical issue searches show no native `/times` mutation implementation.
timmy self-assigned this 2026-08-11 19:20:24 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#587
No description provided.