Skip to content

Was it a design decision to not give default columns id's? #202

Closed

Description

@AvidDabbler

I am building pfm and it is a framework to allow my agent to create and track prds locally in md files.
When I pull the cards the cards in Maybe come back with empty id's and name's. Seems like this might be tied to the fact that they are default columns using non-uuid's.

So is this a feature, bug or does it GO ALL THE WAY TO THE TOP?

EDIT:
Looking further into this. I did a test where I moved the card from maybe to prd.

if you do this and monitor https://app.fizzy.app/1/cards/216.json if the card is in maybe the column key is undefined and populates on column change. So I guess this confirms this is an API issue not a CLI issue.

I have opened up the discussion here basecamp/fizzy#2596

Image
$ fizzy column list --board 03gllis4fqpsod45szjmzxhym --json

{
  "ok": true,
  "data": [
    {
      "id": "not-now",
      "kind": "not_now",
      "name": "Not Now",
      "pseudo": true
    },
    {
      "id": "maybe",
      "kind": "triage",
      "name": "Maybe?",
      "pseudo": true
    },
    {
      "cards_url": "...",
      "color": {
        "name": "Blue",
        "value": "var(--color-card-default)"
      },
      "created_at": "2026-08-01T03:27:29.340Z",
      "id": "03gllis5bhiq287m3pow7x1k8",
      "name": "PRD"
    },...

$  fizzy column list --board 03gllis4fqpsod45szjmzxhym
10 columns

ID                        Name
──────────────────────────────────────
not-now                   Not Now
maybe                     Maybe?
03gllis5bhiq287m3pow7x1k8 PRD
03gllis5z6lonr6c9ta0mnstj Ready
03gllis6lig0q2dhervvytj46 Design
03gllis7a9wmig83ecptupp81 Blocked
03gllis7yvq9loz1347ekk6ck Development
03gllis8nc5j98r6bd37mn1qt Review
03gllis9afg8l6p7wo4v5pv5q Testing
done                      Done


$ fizzy column list --board 03gllis4fqpsod45szjmzxhym --json

{
  "ok": true,
  "data": [
    {
      "board": {
        "all_access": true,
        "auto_postpone_period_in_days": 30,
        "created_at": "2026-08-01T03:27:29.131Z",
      ...
      "closed": false,
      "column": {
        "created_at": "",
        "id": "", <--- Missing id
        "name": ""  <--- Missing name
      },
      "comments_url": "...",
      "created_at": "2026-08-01T19:04:41.481Z",
      "creator": {
        "active": true,
        "avatar_url": "...",
        "created_at": "2026-05-10T18:00:43.537Z",
        "email_address": "",
        "id": "03g3ppo6jr9vzt51t0d9r44nt",
        "name": "Walter Jenkins",
        "role": "owner",
        "url": "..."
      },
      "golden": false,
      "has_attachments": false,
      "id": "03glqluyqfaddp7ktbdq66dg1",
      "last_active_at": "2026-08-01T19:04:55.637Z",
      "number": 216,
      "postponed": false,
      "reactions_url": "...",
      "status": "published",
      "title": "waffles",
      "url": "..."
    },

Activity

  1. changed the title [-]Was it a design decision to not give default columns id's[/-] [+]Was it a design decision to not give default columns id's?[/+] on Aug 1, 2026
  2. jeremy commented on Sep 9, 2026

    @jeremy
    Member

    It's an outcome of the data model rather than a choice to withhold ids. In Fizzy, Maybe, Not Now and Done aren't columns: a card in Maybe has column: nil and nothing else, Not Now is a not_now record, Done is a closure record. The card JSON only emits column when there is one (json.column ... if card.column), so those cards arrive with no column at all, and the CLI's typed model rendered that as the empty object you saw. column list invents the not-now / maybe / done pseudo ids client-side; the card output just hadn't been doing the same.

    #207 closes that gap: when the API sends no column, the CLI infers the lane from closed / postponed / status and emits the same pseudo-column shape as column list ({"id":"maybe","name":"Maybe?","kind":"triage","pseudo":true}), which round-trips into --column maybe. Reviewed it against the fizzy model today and it lines up; it's waiting on a maintainer merge. One thing to keep in mind for your pull: a card closed from a real column keeps that column in the API, so closed is the reliable signal for Done, not column.id.

  3. AvidDabbler commented on Sep 13, 2026

    @AvidDabbler
    Author

    @jeremy thanks for the response. was genuinely curious 😄

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions