feat(backend): add Windshift adapter#5
Draft
stefan-ernst wants to merge 1 commit into
Draft
Conversation
Adds a CLI-backed task backend that drives Windshift work items through the `ws` CLI, mirroring the sq/tq adapters. Auto-detected in projects with a `ws.toml` (preferred over globally-installed backends, like tq is for a .tq directory); also selectable via PI_TASKS_BACKEND=windshift. - list/show/create/update map onto `ws task ls/get/create/edit` and `ws task move` (which resolves workflow transitions for us) - item-type / status / priority catalogs are resolved once from `ws item-type ls` / `ws status ls` / `ws priority ls`, each with a graceful fallback so a reduced-scope token or older `ws` still works - priority editing activates when `ws priority ls` is available; until then the per-item priority still displays (read-only)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a
windshifttask backend that drives Windshift work items through thewsCLI, following the existingsq/tqshell-out pattern. No new dependencies.Why
Windshift is a work-tracker with a first-class
wsCLI (ws task ls/get/create/edit/move, all with-o json), which maps almost 1:1 onto theTaskAdaptercontract — so teams using Windshift can drive their real tracker from the pi tasks UI instead of a parallelTODO.md/sqstore.How it works
ws.toml(created byws init). Aws.tomlis an unambiguous Windshift-project marker, so the resolver preferswindshiftover merely globally-installed backends — the same waytqis preferred when a.tqdirectory exists. Also selectable viaPI_TASKS_BACKEND=windshift.list / show / create / updatemap ontows task ls/get/create/editandws task move(status changes go through real workflow transitions, whichws task moveresolves by alias/name/id).ws item-type ls/ws status ls/ws priority ls, used to translate the adapter's camelCase task model to/from Windshift's workspace-configured types, statuses, and priorities.wsthat lacksws priority lsstill loads — task types fall back to a default set, statuses to name-based classification, and priorities to Windshift's default catalog (display-only untilws priority lsis available).Notes / limitations
wsCLI onPATHand a connected workspace (ws init), consistent with how thesq/tqbackends require their CLIs.wsprovidesws priority ls; older builds show priority read-only. (Display of a task's current priority always works.)Testing
Verified end-to-end against a live Windshift workspace: backend auto-selection,
validateBackendConfiguration, list/show parsing, and the exactwsargv emitted by create/edit/move (including type- and priority-name → id resolution and the graceful fallbacks). The extension loads cleanly underpi.