]> Untitled Git - bdk-cli/commit
Merge bitcoindevkit/bdk-cli#389: refactor: drop cli-table, payjoin history as JSON master github/master
authormerge-script <m@vaan.io>
Sat, 14 Nov 2026 05:59:46 +0000 (09:59 +0400)
committermerge-script <m@vaan.io>
Sat, 14 Nov 2026 05:59:46 +0000 (09:59 +0400)
commitea066795da1d4c15c7686f31cfc16d27750fafe3
tree4b20916c2d708098f0a614ba5d5a3d5c676b7034
parent546e73293f393807f833ae1050cd9e87c5ce1a90
parenteb9536d43ec01b04e572947fdbab7c3a943a1105
Merge bitcoindevkit/bdk-cli#389: refactor: drop cli-table, payjoin history as JSON

eb9536d43ec01b04e572947fdbab7c3a943a1105 ci: make tracing optional, drop cli-table (Vadim Anufriev)
22a01a38094197613b5c9213e71783998ffd87d5 refactor(payjoin): return session history as JSON (Vadim Anufriev)

Pull request description:

  ### Description

  The `--no-default-features` build and clippy jobs are red on every open PR, including Markdown-only ones (#386, #387). `cli-table`, `tracing` and `tracing-subscriber` are unused there, and recent cargo flags that ([`unused_dependencies`](https://doc.rust-lang.org/cargo/reference/lints.html#unused_dependencies), warn by default) while the workflow passes `build-warnings: deny`.

  `cli-table` is dropped entirely, as @tvpeter suggested: its last user, the payjoin session history, now returns JSON like the rest of the module.

  `payjoin history` on `master`:

  ```
  +------------+-----------------+---------------------+-------------------------------+
  | Session ID | Sender/Receiver | Completed At        | Status                        |
  +------------+-----------------+---------------------+-------------------------------+
  | 1          | Receiver        | Not Completed       | Waiting for original proposal |
  +------------+-----------------+---------------------+-------------------------------+
  | 2          | Receiver        | 2026-11-13 17:50:42 | Session cancelled             |
  +------------+-----------------+---------------------+-------------------------------+
  ```

  and on this branch:

  ```json
  {
    "sessions": [
      {
        "id": "1",
        "role": "Receiver",
        "status": "Waiting for original proposal",
        "completed_at": null
      },
      {
        "id": "2",
        "role": "Receiver",
        "status": "Session cancelled",
        "completed_at": "2026-11-13 18:34:22"
      }
    ]
  }
  ```

  ### Notes to the reviewers

  An active session now reports `"completed_at": null` instead of the string `Not Completed`.

  `tracing` is on `cbf` explicitly, although `cbf` already implies `_payjoin-dependencies`, so cbf logging does not depend on a payjoin-internal feature.

  `just pre-push` misses this: the lint is cargo's, not rustc's, so `-D warnings` after `--` does not apply. To reproduce: `cargo build --no-default-features --config 'build.warnings="deny"'`.

  The `SessionHistory` wrapper exists to keep the field order: serializing it directly preserves declaration order, while `json!` would sort the keys alphabetically.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  tvpeter:
    ACK eb9536d43ec01b04e572947fdbab7c3a943a1105

Tree-SHA512: 556923b5466720ea21dca4a7d4a5798e48cf2b317db0fbab68b3b94e20d6b822edab3d57c2a12e97f4b5c90e52ea727ba3770eb952da30423a26958d69a6e5d5