a215cd3 fix(billing): cap metering batch size to 500 6ecd72a test(integration): api contract tests against fixtures c4ddbd2 fix(utils): logger drops circular references safely 3d51ee1 feat(billing): credit notes for refund flows 0ce7a54 chore: prettier + eslint config alignment 01a008f fix(ui): Modal scroll lock on iOS Safari 02b93f2 feat(api): conditional requests with ETag support 9bf6e8c docs(api): OpenAPI examples for error envelope 775d8e9 fix(auth): session fixation on privilege elevation 47e957f refactor(utils): consolidate validation error shapes