Skip to content

feat(ledger): list_report_shares — where a report went, with revocation state - #274

Merged
jfrench9 merged 1 commit into
mainfrom
feature/report-shares
Oct 21, 2026
Merged

jfrench9 merged 1 commit into
mainfrom
feature/report-shares

Conversation

@jfrench9

Copy link
Copy Markdown
Member

Summary

list_report_shares: the sender's read of where a report went — each recipient graph, when, by whom, how many facts it received, and whether the share was revoked. It is the record behind share_report / revoke_report_share that roboledger-app's revoke picker has had to guess from publish-list membership. Regenerated against the local stack on robosystems bugfix/report-share-visibility (robosystems #1913); the reportShares field waits on the robosystems release that carries that PR — the next after v1.19.6. A server without it answers the query with a validation error, so nothing calls the new method until that deploy.

Changes

  • Facade (clients/ledger_client.py): list_report_shares(graph_id, report_id=None, include_revoked=False, limit=100, offset=0) beside revoke_report_share, returning the typed page (report_shares + pagination). report_id omitted is the graph's whole distribution log; revoked rows stay out unless include_revoked is set, since a recipient shared to, revoked, and shared to again legitimately has one revoked row and one live. Sync path only, as the other GraphQL reads on this facade.
  • Operation document graphql/operations/ledger/ListLedgerReportShares.graphql, and its ariadne-codegen models in graphql/generated/list_ledger_report_shares.py (plus the generated registry files).
  • Schema snapshot graphql/schema.graphql: the only drift since v2.26.1 is the new reportShares field and its two types (ReportShareList, ReportShare).
  • Tests: the page is unwrapped with each share's revocation state and the variables sent as given; the defaults (no report, live shares only).

Compatibility

ADDITIVE — a new facade method and new generated models; nothing existing changed.

Testing

just test-all equivalent run in full: pytest (718 passed, 17 skipped), ruff check, ruff format --check, basedpyright — all clean. just refresh-schema and just generate-graphql ran against the local stack serving the robosystems branch.

…on state

The sender's read behind share_report and revoke_report_share: each
recipient graph, when, by whom, how many facts, and whether the share was
revoked. report_id narrows to one report; omitted, the list is the graph's
distribution log. Revoked rows stay out unless include_revoked is set.
Schema snapshot refreshed for the reportShares field (robosystems #1913).
@jfrench9
jfrench9 merged commit 8b29d5c into main Oct 21, 2026
6 checks passed
@jfrench9
jfrench9 deleted the feature/report-shares branch October 21, 2026 23:26
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.

1 participant