Skip to content

Commit 56574ad

Browse files
committed
Update CHANGELOG.md
1 parent 37790e9 commit 56574ad

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

docs/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,27 @@
22

33
All notable changes to ACE will be captured in this document. This project follows semantic versioning; the latest changes appear first.
44

5-
## [v1.7.0] - 2026-03-20
5+
## [v1.7.0] - 2026-03-23
66

77
### Added
88
- `table-repair --preserve-origin` flag to preserve replication origin node ID, LSN, and per-row commit timestamps during repair operations. Repaired rows retain the original source node's origin metadata instead of being stamped with the local node's identity, preventing replication conflicts when a failed node rejoins the cluster. Upserts are grouped by (origin, timestamp) into separate transactions to satisfy PostgreSQL's per-transaction replication origin session constraint; deletes commit in a preceding transaction.
99
- Runtime configuration reload via SIGHUP for all long-running ACE modes. The scheduler waits for in-flight jobs to complete before swapping config; the API server reloads immediately, including mTLS security config (CRL and allowed CN list). Works for `ace start`, `ace server`, and `ace start --component=all`.
10+
- End-of-run summary for `schema-diff` and `repset-diff` listing identical, skipped, differed, missing, and errored tables with error reasons.
1011

1112
### Changed
1213
- CLI migrated from urfave/cli v2 to v3 for native interspersed flag support, allowing flags to be placed before or after subcommands.
1314
- Config reads are now thread-safe and snapshotted per HTTP request, per Merkle-tree task, and per CDC replication stream to prevent mid-operation drift during concurrent SIGHUP reloads.
1415
- mTLS certificate validator is swapped atomically on SIGHUP using `atomic.Pointer` for lock-free reads on the request path.
16+
- `schema-diff` and `repset-diff` now query tables from all nodes and report tables not present on every node, instead of silently using only the first node's table list. still compared across all nodes.
17+
- `repset-diff` reports asymmetric repset membership when a table is in the repset on some nodes but not others.
1518

1619
### Fixed
1720
- `repset-diff` was not working. Fixed and added tests.
1821
- `schema-diff --skip-tables` now actually filters tables. Schema-qualified names (e.g. `myschema.mytable`) are also accepted; the schema prefix is validated against the target schema and stripped for matching.
1922
- Replication origin LSN lookup rewritten to join through `spock.subscription` and `spock.node` instead of a broken LIKE pattern that never matched.
2023
- `executeUpserts` no longer calls `resetReplicationOriginSession` before `tx.Commit()`, which was clearing the origin from WAL commit records.
2124
- Unexpected scheduler exit in the SIGHUP reload loop is now handled gracefully.
25+
- `schema-diff` and `repset-diff` silently excluded tables that failed during per-table comparison (e.g. missing primary key). Failed tables now appear in the summary with the error reason, and the task status is set to FAILED.
2226

2327
## [v1.6.0] 2026-02-25
2428

0 commit comments

Comments
 (0)