feat: project board scoping + global view #6

Merged
jwarykowski merged 2 commits from feat/project-and-global-view into master 2026-07-12 12:26:46 +00:00
jwarykowski commented 2026-07-12 12:19:18 +00:00 (Migrated from github.com)

Wraps shepherd's per-project boards (jwarykowski/shepherd#12) and read-only global view (jwarykowski/shepherd#13).

Changes

  • config.project — string | fun():string | nil, mirrors filter. New with_project() helper appends --project <name> on board open, mutations (add/done/undone/rm) and list --json, so pick/statusline indexes always match the board mutations hit.
  • :Shepherd! — opens the read-only global view (shepherd --all); project dropped, filter kept.
  • README — install example now uses a per-repo project (own board file) instead of filter, <leader>tg keybind, project config docs.
  • Tests — 8 new cases for build_cmd/with_project (project string/function, project+filter, --all, precedence). 22/22 green, lint clean.

Smoke-tested --project verbs against the installed binary on a throwaway board.

Wraps shepherd's per-project boards (jwarykowski/shepherd#12) and read-only global view (jwarykowski/shepherd#13). ## Changes - `config.project` — `string | fun():string | nil`, mirrors `filter`. New `with_project()` helper appends `--project <name>` on board open, mutations (`add`/`done`/`undone`/`rm`) and `list --json`, so pick/statusline indexes always match the board mutations hit. - `:Shepherd!` — opens the read-only global view (`shepherd --all`); project dropped, filter kept. - README — install example now uses a per-repo `project` (own board file) instead of `filter`, `<leader>tg` keybind, `project` config docs. - Tests — 8 new cases for `build_cmd`/`with_project` (project string/function, project+filter, `--all`, precedence). 22/22 green, lint clean. Smoke-tested `--project` verbs against the installed binary on a throwaway board.
Sign in to join this conversation.
No description provided.