Skip to content

pm create / update accept empty --title (data-integrity gap vs required-title enforcement) #533

Closed

Description

@unbraind

Summary

An item title is required when the `--title` option is omitted (create errors with "Missing required option --title"), yet an explicit EMPTY string `--title ""` is accepted silently for both `create` and `update`. This produces title-less items that render meaninglessly in lists/UI and breaks downstream tooling that keys off titles.

Steps to reproduce

```bash
pm init --path /tmp/t && cd /tmp/t
pm create --type Task --title "" --path /tmp/t # succeeds, creates item with title: ""
pm update --title "" --path /tmp/t # succeeds, clears title to ""
pm create --type Task --path /tmp/t # correctly errors: Missing required option --title
```

Expected

If a missing `--title` is an error, an empty `--title ""` should be treated the same (rejected as empty/invalid), keeping the "required" contract consistent between the omitted and empty cases.

Actual

`--title ""` is accepted (exit 0) and persisted as an empty string; only the fully-omitted case is enforced.

Environment

pm version: 2026.7.12, OS: linux, node: v25.9.0

Suspected area

`create` / `update` title option coercion (empty-string not treated as missing/invalid).

Activity

  1. coderabbitai commented on Jul 13, 2026

    @coderabbitai
    🔗 Related PRs

    #40 - Never block agents: close-via-update, semantic fallback, create form, calendar --date crash [closed]
    #51 - Polish CLI ergonomics, delete safety, and templates dedup [closed]
    #198 - Expand SDK context and mutation primitives [closed]
    #434 - Fix self-parent guards and pnpm 11 bootstrap gates [merged]
    #499 - Harden SDK schema-driven input fidelity and package preflight [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. unbraind commented on Jul 13, 2026

    @unbraind
    OwnerAuthor

    pm tracker item: pm-7je0

  3. added a commit that references this issue on Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions