Skip to content

Run 1: Bug Fixes

Fix card notes mapping (#815, #816), add unmark-as-printed capability (#595), verify label/breadcrumb notes mapping, and update design documentation.

Specification: Phase 1 Specification Requirements: Phase 1 Requirements Verification: Phase 1 Verification

#CriterionVerification CommandExpected Output
1Operations worktree exists and buildsmake -C /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/operations buildBUILD SUCCESSFUL
2Frontend worktree exists and buildscd /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/arda-frontend-app && npm run buildExit 0
3Documentation worktree exists and buildscd /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/documentation && make buildComplete!
4All worktrees on correct branchgit -C /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/operations branch --show-currentjmpicnic/multi-pdf-print-and-bugs
ArtifactPathFormatDescription
Fixed KanbanCardPrinteroperations/src/.../kanban/business/KanbanCardPrinter.ktKotlinNotes field uses card.notes ?: "" without item fallback
UNMARK event typeoperations/src/.../kanban/business/KanbanCard.ktKotlinNew UNMARK in KanbanCardPrintEventType enum
UNMARK status mappingoperations/src/.../kanban/service/PrintLifecycleImpl.ktKotlinUNMARK → NOT_PRINTED in state machine
Unmark endpointoperations/src/.../kanban/api/rest/KanbanCardEndpoint.ktKotlinPOST /kanban-card/{eId}/event/unmark
Frontend unmark actionarda-frontend-app/src/components/items/CardInfo.tsxTSXDropdown item for PRINTED cards
Frontend API routearda-frontend-app/src/app/api/arda/kanban/kanban-card/[eId]/event/unmark/route.tsTypeScriptProxy to backend
Unit testsoperations/src/test/.../kanban/KotlinTests for notes mapping and UNMARK event
Updated Item Module docdocumentation/src/.../reference-data/item/index.mdMarkdownPayload mapping section verified
Updated Kanban Cards docdocumentation/src/.../resources/kanban-cards-module.mdMarkdownUNMARK event in print status
CHANGELOG entriesoperations/CHANGELOG.md, arda-frontend-app/CHANGELOG.mdMarkdownVersion entries for bug fixes
#TaskPersonaDepends OnStatusAcceptance Criteria
1.1Fix card notes mapping in KanbanCardPrinterback-end-engineerPendingnotes = card.notes?.takeUnless { it.isBlank() } ?: "". T-P1-001 through T-P1-004 pass.
1.2Verify label/breadcrumb notes mapping in ItemPrinterback-end-engineerPendingConfirm notes = item.notes ?: "" is correct. T-P1-005, T-P1-006 pass.
1.3Add UNMARK event type and status mappingback-end-engineerPendingUNMARK added to enum. _resultPrintState(UNMARK) == NOT_PRINTED. No-op for non-PRINTED cards. T-P1-007 through T-P1-009 pass.
1.4Expose unmark endpointback-end-engineer1.3PendingPOST /kanban-card/{eId}/event/unmark authenticated, tenant-scoped. T-P1-010, T-P1-011 pass.
1.5Frontend unmark actionfront-end-engineer1.4 (API shape)PendingDropdown item visible for PRINTED cards. After unmark: NOT_PRINTED, “Print card” label. T-P1-012, T-P1-013 pass.
1.6Update design documentationback-end-engineer1.1, 1.2, 1.3PendingItem Module and Kanban Cards Module docs updated. T-P1-018, T-P1-019.
1.7Regression tests and CHANGELOGback-end-engineer1.1-1.6Pendingmake build passes operations. Jest + E2E pass frontend. CHANGELOG entries with [X.Y.Z-jmpicnic-0408] format. T-P1-014 through T-P1-017.
1.1 (fix notes) ──┐
1.2 (verify notes) ┤
1.3 (UNMARK enum) ─┼──→ 1.6 (update docs) ──→ 1.7 (regression + CHANGELOG)
│ │
└──→ 1.4 (endpoint) ──→ 1.5 (frontend)

Tasks 1.1, 1.2, 1.3 can run in parallel (independent code changes). Task 1.4 depends on 1.3. Task 1.5 depends on 1.4’s API shape (but can start with mock). Tasks 1.6 and 1.7 are sequential after all code changes.

Agent assignment: A single back-end-engineer handles 1.1-1.4, 1.6-1.7. A front-end-engineer handles 1.5. Both work in their respective worktrees — no conflicts.

#CriterionVerification CommandExpected Output
1Operations builds with all tests passingmake -C .../operations buildBUILD SUCCESSFUL
2Frontend buildscd .../arda-frontend-app && npm run buildExit 0
3Frontend Jest tests passcd .../arda-frontend-app && npx jest --no-coverage --watchAll=false --forceExitAll pass (1 pre-existing failure allowed)
4Documentation buildscd .../documentation && make buildComplete!
5CHANGELOG updated in operationshead -5 .../operations/CHANGELOG.mdContains jmpicnic version entry
6CHANGELOG updated in arda-frontend-apphead -5 .../arda-frontend-app/CHANGELOG.mdContains version entry
7All changes committedgit -C .../operations status --shortClean
8All changes committed (frontend)git -C .../arda-frontend-app status --shortClean
9All changes committed (documentation)git -C .../documentation status --shortClean or only goal.md unstaged

Note: The documentation repository CHANGELOG is updated once at the end of the project (before the documentation PR), not per-run.

You are implementing bug fixes for the Arda printing pipeline in the operations repository at /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/operations.

Read the specification at /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/documentation/src/content/docs/roadmap/in-progress/multi-pdf-print-and-bugs/phase-1-bug-fixes/specification.md and implement Tasks 1.1, 1.2, 1.3, 1.4, 1.6, and 1.7. Use mode: "bypassPermissions".

Key decisions:

  • UNMARK on non-PRINTED cards is a no-op (idempotent)
  • Endpoint path: POST /kanban-card/{eId}/event/unmark (consistent with lifecycle events)
  • CHANGELOG version format: [X.Y.Z-jmpicnic-0408]

After code changes, update design docs in the documentation worktree at /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/documentation.

You are implementing the unmark-as-printed UI action in arda-frontend-app at /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/arda-frontend-app.

Read the specification at /Users/jmp/code/arda/projects/multi-pdf-print-and-bugs-worktrees/documentation/src/content/docs/roadmap/in-progress/multi-pdf-print-and-bugs/phase-1-bug-fixes/specification.md and implement Task 1.5.

Key decisions:

  • Unmark action is a dropdown menu item (not a separate button)
  • Visible only for cards in PRINTED status
  • After unmark: status shows NOT_PRINTED, button shows “Print card”
  • API route: POST /api/arda/kanban/kanban-card/{eId}/event/unmark

None — this is the first run.

ArtifactConsumer RunPath
Fixed notes mapping (committed)Run 2operations/src/.../kanban/business/KanbanCardPrinter.kt
UNMARK event type (committed)Run 4operations/src/.../kanban/business/KanbanCard.kt
Unmark endpoint (committed)Run 4operations/src/.../kanban/api/rest/KanbanCardEndpoint.kt
Frontend unmark action (committed)arda-frontend-app/src/components/items/CardInfo.tsx
CHANGELOG entryRun 2 (appends)operations/CHANGELOG.md

Copyright: (c) Arda Systems 2025-2026, All rights reserved