Skip to content

feat(sdk,cli)!: public payout runs and anchor exports without run ids or CIDs (SDK 0.19.0, CLI 3.2.0) - #271

Merged
M0nsxx merged 2 commits into
mainfrom
fix/public-payout-runs-no-cid
Nov 9, 2026
Merged

M0nsxx merged 2 commits into
mainfrom
fix/public-payout-runs-no-cid

Conversation

@Eras256

@Eras256 Eras256 commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

Client side of a change that is already live on the nodes (nirium-core-private, deployed 9 Nov 2026): the public payout-run history and the Reporting export no longer return run ids or IPFS CIDs, because a receipt belongs to whoever made it and /verify promises those are not listed openly.

  • SDK 0.19.0 (breaking for TypeScript): new PublicPayoutRun type; getPayoutRuns() returns amount, asset, recipient count and tx hash, without runId or cid. submitPayout() is unchanged and still returns the caller's own run id and CID. The Python docstring is updated, with no code change.
  • CLI 3.2.0 (breaking): report export anchors prints <anchored_at> <network> per line and never a CID, even if an older node sends one. report summary shows last: YYYY-MM-DD. README updated.

Tests: report.test.js passes 15/15. The full CLI suite is 101/107. The 6 failures are stdin/TTY tests (config-secret, anchor-sign, serve-api-key), and they fail the same way on main in this Windows environment, checked by running them against origin/main.

Not published yet: after merge, publish nirium@0.19.0 and nirium-cli@3.2.0. The live nodes already send the new shape, so the published 0.18.0 / 3.1.1 still work, but they print fields that are now missing.

🤖 Generated with Claude Code

Eras256 and others added 2 commits November 8, 2026 17:41
…d or CID

The node's public GET /api/payroll/runs stops returning runId and the IPFS
receipt cid (nirium-core-private, decided 8 Nov 2026): a run's receipt is
the paying company's evidence, so the public history keeps only what is
already public on-chain - amount, asset, recipient count and tx hash.

- New PublicPayoutRun type; getPayoutRuns() returns { runs: PublicPayoutRun[] }.
  Breaking for TypeScript code that read runId or cid from it, hence 0.19.0.
- submitPayout() is unchanged and still returns the caller's own runId/CID.
- Python get_payout_runs() docstring updated (it returns a dict; no code
  change, no version bump needed).
- CHANGELOG entry under 0.19.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The node's public Reporting export stops returning CIDs and payroll run ids
(nirium-core-private, decided 8 Nov 2026): an anchor's CID belongs to
whoever made it, and /verify promises those are not listed openly.

- `report export anchors` prints `<anchored_at>\t<network>` per line and
  never a CID, even if an older node still sends one. Piping it into
  `nirium verify` no longer applies; README updated.
- `report summary` shows `last: YYYY-MM-DD` from lastAnchoredAt, falling
  back to `latest: <cid>` for older nodes.
- report.test.js: 15/15 pass. Full suite: 101/107, the same 6 stdin/TTY
  tests that already fail on Windows without this change.
- Version 3.2.0 (output format change), CHANGELOG entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Eras256
Eras256 requested a review from M0nsxx as a code owner November 9, 2026 08:36

@M0nsxx M0nsxx left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed #271. SDK 0.19.0 and CLI 3.2.0 match what the live nodes already return: /api/payroll/runs is {"runs":[...]} without runId or cid, the Reporting export has no cid column, and the summary sends lastAnchoredAt. report.test.js passes 15/15; the 6 stdin/TTY failures happen the same way on main. Approving.

@M0nsxx
M0nsxx merged commit 428fad7 into main Nov 9, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants