# 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)