@hiroleague/taskmanager 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/index-BpzHnKdP.css +1 -0
  3. package/dist/assets/index-DmNErTAP.js +273 -0
  4. package/dist/index.html +2 -2
  5. package/package.json +1 -1
  6. package/skills/hiro-task-manager-cli/SKILL.md +6 -4
  7. package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +1 -0
  8. package/skills/hiro-task-manager-cli/reference/releases.md +14 -0
  9. package/src/cli/commands/query.ts +56 -56
  10. package/src/cli/commands/releases.ts +22 -0
  11. package/src/cli/handlers/boards.test.ts +669 -669
  12. package/src/cli/handlers/cli-wiring.test.ts +38 -1
  13. package/src/cli/handlers/releases.ts +15 -0
  14. package/src/cli/handlers/search.test.ts +374 -374
  15. package/src/cli/handlers/search.ts +17 -17
  16. package/src/cli/lib/cli-http-errors.test.ts +85 -85
  17. package/src/cli/lib/write/releases.ts +64 -1
  18. package/src/cli/lib/write-result.test.ts +3 -0
  19. package/src/cli/lib/write-result.ts +3 -0
  20. package/src/cli/lib/writeCommands.breadth.test.ts +143 -0
  21. package/src/cli/lib/writeCommands.ts +1 -0
  22. package/src/cli/subprocess.real-stack.test.ts +625 -611
  23. package/src/cli/subprocess.smoke.test.ts +954 -954
  24. package/src/client/api/useBoardChangeStream.ts +421 -168
  25. package/src/client/api/useBoardIndexStream.ts +35 -0
  26. package/src/client/components/board/BoardStatsChips.tsx +233 -233
  27. package/src/client/components/board/BoardStatsContext.tsx +41 -41
  28. package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
  29. package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
  30. package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
  31. package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
  32. package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
  33. package/src/client/components/layout/AppShell.tsx +5 -2
  34. package/src/client/components/layout/NotificationToasts.tsx +38 -1
  35. package/src/client/components/multi-select.tsx +1206 -1206
  36. package/src/client/components/routing/BoardPage.tsx +20 -20
  37. package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
  38. package/src/client/components/task/TaskCard.tsx +643 -643
  39. package/src/client/components/ui/badge.tsx +49 -49
  40. package/src/client/components/ui/button.tsx +65 -65
  41. package/src/client/components/ui/command.tsx +193 -193
  42. package/src/client/components/ui/dialog.tsx +163 -163
  43. package/src/client/components/ui/input-group.tsx +155 -155
  44. package/src/client/components/ui/input.tsx +19 -19
  45. package/src/client/components/ui/popover.tsx +87 -87
  46. package/src/client/components/ui/separator.tsx +28 -28
  47. package/src/client/components/ui/textarea.tsx +18 -18
  48. package/src/client/index.css +248 -248
  49. package/src/client/lib/appNavigate.ts +16 -16
  50. package/src/client/lib/taskCardDate.ts +111 -111
  51. package/src/client/lib/utils.ts +6 -6
  52. package/src/client/store/notificationUi.ts +14 -0
  53. package/src/server/auth.ts +351 -351
  54. package/src/server/events.ts +31 -4
  55. package/src/server/migrations/registry.ts +43 -43
  56. package/src/server/notificationEvents.ts +8 -1
  57. package/src/server/routes/boards.ts +15 -1
  58. package/src/server/routes/trash.ts +6 -1
  59. package/src/shared/boardEvents.ts +6 -0
  60. package/src/shared/runtimeConfig.ts +256 -256
  61. package/dist/assets/index-hMFTu7sr.css +0 -1
  62. package/dist/assets/index-oKG1C41_.js +0 -273
@@ -9,7 +9,7 @@ import { createDefaultCliContext } from "./context";
9
9
  import { handleBoardsUpdate } from "./boards";
10
10
  import type { CliContext } from "./context";
11
11
  import { handleListsAdd, handleListsList } from "./lists";
12
- import { handleReleasesAdd } from "./releases";
12
+ import { handleReleasesAdd, handleReleasesSetDefault } from "./releases";
13
13
  import { handleTasksAdd } from "./tasks";
14
14
  import { handleTrashLists } from "./trash";
15
15
 
@@ -122,6 +122,43 @@ describe("CLI handler → writeCommands wiring", () => {
122
122
  expect(sawPort).toBe("31999");
123
123
  });
124
124
 
125
+ test("handleReleasesSetDefault uses resolved port from context", async () => {
126
+ let sawPort = "";
127
+ let n = 0;
128
+ setMockFetch(async (input) => {
129
+ sawPort = new URL(reqUrl(input)).port;
130
+ n += 1;
131
+ if (n === 1) {
132
+ return new Response(
133
+ JSON.stringify({
134
+ items: [{ releaseId: 1, name: "v", createdAt: "2026-01-01T00:00:00.000Z" }],
135
+ total: 1,
136
+ limit: 500,
137
+ offset: 0,
138
+ }),
139
+ { status: 200, headers: { "content-type": "application/json" } },
140
+ );
141
+ }
142
+ return new Response(
143
+ JSON.stringify({
144
+ boardId: 1,
145
+ slug: "rb",
146
+ name: "B",
147
+ defaultReleaseId: 1,
148
+ updatedAt: "2026-01-02T00:00:00.000Z",
149
+ }),
150
+ { status: 200, headers: { "content-type": "application/json" } },
151
+ );
152
+ });
153
+ await captureStdout(() =>
154
+ handleReleasesSetDefault(wiringContext(), "1", {
155
+ board: "rb",
156
+ }),
157
+ );
158
+ expect(sawPort).toBe("31999");
159
+ expect(n).toBe(2);
160
+ });
161
+
125
162
  test("handleReleasesAdd uses resolved port from context", async () => {
126
163
  let sawPort = "";
127
164
  setMockFetch(async (input) => {
@@ -3,6 +3,7 @@ import {
3
3
  runReleasesAdd,
4
4
  runReleasesDelete,
5
5
  runReleasesList,
6
+ runReleasesSetDefault,
6
7
  runReleasesShow,
7
8
  runReleasesUpdate,
8
9
  } from "../lib/writeCommands";
@@ -91,6 +92,20 @@ export async function handleReleasesUpdate(
91
92
  });
92
93
  }
93
94
 
95
+ export async function handleReleasesSetDefault(
96
+ ctx: CliContext,
97
+ releaseId: string | undefined,
98
+ options: { board: string; clear?: boolean },
99
+ ): Promise<void> {
100
+ const port = ctx.resolvePort();
101
+ await runReleasesSetDefault(ctx, {
102
+ port,
103
+ board: options.board,
104
+ releaseId,
105
+ clear: options.clear === true,
106
+ });
107
+ }
108
+
94
109
  export async function handleReleasesDelete(
95
110
  ctx: CliContext,
96
111
  releaseId: string,