os-backlog: cache resolved Planka board id in .cc-os/config #22
Labels
No Label
P0
P1
P2
P3
afk-ready
hitl
next
ready-for-agent
review
semi
waiting
wayfinder:grilling
wayfinder:map
wayfinder:research
wayfinder:task
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: jared/cc-os#22
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Every card operation re-resolves the configured board name via projects+boards listing (lib/backlog/cards.rb:109) — 1-2 avoidable API calls per command.
Approach (agreed 2026-07-12):
tracker=planka:<board>); id is a cache.board_id=<id>alongsidetracker=in.cc-os/config(key=value contract,3b9c4fb).boards.get(id)directly.Refs ADR-025 structure; follows #14.
Agent Brief
Goal: Cache the resolved Planka board id in .cc-os/config so card operations skip the projects+boards listing round-trip.
Verified current state (2026-07-12): lib/backlog/cards.rb resolves board by name on every call; .cc-os/config carries tracker= and version= keys only — no board_id. Approach in the issue body was agreed 2026-07-12 and is current.
Steps: (1) on first successful name resolve, write board_id= via the existing key=value config contract (
3b9c4fb); (2) subsequent calls use boards.get(id); (3) on 404 or name mismatch, fall back to name lookup and rewrite the cache; (4) minitest with FakePlankaClient covering hit, miss/rewrite, rename. Follow ADR-025 structure. Run bin/refresh-plugins after.Autonomy: afk-ready — fully specified, deterministic, model-free tests.
Codex review adjustments (2026-07-13), adopted:
Shipped in commit
46b0584per the adopted constraints. BoardResolver, planka-only board_id, name-validated id hits, comment-preserving Config.set, degrade-never-fail; 14 new tests, suite 90/0.