Skip to content

Fix the missed reconciling-item rename; surface obligation detail - #172

Merged
jfrench9 merged 1 commit into
mainfrom
refactor/reconciling-item-regen
Aug 7, 2026
Merged

Fix the missed reconciling-item rename; surface obligation detail#172
jfrench9 merged 1 commit into
mainfrom
refactor/reconciling-item-regen

Conversation

@jfrench9

@jfrench9 jfrench9 commented Aug 7, 2026

Copy link
Copy Markdown
Member

Regenerated against main with RoboFinSystems/robosystems#1072 in it.

The rename 1.3.0 missed

1.3.0 shipped payload_drift on EventBlockEnvelope — the name #1072 retired — 27 minutes after the rename merged to main. The cause isn't a race, it's a property of how this SDK is built: generation reads whatever the local stack is serving, not main. 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 EventBlockEnvelope and in the schema.graphql snapshot.

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 ^HEAD before generating. A restarted stack reads as "current" while being current only with your own branch.

Obligation detail on the fiscal calendar

GetLedgerFiscalCalendar now selects what the API has carried since RoboFinSystems/robosystems#1071 but no client could reach.

blockers told a caller a close was held; it could not say by what. A close blocked on stranded_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, and syncStaleDays.

Selected unconditionally rather than behind a second query — the resolver returns 0 / [] / null when 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 with just generate-graphql and committed, so the CI gate that re-derives models from schema.graphql + operations/*.graphql stays 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-all green — 519 passed, 17 skipped; ruff check + format clean; basedpyright 0 errors.

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.
@jfrench9
jfrench9 merged commit 65cabd8 into main Aug 7, 2026
1 check passed
@jfrench9
jfrench9 deleted the refactor/reconciling-item-regen branch August 7, 2026 07:04
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