feat(list): add --pinned and --no-pinned filter flags

Add ability to filter issues by their pinned status in bd list command.

- Add pinned column to issues table via migration 023
- Add Pinned field to Issue struct and IssueFilter
- Update all storage layer queries to include pinned column
- Add --pinned flag to show only pinned issues
- Add --no-pinned flag to exclude pinned issues
- Update RPC layer to forward pinned filter to daemon mode
- Add pinned to allowedUpdateFields for bd update support

Resolves: beads-p8e

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-19 00:46:46 -08:00
parent 9dc34da64a
commit f6930eb399
15 changed files with 168 additions and 27 deletions

View File

@@ -30,6 +30,8 @@ CREATE TABLE IF NOT EXISTS issues (
-- Messaging fields (bd-kwro)
sender TEXT DEFAULT '',
ephemeral INTEGER DEFAULT 0,
-- Pinned flag (bd-p8e)
pinned INTEGER DEFAULT 0,
-- NOTE: replies_to, relates_to, duplicate_of, superseded_by removed per Decision 004
-- These relationships are now stored in the dependencies table
CHECK ((status = 'closed') = (closed_at IS NOT NULL))
@@ -39,6 +41,7 @@ CREATE INDEX IF NOT EXISTS idx_issues_status ON issues(status);
CREATE INDEX IF NOT EXISTS idx_issues_priority ON issues(priority);
CREATE INDEX IF NOT EXISTS idx_issues_assignee ON issues(assignee);
CREATE INDEX IF NOT EXISTS idx_issues_created_at ON issues(created_at);
CREATE INDEX IF NOT EXISTS idx_issues_pinned ON issues(pinned) WHERE pinned = 1;
-- Note: idx_issues_external_ref is created in migrations/002_external_ref_column.go
-- Dependencies table (edge schema - Decision 004)