os-backlog: restore dropped snapshot card fields (listChangedAt regression from 0.2.0 migration) #18

Closed
opened 2026-07-10 20:59:22 +00:00 by jared · 0 comments
Owner

What to build

Commit 8df0cb7 migrated os-backlog to planka-api 0.2.0 typed returns, but rebuilt Cards#snapshot's per-card JSON as an explicit 8-key hash (id, name, description, position, listId, boardId, dueDate, labels), dropping ~10 fields the pre-migration raw-hash merge carried — including listChangedAt, which the board-audit agent's Stale-Doing check explicitly depends on (agents/board-audit.md documents it). The commit's byte-compatibility claim is false and 34 green tests didn't catch it because no test pins the snapshot key set.

Restore the full pre-migration card key set in snapshot output (camelCase keys, sourced from the Types::Card record — ~18 fields per the gem's records.rb), so skill/agent contracts are genuinely unchanged. Add a regression test asserting the complete card key set of a snapshot entry so this can't silently regress again. Run bin/refresh-plugins after the source change.

Acceptance criteria

  • Snapshot card JSON again contains listChangedAt and the other fields dropped by 8df0cb7 (createdAt, updatedAt, type, isDueCompleted, stopwatch, commentsTotal, isClosed, creatorUserId, prevListId, coverAttachmentId, isSubscribed)
  • New test pins the full snapshot card key set
  • Full suite green (tests/all.rb)
  • bin/refresh-plugins run

Blocked by

None - can start immediately

## What to build Commit 8df0cb7 migrated os-backlog to planka-api 0.2.0 typed returns, but rebuilt Cards#snapshot's per-card JSON as an explicit 8-key hash (id, name, description, position, listId, boardId, dueDate, labels), dropping ~10 fields the pre-migration raw-hash merge carried — including listChangedAt, which the board-audit agent's Stale-Doing check explicitly depends on (agents/board-audit.md documents it). The commit's byte-compatibility claim is false and 34 green tests didn't catch it because no test pins the snapshot key set. Restore the full pre-migration card key set in snapshot output (camelCase keys, sourced from the Types::Card record — ~18 fields per the gem's records.rb), so skill/agent contracts are genuinely unchanged. Add a regression test asserting the complete card key set of a snapshot entry so this can't silently regress again. Run bin/refresh-plugins after the source change. ## Acceptance criteria - [ ] Snapshot card JSON again contains listChangedAt and the other fields dropped by 8df0cb7 (createdAt, updatedAt, type, isDueCompleted, stopwatch, commentsTotal, isClosed, creatorUserId, prevListId, coverAttachmentId, isSubscribed) - [ ] New test pins the full snapshot card key set - [ ] Full suite green (tests/all.rb) - [ ] bin/refresh-plugins run ## Blocked by None - can start immediately
jared added the
ready-for-agent
label 2026-07-10 20:59:22 +00:00
jared closed this issue 2026-07-10 21:14:03 +00:00
Sign in to join this conversation.
No description provided.