#3155·emdash

skills/emdash-cli: EDITING-FLOW.md shows 409s as an EmDashApiError dump with status/code; the CLI prints only the message

Author: cyfaceCreated Sep 16, 2026Updated Sep 16, 2026
Labelsbot:needs-attentionbot:task

Description

Docs-only, in skills/emdash-cli/EDITING-FLOW.md. Both § Conflict Handling and § Locked Entries show a refused content update as an error object:

EmDashApiError: Ada is holding this entry
  status: 409
  code: ENTRY_LOCKED

and § Locked Entries then says "Check code before you retry."

The CLI never prints that. Every content command in packages/core/src/cli/commands/content.ts catches the error and runs consola.error(error instanceof Error ? error.message : "Unknown error") then process.exit(1) (same on current main). So the real output for a lock is one line:

 ERROR  Ada is holding this entry

and a version conflict prints only its message the same way. At the CLI the message text is the only thing that distinguishes a lock from a conflict, and the "check code" advice cannot be followed. A script that needs code has to call the REST API.

Expected: the skill shows the CLI's actual one-line output for both 409s, and says that code is only visible on the REST API. The docs site is already right about this: reference/cli describes the 409s in prose ("returns 409 with code ENTRY_LOCKED and a message that names the holder") with no error-object example, so only the skills/ copy has drifted.

Steps to reproduce

  1. Open an entry in the admin as user A (edit locking on, the default) and leave it open.
  2. As user B, from a terminal with a valid token: emdash content update <collection> <id> --rev <rev> --data '{"title":"x"}' --url http://localhost:4321
  3. stderr is ERROR <A's name> is holding this entry, exit code 1. No status, no code.
  4. Compare with skills/emdash-cli/EDITING-FLOW.md § Locked Entries, which shows an EmDashApiError block with status: 409 / code: ENTRY_LOCKED.

Environment

  • emdash version: 0.38.0 (and packages/core/src/cli/commands/content.ts on main at filing time)
  • Node.js version: v24.16.0
  • Runtime: Cloudflare Workers (astro dev locally)
  • OS: macOS

Screenshots

Not applicable.

Logs / error output

bash
$ emdash content update cards <id> --rev <rev> --data '{…}' --url http://localhost:4321
 ERROR  Probe Editor is holding this entry
$ echo $?
1