fix(sync): replace cryptic sigil counters with readable output (#86)

* fix(sync): replace cryptic sigil counters with readable output

Problem: sync summaries used unexplained sigils (`+/-/~` and `!`) that
conveyed no meaning, mixed symbol and prose formats across operations,
and `gcal push` silently swallowed failures with no aggregate counter.

Solution: replace all summary `log.info` calls with a shared
`fmt_counts` helper that formats `N label` pairs separated by ` | `,
suppresses zero counts, and falls back to "nothing to do". Add a
`failed` counter to `gcal.push` to surface errors previously only
emitted as individual warnings.

* ci: format
This commit is contained in:
Barrett Ruth 2026-03-06 13:26:23 -05:00 committed by GitHub
parent 991ac5b467
commit ff73164b61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 64 additions and 27 deletions

View file

@ -195,6 +195,21 @@ local function unlink_remote(task, now_ts)
task.modified = now_ts
end
---@param parts {[1]: integer, [2]: string}[]
---@return string
local function fmt_counts(parts)
local items = {}
for _, p in ipairs(parts) do
if p[1] > 0 then
table.insert(items, p[1] .. ' ' .. p[2])
end
end
if #items == 0 then
return 'nothing to do'
end
return table.concat(items, ' | ')
end
---@param task pending.Task
---@return table
local function task_to_gtask(task)
@ -450,9 +465,12 @@ function M.push()
if buffer.bufnr() and vim.api.nvim_buf_is_valid(buffer.bufnr()) then
buffer.render(buffer.bufnr())
end
log.info(
string.format('Google Tasks pushed — +%d ~%d -%d !%d', created, updated, deleted, failed)
)
log.info('gtasks push: ' .. fmt_counts({
{ created, 'added' },
{ updated, 'updated' },
{ deleted, 'deleted' },
{ failed, 'failed' },
}))
end)
end
@ -474,15 +492,12 @@ function M.pull()
if buffer.bufnr() and vim.api.nvim_buf_is_valid(buffer.bufnr()) then
buffer.render(buffer.bufnr())
end
log.info(
string.format(
'Google Tasks pulled — +%d ~%d !%d, unlinked: %d',
created,
updated,
failed,
unlinked
)
)
log.info('gtasks pull: ' .. fmt_counts({
{ created, 'added' },
{ updated, 'updated' },
{ unlinked, 'unlinked' },
{ failed, 'failed' },
}))
end)
end
@ -506,19 +521,17 @@ function M.sync()
if buffer.bufnr() and vim.api.nvim_buf_is_valid(buffer.bufnr()) then
buffer.render(buffer.bufnr())
end
log.info(
string.format(
'Google Tasks synced — push: +%d ~%d -%d !%d, pull: +%d ~%d !%d, unlinked: %d',
pushed_create,
pushed_update,
pushed_delete,
pushed_failed,
pulled_create,
pulled_update,
pulled_failed,
unlinked
)
)
log.info('gtasks sync — push: ' .. fmt_counts({
{ pushed_create, 'added' },
{ pushed_update, 'updated' },
{ pushed_delete, 'deleted' },
{ pushed_failed, 'failed' },
}) .. ' pull: ' .. fmt_counts({
{ pulled_create, 'added' },
{ pulled_update, 'updated' },
{ unlinked, 'unlinked' },
{ pulled_failed, 'failed' },
}))
end)
end