Fix the missed reconciling-item rename; surface obligation detail - #172
Merged
Conversation
Regenerated against main with #1072 in it. The 1.3.0 release missed that rename: the SDK generates from whatever the local stack serves, and that stack was running a branch cut before #1072 merged — so 1.3.0 shipped `payload_drift` twenty-seven minutes after `is_reconciling_item` landed on main. This corrects it, on `EventBlockEnvelope` and in the schema snapshot. The rename touches generated internals only; no facade signature exposed the field, so nothing consumer-reachable changes — additive minor. `GetLedgerFiscalCalendar` now selects the obligation detail the API has carried since #1071. `blockers` said a close was held; it couldn't say by what. The query adds `pendingObligationCount` / `strandedObligationCount`, their up-to-5 samples (schedule id + name + period), `earliestPendingPeriod` and `syncStaleDays`, so a caller can name the schedules holding the close instead of reporting that something is. Selected unconditionally — the resolver returns 0 / [] / null when the blocker is inactive. `generated/` regenerated in step so the CI drift gate stays clean. Test fixture gains the new required fields, plus a case covering a blocked calendar — the shape that motivated the fields.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Regenerated against
mainwith RoboFinSystems/robosystems#1072 in it.The rename 1.3.0 missed
1.3.0 shipped
payload_driftonEventBlockEnvelope— the name #1072 retired — 27 minutes after the rename merged tomain. The cause isn't a race, it's a property of how this SDK is built: generation reads whatever the local stack is serving, notmain. The stack was running a branch cut before #1072 landed, and restarting it faithfully rebuilt that branch. Merging upstream changed nothing about what the container served.Corrected here on
EventBlockEnvelopeand in theschema.graphqlsnapshot.Not a break. The rename touches generated internals only — no facade signature or documented model exposed the field, so no consumer code changes. Per the versioning policy that makes this additive: a minor.
The lesson worth keeping:
git log origin/main ^HEADbefore generating. A restarted stack reads as "current" while being current only with your own branch.Obligation detail on the fiscal calendar
GetLedgerFiscalCalendarnow selects what the API has carried since RoboFinSystems/robosystems#1071 but no client could reach.blockerstold a caller a close was held; it could not say by what. A close blocked onstranded_obligations— matured obligations that were promoted but never drafted, so closing would silently omit those adjusting entries — surfaced as a bare code with no way to find the schedules responsible.Added:
pendingObligationCount/strandedObligationCount, their up-to-5 samples (eventId,scheduleId,scheduleName,period),earliestPendingPeriod, andsyncStaleDays.Selected unconditionally rather than behind a second query — the resolver returns
0/[]/nullwhen the blocker is inactive, so it costs nothing in the common case and saves a round trip in the case that matters.Drift gate
generated/regenerated withjust generate-graphqland committed, so the CI gate that re-derives models fromschema.graphql+operations/*.graphqlstays clean.The existing fiscal-calendar test fixture needed the six new required fields; added alongside it is a case for a blocked calendar carrying a named stranded obligation — the shape the fields exist for, which the passing fixture didn't cover.
Verification
just test-allgreen — 519 passed, 17 skipped; ruff check + format clean; basedpyright 0 errors.