mirror of
https://github.com/larksuite/cli.git
synced 2026-08-03 08:32:46 +08:00
Review of the aggregate diff turned up nine places where the surface did not do what this PR says it does. Each is small; the theme they share is that a prescription pointed somewhere the caller could not follow. Contradictions with this PR's own retirements: - The six --frozen-* unknown-flag hints prescribed --dimension row --count N. Those flags are hidden from --help, so the hint named a flag missing from the valid-flags list printed beside it, and following it earned a deprecation note steering back. They now prescribe --rows / --cols, as does the "nothing to freeze" error. - A Sheet! range prefix was only stripped when the styles item carried a name. +workbook-create --values items need none, so row_sizes like "Sheet1!2:3" still failed there as a malformed range — the exact bug this PR reports as fixed across all three --styles carriers. Stripping is now unconditional; only the "names a different sheet" report needs a name to compare against. - Two +dim-freeze sub-ops in one batch cancel each other, and only the CLI can see it (a batch cannot read current state, and +styles-put is not batchable). Per-op "equivalent to --rows 1" notes never said so. A collision note now names the colliding ops, the state actually reached, and the single sub-op that holds both axes. dimFreezeAxes/dimFreezeSpelling became the shared mapping so the request body, the deprecation note and this one cannot drift. - +dim-insert with --inherit-style omitted sent no `side`, so "omitting is the same as after" held only if the backend happened to default it to before — and if it defaulted to after, the insert would land on the wrong side of --position, silently breaking the command's stated contract. It is now sent explicitly; TestDimInsertOmittedMatchesAfter pins the two bodies together. Errors that misdescribed themselves: - "resend only operations[N:]" was emitted for every batch_update caller, but only +batch-update's array is caller-written. +styles-put coalesces and +dim-delete --ranges deliberately re-sorts descending, so the index names nothing the caller can locate. Those callers now get a read-back procedure. - A sub-op carrying both an alias and its target (size + width on +cols-resize) was reported as an unknown input key: the alias branch fell through, and the conflict check never fired because keys are walked in sorted order and "size" sorts first. Identical values now drop the alias; differing ones name both spellings. - Folding per-item failures into one error dropped each inner Hint, so the more mistakes a payload had, the less guidance it got — including the +workbook-info pointer this PR had just added. A lone issue inherits the hint; a folded list inlines each. - --max-chars 0 sent no cap, which makes the read tool apply its own ~50000 fallback: asking for no limit produced the smallest one. It now resolves to the same ceiling as leaving the flag alone. Also: --inherit-style before anchors one row/column earlier, so its dry-run showed a position the caller never typed; a note explains it is not an off-by-one. The style vocabulary now walks sorted keys everywhere, since every one of those loops can abort and map order decided which of several bad fields got reported.