Bumps the serde-core dep from 0.1.3 to 0.1.4, which fixes the encoder side of JSON.fromCandid to escape \, the named control short-forms (\b \f \n \r \t), and remaining U+0000..U+001F via \u00XX per RFC 8259 §7.
Why it matters
Previously, every #Text Candid field was wrapped in quotes with only " escaped — leaving \, newlines, tabs, and other control chars to pass through as raw bytes. Any user prompt containing a backslash, multi-line text, or a code block produced invalid JSON, and OpenAI rejected with HTTP 400 "we could not parse the JSON body".
The most insidious failure mode wasn't the first turn (where users often type single-line text) but the second turn: assistant replies routinely contain \n, \t, \\, and " (markdown, code blocks, multi-line answers). The canister stored the assistant reply, then re-included it in the next request's messages array — where the unfixed encoder broke the JSON. Every multi-turn chat surface eventually hit it.
What changed in this package
Just the serde-core pin in mops.toml (0.1.3 → 0.1.4). No public API changes; the fix is entirely transitive.
Companion
The serde-core 0.1.4 fix is itself a band-aid. The architectural root fix lives at aviate-labs/json.mo#9, which patches JSON.show directly so every consumer benefits and object keys are also escaped. Once that lands and serde-core's submodule pin updates, we'll cut serde-core 0.1.5 and rev openai-client to pick it up transitively.