pending.nvim/lua/pending
Barrett Ruth dc365e266b
feat(archive): duration syntax and confirmation prompt (#113)
* feat(s3): create bucket interactively during auth when unconfigured

Problem: when a user runs `:Pending s3 auth` with no bucket configured,
auth succeeds but offers no way to create the bucket. The user must
manually run `aws s3api create-bucket` and update their config.

Solution: add `util.input()` coroutine-aware prompt wrapper and a
`create_bucket()` flow in `s3.lua` that prompts for bucket name and
region, handles the `us-east-1` LocationConstraint quirk, and logs a
config snippet on success. Called automatically from `auth()` when
`sync.s3.bucket` is absent.

* ci: typing

* feat(parse): add `parse_duration_to_days` for duration string conversion

Problem: The archive command accepted only a bare integer for days,
inconsistent with the `+Nd`/`+Nw`/`+Nm` duration syntax used elsewhere.

Solution: Add `parse_duration_to_days()` supporting `Nd`, `Nw`, `Nm`,
and bare integers. Returns nil on invalid input for caller error handling.

* feat(archive): duration syntax and confirmation prompt

Problem: `:Pending archive` accepted only a bare integer for days and
silently deleted tasks with no confirmation, risking accidental data loss.

Solution: Accept duration strings (`7d`, `3w`, `2m`) via
`parse.parse_duration_to_days()`, show a `vim.ui.input` confirmation
prompt before removing tasks, and skip the prompt when zero tasks match.
2026-03-08 20:28:06 -04:00
..
sync feat(sync): s3 backend (#112) 2026-03-08 20:20:16 -04:00
buffer.lua feat: complete task editing coverage (#109) 2026-03-08 19:44:03 -04:00
complete.lua refactor(types): extract inline anonymous types into named classes (#110) 2026-03-08 19:49:49 -04:00
config.lua feat: auth backend (#111) 2026-03-08 19:53:42 -04:00
diff.lua feat: complete task editing coverage (#109) 2026-03-08 19:44:03 -04:00
health.lua fix(diff): preserve due/rec when absent from buffer line (#68) 2026-03-05 12:46:54 -05:00
init.lua feat(archive): duration syntax and confirmation prompt (#113) 2026-03-08 20:28:06 -04:00
log.lua fix(diff): preserve due/rec when absent from buffer line (#68) 2026-03-05 12:46:54 -05:00
parse.lua feat(archive): duration syntax and confirmation prompt (#113) 2026-03-08 20:28:06 -04:00
recur.lua feat: time-aware due dates, persistent undo, @return audit (#33) 2026-02-25 20:37:50 -05:00
store.lua refactor(types): extract inline anonymous types into named classes (#110) 2026-03-08 19:49:49 -04:00
textobj.lua fix(diff): preserve due/rec when absent from buffer line (#68) 2026-03-05 12:46:54 -05:00
views.lua feat: auth backend (#111) 2026-03-08 19:53:42 -04:00