Skip to content

feat(ledger): schedule facade takes custom curves, loans, preview, and an edited definition - #279

Merged
jfrench9 merged 1 commit into
mainfrom
feature/schedule-curves-facade
Oct 22, 2026
Merged

jfrench9 merged 1 commit into
mainfrom
feature/schedule-curves-facade

Conversation

@jfrench9

Copy link
Copy Markdown
Member

Summary

The schedule operations grew in robosystems v1.20.0 (deployed 2026-10-22): custom curves, loan amortization (effective_interest, with loan_terms and the entry's legs), preview-schedule, and rebuild-schedule taking an edited definition. 2.31.0 regenerated the generated tier for all of it, but the facade still took the straight-line shape only. This closes that gap, in step with the TypeScript client (RoboFinSystems/robosystems-typescript-client#295):

  • create_schedule carries the whole definition: method (straight_line / custom / effective_interest), periodic_amounts, loan_terms, the entry's legs and dimension_ids. monthly_amount is now optional (required only for straight-line, which the server enforces).
  • preview_schedule runs the generator without keeping it: the provisional envelope, the roll-forward (with a loan's interest, payment, principal, current portion), the overlap warnings, and with replaces_structure_id what the schedule being edited has posted and whether the change is a rebuild or terminate_and_succeed.
  • rebuild_schedule takes the definition fields, which is how a schedule is saved back while nothing has posted. The old (graph_id, structure_id, idempotency_key=...) call is unchanged.

Generated tier untouched. A client minor (additive facade surface); none of the integration template's imports move.

Test plan

  • create_schedule sends a custom curve without monthly_amount, and a loan's terms and legs
  • preview_schedule forwards replaces_structure_id and sends only what was set
  • rebuild_schedule sends only the definition fields given
  • full gate green locally: ruff, format, basedpyright, 731 tests

🤖 Generated with Claude Code

…d an edited definition

`create_schedule` carries the whole definition the operations take since
robosystems v1.20.0: `method` (`straight_line` / `custom` /
`effective_interest`), `periodic_amounts`, `loan_terms`, the entry's
`legs` and `dimension_ids`; `monthly_amount` is optional, required only
for straight-line. `preview_schedule` runs the generator without keeping
it and returns the roll-forward, the warnings and, with
`replaces_structure_id`, what the schedule being edited has posted.
`rebuild_schedule` takes the edited definition, which is how a schedule is
saved back while nothing has posted. Generated tier unchanged (2.31.0
already carried the operations).

Claude-Session: https://claude.ai/code/session_01WaJSHXWM1Lnpdrf5P7wiYW
@jfrench9
jfrench9 merged commit 937f1f9 into main Oct 22, 2026
6 checks passed
@jfrench9
jfrench9 deleted the feature/schedule-curves-facade branch October 22, 2026 18:38
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