@koda-sl/baker-cli 0.321.0-dev.2d7a8f01b → 0.321.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -6240,7 +6240,7 @@ Pushing to `main` with changes in `packages/cli/` triggers the GitHub Actions wo
|
|
|
6240
6240
|
|
|
6241
6241
|
- **0.291.0**: **the image handover Task no longer depends on having uploaded the images.** It was built only from staged `asset.create` image ops, so a Session that audited a live account — found the brand campaign carrying 22 image extensions and the generic one carrying none, and reached for `assets attach` on assets that were *already in the library* — got Google's refusal and nothing else: no upload to hang a Task on, and a CLI hint telling the agent not to raise one by hand because "Baker stages it itself". The one step only the user can take reached them as a sentence in a chat that scrolls away. An image `assets attach` is now **skipped rather than refused**: it still never reaches Google (re-verified live with `validate_only` on v23 *and* v25 against 3865083115, against a control op that validates clean in the same request — `AD_IMAGE` → `UNSUPPORTED_FIELD_TYPE` at customer and campaign level, `MARKETING_IMAGE` → `FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE`, `BUSINESS_LOGO` → `CUSTOMER_NOT_VERIFIED`, which is what proves the field type is the objection; **we are not on Google's allowlist for it**), but the skip carries the image and campaign names, recorded on the draft so the next staged op cannot recompute the Task away, and a batch that also carries sitelinks keeps them instead of failing whole. The schema stopped refusing the field type for the same reason: a boundary refusal has no chat to record a handover against.
|
|
6242
6242
|
|
|
6243
|
-
- **0.
|
|
6243
|
+
- **0.321.0**: an ad with an avatar and cutaways stopped dubbing over her. Whether the video model voices a beat itself is now decided **per beat** — it was one switch for the whole ad, so a single `cast: false` cutaway sent HER beats down the dubbed path too, and the default video model always renders audio: her clip spoke her line while an ElevenLabs narrator read the same script over the top, lips matching neither and the timing matching nothing. Her beats keep their own audio, only the beats she is not in are read, and the ad declares `mixed` — the engine's own word for a video with on-camera lines and narrated ones, which also stops the mislabelled-blueprint safety net folding the narrator into her and merging the beats between them into one take. Two fixes to the closing card, both found by rendering it: the panel behind the mark **adapts to the mark**, measured off the file rather than guessed from its name, so a white logo no longer renders as an empty white box in the corner and again 300px tall on the card; and the CTA button is no longer painted in the palette's dominant hex, which is the colour the plate it sits on is filled with — brand-on-brand, invisible as a button, its white copy reading as one more line of the captions below it. The captions themselves are now **cleared off the closing card**, where what they captioned was the line spoken over it: the call to action, printed a second time under the button that already says it.
|
|
6244
6244
|
|
|
6245
6245
|
Review follow-ups. **`pickBrandMark` was choosing the wrong file**, which is what made the white mark reachable at all: `\blogo\b` matches `logo-dark.svg` exactly as well as `logo.svg`, so the two tied and the tie broke alphabetically — and `-` sorts before `.`. The variant list now holds `dark`/`light` and their Spanish equivalents (`blanco`, `negativo`, `oscuro`, …), which no client repo's naming was covered by before, and ties break on the shorter name so an unlisted qualifier still loses. **The button's colour is computed against the plate**, not fixed: a near-black pill is the mirror of the bug it replaced on the black plate an ad with no palette gets (and `#14181f` is a legal brand hex), so the fill is the opposite of whatever the plate's luminance says. And **the narrator is cast off the person the ad cast** when no voice is described — naming a narrator of our own lost the fold that used to hand the closing line the presenter's own persona, and the engine's last-resort brief for a speaker in nobody's `cast` is the literal `"ad_narrator voice"`. With `--avatar` that fallback reads the avatar's own subject, persona and speech, which is the case that matters: casting somebody with the flag leaves `cast.description` empty.
|
|
6246
6246
|
|
|
@@ -17,9 +17,9 @@ import {
|
|
|
17
17
|
shouldEscalate
|
|
18
18
|
} from "./chunk-UIQJZGBG.js";
|
|
19
19
|
|
|
20
|
-
//
|
|
20
|
+
// ../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js
|
|
21
21
|
var require_safe_stable_stringify = __commonJS({
|
|
22
|
-
"
|
|
22
|
+
"../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js"(exports, module) {
|
|
23
23
|
"use strict";
|
|
24
24
|
var { hasOwnProperty } = Object.prototype;
|
|
25
25
|
var stringify = configure2();
|
|
@@ -1111,7 +1111,7 @@ function resolveAdaptFormats(params) {
|
|
|
1111
1111
|
return params.formats ?? [];
|
|
1112
1112
|
}
|
|
1113
1113
|
|
|
1114
|
-
//
|
|
1114
|
+
// ../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/esm/wrapper.js
|
|
1115
1115
|
var import__ = __toESM(require_safe_stable_stringify(), 1);
|
|
1116
1116
|
var configure = import__.default.configure;
|
|
1117
1117
|
var wrapper_default = import__.default;
|
|
@@ -9666,4 +9666,4 @@ export {
|
|
|
9666
9666
|
defaultRegistry,
|
|
9667
9667
|
createEngineFromEnv
|
|
9668
9668
|
};
|
|
9669
|
-
//# sourceMappingURL=chunk-
|
|
9669
|
+
//# sourceMappingURL=chunk-WHUKLAGW.js.map
|