Safer Braze and Stripo writes, batch image upload, and five calculator fixes
0.27.6 works through the write-path audit queue from the last release — the tools that create, update, or delete in Braze and Stripo now carry the overwrite-protection and idempotency checks that were flagged as missing. Two tools get more useful on their own terms: orbit_upload_images_to_braze takes a list of images in one call instead of one upload per round-trip, and orbit_get_stripo_email gains a body_mode switch so you can pull just the subject and structure of a large email without the full HTML weighing down the response. Setup messages that told Windows users to do something Mac-only now say the Windows equivalent. Five calculators had correctness bugs fixed — a contrast checker, an LTV warning threshold, a break-even case, a Liquid loop false-flag, and an ecommerce rate that could exceed 100%. Eight of the fixes and patterns from this cycle went back into the stripo-email-builder, braze-canvas-qa, and braze-claude-in-chrome-build skills so the same mistakes don't resurface. 407 tests pass.
What shipped
•Safer writes — the audit items from 0.27.5 are fixed. Tools that create, update, or delete Braze and Stripo records now carry the overwrite-protection and idempotency checks that were flagged as missing, so a repeated or retried call is less likely to duplicate, clobber, or silently skip a write than it was before this release.
•Windows-aware setup messages — several setup and diagnostic messages assumed a Mac ("quit and reopen Claude Code" only made sense if you knew the Mac shortcut). Those messages now detect the platform and give the Windows-equivalent instruction alongside the Mac one, so Windows users aren't left translating Mac steps in their head.
•orbit_upload_images_to_braze batches — the tool now accepts images_json, a list of images to upload in one call, instead of requiring one call per image. Uploading a set of hero images or icons for a program no longer means round-tripping the tool once per file.
•orbit_get_stripo_email gets a body_mode switch — pass full (the default, unchanged), omit to skip the HTML body entirely, or grep to search the body for a pattern and get back only the matching context. Useful on large emails where you need to confirm a subject line, a Liquid tag, or a structural detail without pulling the whole rendered HTML into the conversation.
•Five calculator fixes — a contrast checker that mis-inherited a foreground colour, an LTV calculator that didn't warn below a 1% sub-rate where the maths gets unstable, a break-even calculator that mishandled a collapsed input case, a Liquid syntax checker that false-flagged a valid loop variable, and an ecommerce calculator that could report a rate above 100% instead of clamping it.
•Skill learnings folded in — eight patterns discovered this cycle were written back into stripo-email-builder, braze-canvas-qa, and braze-claude-in-chrome-build, so the next run starts from the corrected protocol rather than rediscovering the same trap.