pending.nvim/spec
Barrett Ruth 939251f629
refactor: tighten LuaCATS annotations and canonicalize metadata fields (#141)
* refactor: tighten LuaCATS annotations across modules

Problem: type annotations repeated inline unions with no aliases,
used `table<string, any>` where structured types exist, and had
loose `string` where union types should be used.

Solution: add `pending.TaskStatus`, `pending.RecurMode`,
`pending.TaskExtra`, `pending.ForgeType`, `pending.ForgeState`,
`pending.ForgeAuthStatus` aliases and `pending.SyncBackend`
interface. Replace inline unions and loose types with the new
aliases in `store.lua`, `forge.lua`, `config.lua`, `diff.lua`,
`views.lua`, `parse.lua`, `init.lua`, and `oauth.lua`.

* refactor: canonicalize internal metadata field names

Problem: `pending.Metadata` used shorthand field names (`cat`, `rec`,
`rec_mode`) matching user-facing token syntax, coupling internal
representation to config. `RecurSpec.from_completion` used a boolean
where a `pending.RecurMode` alias exists. `category_syntax` was
hardcoded to `'cat'` with no config option.

Solution: rename `Metadata` fields to `category`/`recur`/`recur_mode`,
add `category_syntax` config option (default `'cat'`), rename
`ParsedEntry` fields to match, replace `RecurSpec.from_completion`
with `mode: pending.RecurMode`, and restore `[string]` indexer on
`pending.ForgeConfig` alongside explicit fields.
2026-03-12 20:29:02 -04:00
..
archive_spec.lua fix(sync): normalize log prefixes and S3 prompt UX (#115) 2026-03-08 20:56:22 -04:00
complete_spec.lua refactor(config): remove legacy gcal top-level config key (#51) 2026-02-26 22:53:51 -05:00
diff_spec.lua refactor: tighten LuaCATS annotations and canonicalize metadata fields (#141) 2026-03-12 20:29:02 -04:00
edit_spec.lua refactor: organize tests and dry (#49) 2026-02-26 20:03:42 -05:00
filter_spec.lua refactor: organize tests and dry (#49) 2026-02-26 20:03:42 -05:00
forge_spec.lua refactor: tighten LuaCATS annotations and canonicalize metadata fields (#141) 2026-03-12 20:29:02 -04:00
gtasks_spec.lua feat(sync): diff metadata preservation, auth unification, and sync quality improvements (#74) 2026-03-05 22:40:19 -05:00
helpers.lua test: add store, parse, and diff specs 2026-02-24 15:10:09 -05:00
icons_spec.lua refactor(icons): ascii defaults, checkbox overlays, and cleanup (#57) 2026-03-04 18:44:41 -05:00
oauth_spec.lua fix(sync): auto-trigger auth flow on unauthenticated sync actions (#120) (#123) 2026-03-10 11:37:16 -04:00
parse_spec.lua refactor: tighten LuaCATS annotations and canonicalize metadata fields (#141) 2026-03-12 20:29:02 -04:00
recur_spec.lua refactor: tighten LuaCATS annotations and canonicalize metadata fields (#141) 2026-03-12 20:29:02 -04:00
s3_spec.lua fix(sync): auto-trigger auth flow on unauthenticated sync actions (#120) (#123) 2026-03-10 11:37:16 -04:00
status_spec.lua refactor: organize tests and dry (#49) 2026-02-26 20:03:42 -05:00
store_spec.lua feat(buffer): persist fold state across sessions (#94) 2026-03-07 20:18:34 -05:00
sync_spec.lua feat: auth backend (#111) 2026-03-08 19:53:42 -04:00
sync_util_spec.lua feat(sync): s3 backend (#112) 2026-03-08 20:20:16 -04:00
textobj_spec.lua feat: text objects and motions for the pending buffer (#39) 2026-02-26 16:28:58 -05:00
views_spec.lua feat: auth backend (#111) 2026-03-08 19:53:42 -04:00