Skip to content

pm get --json silently omits the body field (no --include-body equivalent; --fields body doesn't recover it) #252

Closed

Description

@unbraind

Summary

pm get <id> --json silently omits the item's body field, even when the body is non-empty. There is no flag to recover it (--fields body does not work), and --include-body only exists on pm list, not pm get. TOON output shows the body correctly, so this is a JSON-output-specific omission.

This is surprising because get is the canonical "show full item details" command, yet it drops body while including the comparable description and acceptance_criteria fields.

Repro (extension-free clean tracker)

pm init hunttest --pm-path /tmp/hunt
P="--pm-path /tmp/hunt --no-extensions"
X=$(pm create $P --type Task --title "BodyTest" --body "DIRECT BODY CONTENT" --author test --json | jq -r .item.id)
pm update $X $P --description "THE DESC" >/dev/null 2>&1

# raw file HAS the body
grep -i 'body:' /tmp/hunt/tasks/$X.toon        # => body: "DIRECT BODY CONTENT"

# TOON get SHOWS the body
pm get $X $P | grep -i body                     # => body: "DIRECT BODY CONTENT"

# JSON get OMITS body, but includes description
pm get $X $P --json | jq '.item | {has_body: (has("body")), body: .body, has_description: (has("description")), description: .description}'
# => { "has_body": false, "body": null, "has_description": true, "description": "THE DESC" }

# no flag recovers it
pm get $X $P --json --fields body | jq '.item.body'   # => null

Expected

pm get <id> --json includes body (as it does in TOON), OR exposes an --include-body flag like pm list does.

Actual

body is always absent from the JSON item object, even when set/non-empty. description (also long-form text) IS included, so the omission is inconsistent.

Impact

Agents/automation that read item details via pm get --json cannot access the body — a silent data-omission in the primary detail command. pm list --include-body works, proving the data is available; get simply lacks parity.

Environment

  • pm 2026.6.13
  • reproduced with --no-extensions in a clean tracker (pm init hunttest) — not caused by custom extensions

Note

Related but distinct from #223 (which was about pm list --json and is closed). This is the pm get command.

Activity

  1. unbraind commented on Jun 16, 2026

    @unbraind
    OwnerAuthor

    Shipped in #255 (merged to main).

  2. unbraind commented on Jul 11, 2026

    @unbraind
    OwnerAuthor

    pm tracker item:

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