feat(go): add --print-fio-table flag to fuj sync --dry-run
All checks were successful
Deploy to K8s / deploy (push) Successful in 7s
All checks were successful
Deploy to K8s / deploy (push) Successful in 7s
Prints an aligned tabwriter table of every Fio transaction in the look-back window, with a STATUS column showing NEW (would be appended) or DUP (already in sheet). Only fires when --dry-run is also set, so it can't affect real syncs. Refactors Sync ID computation into a single pre-pass shared by both the table printer and the row builder. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
29
docs/plans/2026-05-07-1321-fuj-sync-print-fio-table.md
Normal file
29
docs/plans/2026-05-07-1321-fuj-sync-print-fio-table.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Add `--print-fio-table` debug flag to `fuj sync`
|
||||
|
||||
## Context
|
||||
|
||||
The Go port of `fuj sync --dry-run` currently prints only the **new**
|
||||
transactions — i.e. rows that will be appended to the payments sheet after
|
||||
deduping against existing Sync IDs (see [sync.go:125-129](../../go/internal/services/banksync/sync.go#L125-L129)).
|
||||
When debugging Fio sync issues ("why isn't transaction X showing up?",
|
||||
"is the dedup working?"), there's no way to see what Fio actually
|
||||
returned versus what got filtered as a duplicate.
|
||||
|
||||
This change adds a `--print-fio-table` flag that, **only when combined
|
||||
with `--dry-run`**, prints an aligned table of every Fio transaction in
|
||||
the window with each row marked `NEW` (would be appended) or `DUP`
|
||||
(already in sheet, skipped). The flag is silently ignored without
|
||||
`--dry-run`, so it can't accidentally fire during a real sync.
|
||||
|
||||
## Decisions
|
||||
|
||||
- Flag name: `--print-fio-table` (specific, not generic `--verbose`).
|
||||
- Columns: `DATE | AMOUNT | SENDER | VS | MESSAGE | BANKID | STATUS`,
|
||||
with MESSAGE truncated and STATUS = `NEW` / `DUP`.
|
||||
- Scope: only effective when `--dry-run` is also set.
|
||||
|
||||
## Files modified
|
||||
|
||||
- [go/cmd/fuj/main.go](../../go/cmd/fuj/main.go) — new flag + SyncOpts field
|
||||
- [go/internal/services/banksync/sync.go](../../go/internal/services/banksync/sync.go) — SyncOpts struct + refactored step 4
|
||||
- [go/internal/services/banksync/debug.go](../../go/internal/services/banksync/debug.go) — printFioTable helper (new)
|
||||
Reference in New Issue
Block a user