pm-slack-standup 2026.6.3 → 2026.6.4-1

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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changelog
2
2
 
3
- ## 2026.6.3 - 2026-06-02
3
+ ## 2026.6.4-1 - 2026-06-04
4
+
5
+ ### Added
6
+
7
+ - preflight: fail-fast Slack-credential gate for standup post path ([pm-slack-standup-qnkp](https://github.com/unbraind/pm-slack-standup/blob/main/.agents/pm/features/pm-slack-standup-qnkp.toon))
8
+
9
+ ## 2026.06.04 - 2026-06-04
10
+
11
+ ### Added
12
+
13
+ - Blocker inference, yesterday/today split, multi-channel, fallback-to-stdout, custom section labels ([pm-slack-standup-8s6b](https://github.com/unbraind/pm-slack-standup/blob/main/.agents/pm/features/pm-slack-standup-8s6b.toon))
14
+
15
+ ## 2026.06.03 - 2026-06-02
4
16
 
5
17
  ### Added
6
18
 
package/README.md CHANGED
@@ -9,10 +9,16 @@ A [pm-cli](https://github.com/unbraind/pm-cli) extension that posts your current
9
9
  - **`--dry-run`** — build and print the message in the chosen format **without** posting to Slack (no network call is made)
10
10
  - Group section items by `status` (default), `assignee`, `sprint`, or `type` (`--group-by`)
11
11
  - Choose which sections to render and in what order with `--sections` (`in_progress`, `blocked`, `done`, `up_next`); a dedicated **Blocked** section always surfaces blocked items
12
+ - **Impediment inference** — the Blocked section surfaces not only `status=blocked` items but any open/in-progress item carrying a `blocked_by` dependency (top-level or in `dependencies[]`), so dependency-blocked work is never hidden
13
+ - **Yesterday/Today split** (`--yesterday`) — split the Done section into **Done Yesterday** / **Done Today** by the local-day boundary (implies `--include-done`)
14
+ - **Multi-channel posting** (`--channels #a,#b`) — post the same standup to several channel names and/or webhook URLs in one run, each message labelled with its own channel
15
+ - **`--fallback-to-stdout`** — if a Slack post fails, print the rendered standup to stdout (exit 0) instead of erroring out, so the work isn't lost on a transport failure
16
+ - **Custom section labels** (`--section-labels`) — override any section's title and/or emoji, e.g. `in_progress=Rolling,blocked=🔥 On Fire`
12
17
  - Scope the "recently closed / Done" window with `--since <iso>` **or** `--days <n>` (relative)
13
18
  - Map pm authors to Slack handles so they get mentioned (`--mention-map`)
14
19
  - `pm standup export` — write the standup to a file as Markdown or JSON (the JSON form includes the full Block Kit payload for archiving or re-posting)
15
- - `--channel` override; webhook URL configurable via flag or environment variable. A real post with **no webhook configured** fails with a clear, structured error (exit 1) rather than crashing — use `--dry-run` to preview without credentials
20
+ - `--channel` override; webhook URL configurable via flag or environment variable
21
+ - **Fail-fast credential preflight** — when you actually request a Slack post (anything other than `--dry-run`) but no webhook is configured, the command aborts **immediately** with a clear, actionable, non-zero error (exit 2) **before** reading any pm data or rendering anything — no half-built message, no crash. The non-posting `--dry-run` preview path is never gated, so previewing without credentials keeps working. See [Credential preflight](#credential-preflight).
16
22
 
17
23
  ## Installation
18
24
 
@@ -68,6 +74,10 @@ pm standup [flags]
68
74
  | `--group-by <field>` | string | `status` | Group section items by `status` \| `assignee` \| `sprint` \| `type` |
69
75
  | `--sections <list>` | string | all | Comma list of sections to render/order: `in_progress`, `blocked`, `done`, `up_next` |
70
76
  | `--mention-map <map>` | string | — | Map pm authors to Slack handles, e.g. `alice=@alice,bob=@bob` |
77
+ | `--yesterday` | boolean | `false` | Split Done into **Done Yesterday** / **Done Today** by local day (implies `--include-done`) |
78
+ | `--channels <list>` | string | — | Post the same standup to multiple targets: comma list of `#channel` names and/or full webhook URLs |
79
+ | `--fallback-to-stdout` | boolean | `false` | If the Slack post fails, print the rendered standup to stdout (exit 0) instead of erroring |
80
+ | `--section-labels <map>` | string | — | Override section titles/emoji, e.g. `in_progress=Rolling,blocked=🔥 On Fire` |
71
81
 
72
82
  > **Note on `text`:** the legacy `--format text` value is still accepted as an alias for `plain`.
73
83
 
@@ -125,6 +135,27 @@ pm standup --include-done --format plain
125
135
  pm standup --dry-run --group-by sprint --sections in_progress,blocked
126
136
  ```
127
137
 
138
+ **Split Done by yesterday/today:**
139
+ ```bash
140
+ pm standup --dry-run --yesterday --format plain
141
+ ```
142
+
143
+ **Post to multiple channels at once:**
144
+ ```bash
145
+ pm standup --channels '#team-eng,#standups'
146
+ pm standup --channels 'https://hooks.slack.com/services/AAA,https://hooks.slack.com/services/BBB'
147
+ ```
148
+
149
+ **Never lose the standup if Slack is down:**
150
+ ```bash
151
+ pm standup --fallback-to-stdout # prints the message to stdout (exit 0) if the post fails
152
+ ```
153
+
154
+ **Rename sections / change emoji:**
155
+ ```bash
156
+ pm standup --dry-run --section-labels 'in_progress=Rolling,blocked=🔥 On Fire'
157
+ ```
158
+
128
159
  **Full explicit invocation:**
129
160
  ```bash
130
161
  pm standup \
@@ -176,6 +207,31 @@ pm standup \
176
207
  • [Chore] Update dependencies (priority 3)
177
208
  ```
178
209
 
210
+ ## Credential preflight
211
+
212
+ Before any post is attempted, `pm standup` runs a **fail-fast credential gate**:
213
+
214
+ - **A post is "requested"** whenever you do *not* pass `--dry-run`. (`--fallback-to-stdout` still counts as a post — it only changes how a *transport* failure is handled; it still needs a webhook to attempt delivery.)
215
+ - **The gate fires only when** a post is requested **and** no usable webhook is configured. A webhook is "configured" if `--webhook` or `PM_SLACK_WEBHOOK` is set, **or** every `--channels` target is a full webhook URL (bare `#name` channels still need the base webhook).
216
+ - **When it fires**, the command aborts **immediately** — before reading any pm items or rendering anything — with a clear, actionable error and a **non-zero exit (2 / usage)**. Nothing is posted.
217
+ - **When it does not fire** (a webhook is present, *or* you used `--dry-run`), the command proceeds exactly as before.
218
+
219
+ ```bash
220
+ # Post requested, no webhook → immediate abort (exit 2), nothing posted:
221
+ pm standup --channel '#team-eng'
222
+ # Slack post requested but no webhook is configured. Set PM_SLACK_WEBHOOK or
223
+ # pass --webhook <url> (or provide full webhook URLs via --channels).
224
+ # To preview without posting, use --dry-run.
225
+
226
+ # Preview without credentials → always allowed (exit 0):
227
+ pm standup --dry-run
228
+
229
+ # With a webhook → preflight passes, the post proceeds:
230
+ PM_SLACK_WEBHOOK=https://hooks.slack.com/services/... pm standup --channel '#team-eng'
231
+ ```
232
+
233
+ This is implemented in the `standup` command handler (where a thrown error reliably aborts with a non-zero exit); the package also declares the `preflight` capability and registers a scoped pass-through preflight hook for the standup command.
234
+
179
235
  ## Environment Variables
180
236
 
181
237
  | Variable | Description |
@@ -199,10 +255,10 @@ npm run dev # watch mode
199
255
 
200
256
  ## How It Works
201
257
 
202
- 1. Reads every item once via `pm --path <root> list-all --json --include-body` and buckets them locally into In Progress, Blocked, open (Up Next) and optionally Done.
258
+ 1. Reads every item once via `pm --path <root> list-all --json --include-body` and buckets them locally into In Progress, Blocked, open (Up Next) and optionally Done. Any open/in-progress item with a `blocked_by` dependency (top-level or in `dependencies[]`) is re-bucketed into Blocked; closed items are never re-surfaced as blocked.
203
259
  2. Sorts open items by priority (ascending) and takes the top 3 as "Up Next".
204
- 3. Builds a Slack Block Kit `blocks` array (header + a section per bucket + context footer) plus a plain-text `fallback`, optionally grouped by assignee and annotated with Slack mentions.
205
- 4. In `--dry-run`, prints the message in the chosen `--format` and exits without any network call. Otherwise posts `{ text, blocks }` to the configured Slack webhook using Node.js native `https`. A missing webhook (on a real post) or a failed post raises a structured `CommandError` and exits non-zero.
260
+ 3. Builds a Slack Block Kit `blocks` array (header + a section per bucket + context footer) plus a plain-text `fallback`, optionally grouped by assignee and annotated with Slack mentions. Section titles/emoji can be overridden with `--section-labels`, and `--yesterday` expands Done into Done Yesterday / Done Today.
261
+ 4. In `--dry-run`, prints the message in the chosen `--format` and exits without any network call. Otherwise posts `{ text, blocks }` to each target (the base webhook plus any `--channels`) using Node.js native `https`. A missing webhook (on a real post) raises a structured `CommandError`; a failed post does too **unless** `--fallback-to-stdout` is set, in which case the rendered standup is printed to stdout and the command exits 0.
206
262
 
207
263
  ## License
208
264
 
package/dist/index.d.ts CHANGED
@@ -2,6 +2,11 @@ export declare class CommandError extends Error {
2
2
  exitCode: number;
3
3
  constructor(message: string, exitCode?: number);
4
4
  }
5
+ export interface PmDependency {
6
+ id?: string;
7
+ kind?: string;
8
+ [key: string]: unknown;
9
+ }
5
10
  export interface PmItem {
6
11
  id: string;
7
12
  title: string;
@@ -17,6 +22,8 @@ export interface PmItem {
17
22
  body?: string;
18
23
  created_at?: string;
19
24
  updated_at?: string;
25
+ blocked_by?: string;
26
+ dependencies?: PmDependency[];
20
27
  }
21
28
  export type Format = "slack" | "blockkit" | "markdown" | "plain";
22
29
  export type GroupBy = "status" | "assignee" | "sprint" | "type";
@@ -28,6 +35,8 @@ export interface StandupData {
28
35
  done: PmItem[];
29
36
  upNext: PmItem[];
30
37
  total: number;
38
+ doneYesterday?: PmItem[];
39
+ doneToday?: PmItem[];
31
40
  }
32
41
  export interface StandupOptions {
33
42
  channel?: string;
@@ -37,6 +46,12 @@ export interface StandupOptions {
37
46
  groupBy: GroupBy;
38
47
  sections: SectionKey[];
39
48
  mentionMap: Record<string, string>;
49
+ splitYesterday: boolean;
50
+ sectionLabels: Partial<Record<SectionKey, SectionLabelOverride>>;
51
+ }
52
+ export interface SectionLabelOverride {
53
+ emoji?: string;
54
+ title?: string;
40
55
  }
41
56
  export declare function readBoolOption(options: Record<string, unknown>, key: string): boolean;
42
57
  export declare function readStrOption(options: Record<string, unknown>, key: string): string | undefined;
@@ -58,6 +73,25 @@ export declare function parseGroupBy(raw: string | undefined): GroupBy;
58
73
  * unknown token is a USAGE error rather than a silent drop.
59
74
  */
60
75
  export declare function parseSections(spec: string | undefined): SectionKey[];
76
+ /**
77
+ * Parse a `--section-labels` spec overriding section titles (and optionally
78
+ * an emoji). Accepts `key=Label,other=Label2` (comma/semicolon separated).
79
+ * The label value may itself lead with an emoji + space, e.g.
80
+ * `blocked=🔥 On Fire` sets emoji "🔥" and title "On Fire"; a label with no
81
+ * leading emoji keeps the section's default emoji and only changes the title.
82
+ * Keys use the same aliases as `--sections` (wip→in_progress, etc.).
83
+ * Unknown keys are a USAGE error rather than a silent drop.
84
+ */
85
+ export declare function parseSectionLabels(spec: string | undefined): Partial<Record<SectionKey, SectionLabelOverride>>;
86
+ /**
87
+ * Parse a `--channels` spec (comma/semicolon list) into an ordered, de-duped
88
+ * list of channel targets. Each target is either a Slack channel name
89
+ * (e.g. `#team-eng`) or a full webhook URL — multi-channel posting accepts
90
+ * both (a name is shown in the message; a URL is POSTed to). Empty → [].
91
+ */
92
+ export declare function parseChannels(spec: string | undefined): string[];
93
+ /** True when a channel token is a full webhook URL rather than a name. */
94
+ export declare function isWebhookUrl(token: string): boolean;
61
95
  /**
62
96
  * Resolve the "recently closed" window start (ms epoch) from `--since` and/or
63
97
  * `--days`. `--since` is an explicit ISO date/time; `--days <n>` is N days
@@ -77,12 +111,28 @@ export declare function fetchAllItems(pmRoot: string): PmItem[];
77
111
  * NaN sinceMs means "no window" → always true.
78
112
  */
79
113
  export declare function withinWindow(item: PmItem, sinceMs: number): boolean;
114
+ /**
115
+ * True when an item carries a `blocked_by` dependency, regardless of its
116
+ * status. pm surfaces this either as a top-level `blocked_by` string (item ID
117
+ * or free-text reason) or as one/more `dependencies` entries with
118
+ * `kind: "blocked_by"`. Used to surface impediments that are NOT explicitly
119
+ * status=blocked under the Blocked section.
120
+ */
121
+ export declare function hasBlockedByDep(item: PmItem): boolean;
122
+ /**
123
+ * Local-day key (YYYY-MM-DD in the host's local timezone) for an item's last
124
+ * activity. Used by the `--yesterday` split. Falls back to created_at, then
125
+ * to the empty string when no timestamp is parseable.
126
+ */
127
+ export declare function localDayKey(item: PmItem): string;
128
+ /** Local-day key (YYYY-MM-DD) for a given epoch-ms instant. */
129
+ export declare function localDayKeyOf(ms: number): string;
80
130
  /**
81
131
  * Bucket items into standup sections.
82
132
  * `sinceMs` (epoch ms, NaN = no window) filters the Done section to items
83
133
  * updated within the window; WIP/blocked/up-next always reflect current state.
84
134
  */
85
- export declare function buildStandupData(items: PmItem[], opts: StandupOptions, sinceMs?: number): StandupData;
135
+ export declare function buildStandupData(items: PmItem[], opts: StandupOptions, sinceMs?: number, now?: number): StandupData;
86
136
  interface SectionDef {
87
137
  key: SectionKey;
88
138
  emoji: string;
@@ -96,6 +146,10 @@ interface SectionDef {
96
146
  * `in_progress` and `blocked` always render (even empty, with their note);
97
147
  * `done` and `up_next` only render when they hold items — preserving the
98
148
  * historical message shape. `--sections` filters which keys are eligible.
149
+ *
150
+ * When `--yesterday` is active and Done has items, the single Done section is
151
+ * expanded into "Done Yesterday" + "Done Today" (only the non-empty subsets
152
+ * render), preserving the section's position in the ordering.
99
153
  */
100
154
  export declare function resolveSections(data: StandupData, opts: StandupOptions): SectionDef[];
101
155
  export declare function itemText(item: PmItem, mentionMap: Record<string, string>, withPriority?: boolean): string;
@@ -136,6 +190,73 @@ export declare function buildBlockKit(data: StandupData, opts: StandupOptions):
136
190
  * pretty-printed `{ blocks }` JSON; everything else returns text.
137
191
  */
138
192
  export declare function renderStandup(data: StandupData, opts: StandupOptions): string;
193
+ /** One resolved post target: the webhook URL to POST to + the channel name. */
194
+ export interface PostTarget {
195
+ webhookUrl: string;
196
+ /** Channel name shown in the message (may differ per target). */
197
+ channel?: string;
198
+ }
199
+ export interface PostResultEntry {
200
+ channel?: string;
201
+ ok: boolean;
202
+ error?: string;
203
+ }
204
+ /** A poster sends one payload to one webhook. Injectable for testing. */
205
+ export type Poster = (webhookUrl: string, payload: Record<string, unknown>) => Promise<void>;
206
+ /**
207
+ * Resolve the ordered list of post targets from `--webhook`/env + `--channel`
208
+ * + `--channels`. Each `--channels` token is either a `#name` (posted to the
209
+ * base webhook, just changing the displayed channel) or a full webhook URL
210
+ * (posted to that URL). When no `--channels` is given, a single target using
211
+ * the base webhook + `--channel` is returned. De-dupes (webhook,channel) pairs.
212
+ */
213
+ export declare function resolvePostTargets(baseWebhook: string, baseChannel: string | undefined, channels: string[]): PostTarget[];
214
+ /**
215
+ * Post the standup to every resolved target, re-rendering per target so each
216
+ * channel's message shows its own channel name. Returns a per-target result;
217
+ * never throws — the caller decides how to treat failures (e.g. fallback to
218
+ * stdout). The `poster` is injectable so this is testable without a network.
219
+ */
220
+ export declare function postStandupTargets(targets: PostTarget[], data: StandupData, baseOpts: StandupOptions, poster: Poster): Promise<PostResultEntry[]>;
221
+ /**
222
+ * Decide whether the `standup` invocation is actually going to *post* to Slack.
223
+ *
224
+ * The command has two non-posting shapes that must NOT be gated:
225
+ * - `--dry-run` : build + print the message, never touches Slack.
226
+ * Every other shape is a real post attempt (the default), including
227
+ * `--fallback-to-stdout` — that flag only means "print instead of erroring *if
228
+ * the network post fails*", it still REQUIRES a webhook to attempt the post.
229
+ */
230
+ export declare function isPostRequested(options: Record<string, unknown>): boolean;
231
+ /**
232
+ * Resolve whether a *base* Slack webhook is required for this post. `--channels`
233
+ * may carry full webhook URLs that are self-sufficient targets; but if there is
234
+ * no `--channels` at all, or any `--channels` entry is a bare `#name`, the base
235
+ * webhook (`--webhook` / `PM_SLACK_WEBHOOK`) is needed to actually deliver.
236
+ */
237
+ export declare function needsBaseWebhook(channels: string[]): boolean;
238
+ /**
239
+ * Fail-fast credential preflight for the standup *post* path.
240
+ *
241
+ * Fires ONLY when a Slack post is actually requested (not `--dry-run`) AND the
242
+ * credentials needed to deliver it are missing. In that case it throws a
243
+ * structured {@link CommandError} (USAGE / exit 2) BEFORE any pm data is read
244
+ * or any message is rendered — a clean, actionable, non-zero abort.
245
+ *
246
+ * It deliberately does NOT block the legitimate non-posting shapes:
247
+ * - `--dry-run` (preview to stdout) is never gated.
248
+ * This keeps the existing stdout-fallback behaviour intact while turning a
249
+ * "we got all the way to the transport layer and then discovered there's no
250
+ * webhook" failure into an immediate, obvious one.
251
+ *
252
+ * NOTE: this is invoked from the command HANDLER (not from `registerPreflight`)
253
+ * on purpose. pm's runtime wraps `registerPreflight` overrides in a try/catch
254
+ * and downgrades any thrown error to a non-fatal warning, so a throw there does
255
+ * NOT abort the command. Throwing from the handler is the only reliable way to
256
+ * fail-fast with a non-zero exit. The `registerPreflight` registration below is
257
+ * a scoped pass-through that exists to surface the `preflight` capability.
258
+ */
259
+ export declare function preflightSlackCredentials(options: Record<string, unknown>): void;
139
260
  /**
140
261
  * Resolve every standup option except the render `format`, which differs
141
262
  * between the command (slack|blockkit|markdown|plain) and the exporter
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -157,6 +157,76 @@ export function parseSections(spec) {
157
157
  }
158
158
  return out.length > 0 ? out : [...ALL_SECTIONS];
159
159
  }
160
+ /**
161
+ * Parse a `--section-labels` spec overriding section titles (and optionally
162
+ * an emoji). Accepts `key=Label,other=Label2` (comma/semicolon separated).
163
+ * The label value may itself lead with an emoji + space, e.g.
164
+ * `blocked=🔥 On Fire` sets emoji "🔥" and title "On Fire"; a label with no
165
+ * leading emoji keeps the section's default emoji and only changes the title.
166
+ * Keys use the same aliases as `--sections` (wip→in_progress, etc.).
167
+ * Unknown keys are a USAGE error rather than a silent drop.
168
+ */
169
+ export function parseSectionLabels(spec) {
170
+ const out = {};
171
+ if (!spec || !spec.trim())
172
+ return out;
173
+ for (const pair of spec.split(/[,;]/)) {
174
+ const eq = pair.indexOf("=");
175
+ if (eq < 0)
176
+ continue;
177
+ const rawKey = pair.slice(0, eq).trim().toLowerCase();
178
+ const rawVal = pair.slice(eq + 1).trim();
179
+ if (!rawKey || !rawVal)
180
+ continue;
181
+ const key = SECTION_ALIASES[rawKey];
182
+ if (!key) {
183
+ throw new CommandError(`Unknown --section-labels key '${rawKey}'. Valid: in_progress | blocked | done | up_next.`, EXIT_CODE.USAGE);
184
+ }
185
+ // Split on the first space; treat the head as an emoji override only
186
+ // when it carries a non-ASCII codepoint (emoji/symbol). A plain ASCII
187
+ // word is part of the title, so the section keeps its default emoji.
188
+ const spaceIdx = rawVal.indexOf(" ");
189
+ const override = {};
190
+ if (spaceIdx > 0) {
191
+ const head = rawVal.slice(0, spaceIdx);
192
+ const tail = rawVal.slice(spaceIdx + 1).trim();
193
+ const headHasNonAscii = [...head].some((ch) => ch.codePointAt(0) > 127);
194
+ if (tail && headHasNonAscii) {
195
+ override.emoji = head;
196
+ override.title = tail;
197
+ }
198
+ else {
199
+ override.title = rawVal;
200
+ }
201
+ }
202
+ else {
203
+ override.title = rawVal;
204
+ }
205
+ out[key] = override;
206
+ }
207
+ return out;
208
+ }
209
+ /**
210
+ * Parse a `--channels` spec (comma/semicolon list) into an ordered, de-duped
211
+ * list of channel targets. Each target is either a Slack channel name
212
+ * (e.g. `#team-eng`) or a full webhook URL — multi-channel posting accepts
213
+ * both (a name is shown in the message; a URL is POSTed to). Empty → [].
214
+ */
215
+ export function parseChannels(spec) {
216
+ if (!spec || !spec.trim())
217
+ return [];
218
+ const out = [];
219
+ for (const raw of spec.split(/[,;]/)) {
220
+ const token = raw.trim();
221
+ if (token && !out.includes(token))
222
+ out.push(token);
223
+ }
224
+ return out;
225
+ }
226
+ /** True when a channel token is a full webhook URL rather than a name. */
227
+ export function isWebhookUrl(token) {
228
+ return /^https?:\/\//i.test(token.trim());
229
+ }
160
230
  /**
161
231
  * Resolve the "recently closed" window start (ms epoch) from `--since` and/or
162
232
  * `--days`. `--since` is an explicit ISO date/time; `--days <n>` is N days
@@ -229,22 +299,78 @@ export function withinWindow(item, sinceMs) {
229
299
  const ts = Date.parse(item.updated_at ?? item.created_at ?? "");
230
300
  return isNaN(ts) ? false : ts >= sinceMs;
231
301
  }
302
+ /**
303
+ * True when an item carries a `blocked_by` dependency, regardless of its
304
+ * status. pm surfaces this either as a top-level `blocked_by` string (item ID
305
+ * or free-text reason) or as one/more `dependencies` entries with
306
+ * `kind: "blocked_by"`. Used to surface impediments that are NOT explicitly
307
+ * status=blocked under the Blocked section.
308
+ */
309
+ export function hasBlockedByDep(item) {
310
+ const top = item.blocked_by;
311
+ if (typeof top === "string" && top.trim().length > 0)
312
+ return true;
313
+ const deps = item.dependencies;
314
+ if (Array.isArray(deps)) {
315
+ for (const d of deps) {
316
+ if (d && typeof d.kind === "string" && d.kind.trim().toLowerCase() === "blocked_by") {
317
+ return true;
318
+ }
319
+ }
320
+ }
321
+ return false;
322
+ }
323
+ /**
324
+ * Local-day key (YYYY-MM-DD in the host's local timezone) for an item's last
325
+ * activity. Used by the `--yesterday` split. Falls back to created_at, then
326
+ * to the empty string when no timestamp is parseable.
327
+ */
328
+ export function localDayKey(item) {
329
+ const ts = Date.parse(item.updated_at ?? item.created_at ?? "");
330
+ if (isNaN(ts))
331
+ return "";
332
+ const d = new Date(ts);
333
+ const y = d.getFullYear();
334
+ const m = String(d.getMonth() + 1).padStart(2, "0");
335
+ const day = String(d.getDate()).padStart(2, "0");
336
+ return `${y}-${m}-${day}`;
337
+ }
338
+ /** Local-day key (YYYY-MM-DD) for a given epoch-ms instant. */
339
+ export function localDayKeyOf(ms) {
340
+ const d = new Date(ms);
341
+ const y = d.getFullYear();
342
+ const m = String(d.getMonth() + 1).padStart(2, "0");
343
+ const day = String(d.getDate()).padStart(2, "0");
344
+ return `${y}-${m}-${day}`;
345
+ }
232
346
  /**
233
347
  * Bucket items into standup sections.
234
348
  * `sinceMs` (epoch ms, NaN = no window) filters the Done section to items
235
349
  * updated within the window; WIP/blocked/up-next always reflect current state.
236
350
  */
237
- export function buildStandupData(items, opts, sinceMs = NaN) {
238
- const wip = items.filter((i) => WIP_STATUSES.has(statusOf(i)));
239
- const blocked = items.filter((i) => BLOCKED_STATUSES.has(statusOf(i)));
240
- const open = items.filter((i) => OPEN_STATUSES.has(statusOf(i)));
351
+ export function buildStandupData(items, opts, sinceMs = NaN, now = Date.now()) {
352
+ const isDone = (i) => DONE_STATUSES.has(statusOf(i));
353
+ // An item is "blocked" for standup purposes when its status is blocked/
354
+ // on_hold OR it carries a blocked_by dependency — but a done item is never
355
+ // re-surfaced as blocked (a closed impediment is no longer an impediment).
356
+ const isBlocked = (i) => !isDone(i) && (BLOCKED_STATUSES.has(statusOf(i)) || hasBlockedByDep(i));
357
+ const wip = items.filter((i) => WIP_STATUSES.has(statusOf(i)) && !isBlocked(i));
358
+ const blocked = items.filter(isBlocked);
359
+ const open = items.filter((i) => OPEN_STATUSES.has(statusOf(i)) && !isBlocked(i));
241
360
  const done = opts.includeDone
242
- ? items.filter((i) => DONE_STATUSES.has(statusOf(i)) && withinWindow(i, sinceMs))
361
+ ? items.filter((i) => isDone(i) && withinWindow(i, sinceMs))
243
362
  : [];
244
363
  const upNext = [...open]
245
364
  .sort((a, b) => (a.priority ?? 9999) - (b.priority ?? 9999))
246
365
  .slice(0, 3);
247
- return { wip, blocked, done, upNext, total: items.length };
366
+ const data = { wip, blocked, done, upNext, total: items.length };
367
+ if (opts.splitYesterday && done.length > 0) {
368
+ const todayKey = localDayKeyOf(now);
369
+ const yesterdayKey = localDayKeyOf(now - 86_400_000);
370
+ data.doneToday = done.filter((i) => localDayKey(i) === todayKey);
371
+ data.doneYesterday = done.filter((i) => localDayKey(i) === yesterdayKey);
372
+ }
373
+ return data;
248
374
  }
249
375
  const SECTION_META = {
250
376
  in_progress: { emoji: "🏃", title: "In Progress", emptyNote: "nothing in progress", withPriority: false },
@@ -252,11 +378,24 @@ const SECTION_META = {
252
378
  done: { emoji: "✅", title: "Done", emptyNote: null, withPriority: false },
253
379
  up_next: { emoji: "📋", title: "Up Next", emptyNote: null, withPriority: true },
254
380
  };
381
+ /**
382
+ * Apply any `--section-labels` override for `key` to the given emoji/title.
383
+ */
384
+ function labeled(key, emoji, title, opts) {
385
+ const ov = opts.sectionLabels[key];
386
+ if (!ov)
387
+ return { emoji, title };
388
+ return { emoji: ov.emoji ?? emoji, title: ov.title ?? title };
389
+ }
255
390
  /**
256
391
  * Resolve the ordered, selected section definitions for the given data.
257
392
  * `in_progress` and `blocked` always render (even empty, with their note);
258
393
  * `done` and `up_next` only render when they hold items — preserving the
259
394
  * historical message shape. `--sections` filters which keys are eligible.
395
+ *
396
+ * When `--yesterday` is active and Done has items, the single Done section is
397
+ * expanded into "Done Yesterday" + "Done Today" (only the non-empty subsets
398
+ * render), preserving the section's position in the ordering.
260
399
  */
261
400
  export function resolveSections(data, opts) {
262
401
  const itemsFor = {
@@ -274,10 +413,26 @@ export function resolveSections(data, opts) {
274
413
  const out = [];
275
414
  for (const key of opts.sections) {
276
415
  const items = itemsFor[key];
416
+ const meta = SECTION_META[key];
417
+ if (key === "done" && opts.splitYesterday && data.doneYesterday && data.doneToday) {
418
+ const subsets = [
419
+ ["Done Yesterday", data.doneYesterday],
420
+ ["Done Today", data.doneToday],
421
+ ];
422
+ // The day distinction owns the title here, so a --section-labels
423
+ // override for `done` contributes only its emoji (not its title).
424
+ const doneEmoji = opts.sectionLabels.done?.emoji ?? meta.emoji;
425
+ for (const [subTitle, subItems] of subsets) {
426
+ if (subItems.length === 0)
427
+ continue;
428
+ out.push({ key, emoji: doneEmoji, title: subTitle, items: subItems, emptyNote: meta.emptyNote, withPriority: meta.withPriority });
429
+ }
430
+ continue;
431
+ }
277
432
  if (!alwaysShow[key] && items.length === 0)
278
433
  continue;
279
- const meta = SECTION_META[key];
280
- out.push({ key, emoji: meta.emoji, title: meta.title, items, emptyNote: meta.emptyNote, withPriority: meta.withPriority });
434
+ const { emoji, title } = labeled(key, meta.emoji, meta.title, opts);
435
+ out.push({ key, emoji, title, items, emptyNote: meta.emptyNote, withPriority: meta.withPriority });
281
436
  }
282
437
  return out;
283
438
  }
@@ -530,6 +685,112 @@ function postToSlack(webhookUrl, payload) {
530
685
  req.end();
531
686
  });
532
687
  }
688
+ /**
689
+ * Resolve the ordered list of post targets from `--webhook`/env + `--channel`
690
+ * + `--channels`. Each `--channels` token is either a `#name` (posted to the
691
+ * base webhook, just changing the displayed channel) or a full webhook URL
692
+ * (posted to that URL). When no `--channels` is given, a single target using
693
+ * the base webhook + `--channel` is returned. De-dupes (webhook,channel) pairs.
694
+ */
695
+ export function resolvePostTargets(baseWebhook, baseChannel, channels) {
696
+ if (channels.length === 0) {
697
+ return [{ webhookUrl: baseWebhook, channel: baseChannel }];
698
+ }
699
+ const out = [];
700
+ const seen = new Set();
701
+ for (const token of channels) {
702
+ const target = isWebhookUrl(token)
703
+ ? { webhookUrl: token, channel: baseChannel }
704
+ : { webhookUrl: baseWebhook, channel: token };
705
+ const dedupeKey = `${target.webhookUrl}${target.channel ?? ""}`;
706
+ if (seen.has(dedupeKey))
707
+ continue;
708
+ seen.add(dedupeKey);
709
+ out.push(target);
710
+ }
711
+ return out;
712
+ }
713
+ /**
714
+ * Post the standup to every resolved target, re-rendering per target so each
715
+ * channel's message shows its own channel name. Returns a per-target result;
716
+ * never throws — the caller decides how to treat failures (e.g. fallback to
717
+ * stdout). The `poster` is injectable so this is testable without a network.
718
+ */
719
+ export async function postStandupTargets(targets, data, baseOpts, poster) {
720
+ const results = [];
721
+ for (const target of targets) {
722
+ const opts = { ...baseOpts, channel: target.channel };
723
+ const { blocks, fallback } = buildBlockKit(data, opts);
724
+ try {
725
+ await poster(target.webhookUrl, { text: fallback, blocks, mrkdwn: true });
726
+ results.push({ channel: target.channel, ok: true });
727
+ }
728
+ catch (err) {
729
+ results.push({
730
+ channel: target.channel,
731
+ ok: false,
732
+ error: err instanceof Error ? err.message : String(err),
733
+ });
734
+ }
735
+ }
736
+ return results;
737
+ }
738
+ // ---------------------------------------------------------------------------
739
+ // Preflight credential gate
740
+ // ---------------------------------------------------------------------------
741
+ /**
742
+ * Decide whether the `standup` invocation is actually going to *post* to Slack.
743
+ *
744
+ * The command has two non-posting shapes that must NOT be gated:
745
+ * - `--dry-run` : build + print the message, never touches Slack.
746
+ * Every other shape is a real post attempt (the default), including
747
+ * `--fallback-to-stdout` — that flag only means "print instead of erroring *if
748
+ * the network post fails*", it still REQUIRES a webhook to attempt the post.
749
+ */
750
+ export function isPostRequested(options) {
751
+ return !readBoolOption(options, "dry-run");
752
+ }
753
+ /**
754
+ * Resolve whether a *base* Slack webhook is required for this post. `--channels`
755
+ * may carry full webhook URLs that are self-sufficient targets; but if there is
756
+ * no `--channels` at all, or any `--channels` entry is a bare `#name`, the base
757
+ * webhook (`--webhook` / `PM_SLACK_WEBHOOK`) is needed to actually deliver.
758
+ */
759
+ export function needsBaseWebhook(channels) {
760
+ return channels.length === 0 || channels.some((c) => !isWebhookUrl(c));
761
+ }
762
+ /**
763
+ * Fail-fast credential preflight for the standup *post* path.
764
+ *
765
+ * Fires ONLY when a Slack post is actually requested (not `--dry-run`) AND the
766
+ * credentials needed to deliver it are missing. In that case it throws a
767
+ * structured {@link CommandError} (USAGE / exit 2) BEFORE any pm data is read
768
+ * or any message is rendered — a clean, actionable, non-zero abort.
769
+ *
770
+ * It deliberately does NOT block the legitimate non-posting shapes:
771
+ * - `--dry-run` (preview to stdout) is never gated.
772
+ * This keeps the existing stdout-fallback behaviour intact while turning a
773
+ * "we got all the way to the transport layer and then discovered there's no
774
+ * webhook" failure into an immediate, obvious one.
775
+ *
776
+ * NOTE: this is invoked from the command HANDLER (not from `registerPreflight`)
777
+ * on purpose. pm's runtime wraps `registerPreflight` overrides in a try/catch
778
+ * and downgrades any thrown error to a non-fatal warning, so a throw there does
779
+ * NOT abort the command. Throwing from the handler is the only reliable way to
780
+ * fail-fast with a non-zero exit. The `registerPreflight` registration below is
781
+ * a scoped pass-through that exists to surface the `preflight` capability.
782
+ */
783
+ export function preflightSlackCredentials(options) {
784
+ if (!isPostRequested(options))
785
+ return;
786
+ const webhookUrl = readStrOption(options, "webhook") ?? process.env["PM_SLACK_WEBHOOK"] ?? "";
787
+ const channels = parseChannels(readStrOption(options, "channels"));
788
+ if (!webhookUrl && needsBaseWebhook(channels)) {
789
+ throw new CommandError("Slack post requested but no webhook is configured. " +
790
+ "Set PM_SLACK_WEBHOOK or pass --webhook <url> (or provide full webhook " +
791
+ "URLs via --channels). To preview without posting, use --dry-run.", EXIT_CODE.USAGE);
792
+ }
793
+ }
533
794
  // ---------------------------------------------------------------------------
534
795
  // Shared option resolution
535
796
  // ---------------------------------------------------------------------------
@@ -541,14 +802,19 @@ function postToSlack(webhookUrl, payload) {
541
802
  export function resolveStandupOptions(options, format) {
542
803
  const since = readStrOption(options, "since");
543
804
  const days = parseDays(readStrOption(options, "days"));
805
+ const splitYesterday = readBoolOption(options, "yesterday");
544
806
  const opts = {
545
807
  channel: readStrOption(options, "channel"),
546
808
  format,
547
- includeDone: readBoolOption(options, "include-done"),
809
+ // `--yesterday` is meaningless without a Done section, so it implies
810
+ // `--include-done` (additive: passing only `--include-done` is unchanged).
811
+ includeDone: readBoolOption(options, "include-done") || splitYesterday,
548
812
  since,
549
813
  groupBy: parseGroupBy(readStrOption(options, "group-by")),
550
814
  sections: parseSections(readStrOption(options, "sections")),
551
815
  mentionMap: parseMentionMap(readStrOption(options, "mention-map")),
816
+ splitYesterday,
817
+ sectionLabels: parseSectionLabels(readStrOption(options, "section-labels")),
552
818
  };
553
819
  // `--days` implies windowing the Done section; surface it even without
554
820
  // `--include-done` being set so the footer/window stays accurate.
@@ -560,7 +826,7 @@ export function resolveStandupOptions(options, format) {
560
826
  // ---------------------------------------------------------------------------
561
827
  export default defineExtension({
562
828
  name: "pm-slack-standup",
563
- version: "2026.6.3",
829
+ version: "2026.6.4-1",
564
830
  activate(api) {
565
831
  api.registerCommand({
566
832
  name: "standup",
@@ -573,6 +839,9 @@ export default defineExtension({
573
839
  "pm standup --dry-run --format markdown --include-done --days 7",
574
840
  "pm standup --group-by assignee --mention-map 'alice=@alice.s,bob=@bob'",
575
841
  "pm standup --group-by sprint --sections in_progress,blocked",
842
+ "pm standup --dry-run --yesterday --format plain",
843
+ "pm standup --channels '#team-eng,#standups' --dry-run",
844
+ "pm standup --section-labels 'in_progress=Rolling,blocked=🔥 On Fire' --dry-run",
576
845
  "PM_SLACK_WEBHOOK=https://... pm standup --channel '#standups'",
577
846
  ],
578
847
  flags: [
@@ -586,8 +855,18 @@ export default defineExtension({
586
855
  { long: "--group-by", value_name: "field", description: "Group section items by status (default) | assignee | sprint | type" },
587
856
  { long: "--sections", value_name: "list", description: "Comma list of sections to render: in_progress,blocked,done,up_next" },
588
857
  { long: "--mention-map", value_name: "map", description: "Map pm authors to Slack handles, e.g. 'alice=@alice,bob=@bob'" },
858
+ { long: "--yesterday", description: "Split the Done section into 'Done Yesterday' / 'Done Today' by local day (implies --include-done)" },
859
+ { long: "--channels", value_name: "list", description: "Post the same standup to multiple targets: comma list of #channel names and/or webhook URLs" },
860
+ { long: "--fallback-to-stdout", description: "If the Slack post fails, print the rendered standup to stdout instead of exiting non-zero" },
861
+ { long: "--section-labels", value_name: "map", description: "Override section titles/emoji, e.g. 'in_progress=Rolling,blocked=🔥 On Fire'" },
589
862
  ],
590
863
  async run(ctx) {
864
+ // Fail-fast credential gate: if a Slack post is actually requested
865
+ // (i.e. NOT --dry-run) but no webhook is configured, abort immediately
866
+ // with a clear, actionable, non-zero error — before reading any pm data
867
+ // or rendering anything. The non-posting --dry-run preview path is never
868
+ // gated, so the legitimate stdout-fallback shape keeps working.
869
+ preflightSlackCredentials(ctx.options);
591
870
  const webhookUrl = readStrOption(ctx.options, "webhook") ?? process.env["PM_SLACK_WEBHOOK"] ?? "";
592
871
  const dryRun = readBoolOption(ctx.options, "dry-run");
593
872
  const { opts, sinceMs } = resolveStandupOptions(ctx.options, parseFormat(readStrOption(ctx.options, "format")));
@@ -612,22 +891,45 @@ export default defineExtension({
612
891
  upNext: data.upNext.length,
613
892
  };
614
893
  }
615
- // Real post path: a missing webhook is a hard, structured error (exit 1)
616
- // rather than a crash or silent success. Use --dry-run to preview.
617
- if (!webhookUrl) {
618
- throw new CommandError("No Slack webhook configured. Set PM_SLACK_WEBHOOK or pass --webhook <url>, " +
619
- "or use --dry-run to preview the message without posting.", EXIT_CODE.GENERIC_FAILURE);
894
+ const channels = parseChannels(readStrOption(ctx.options, "channels"));
895
+ const fallbackToStdout = readBoolOption(ctx.options, "fallback-to-stdout");
896
+ // Defense-in-depth: the credential preflight above already aborted any
897
+ // post with a missing base webhook. Re-assert here so this branch is
898
+ // never reached with an unusable webhook even if the gate is bypassed.
899
+ if (!webhookUrl && needsBaseWebhook(channels)) {
900
+ throw new CommandError("Slack post requested but no webhook is configured. " +
901
+ "Set PM_SLACK_WEBHOOK or pass --webhook <url>, " +
902
+ "or use --dry-run to preview the message without posting.", EXIT_CODE.USAGE);
620
903
  }
621
- const { blocks, fallback } = buildBlockKit(data, opts);
622
- try {
623
- await postToSlack(webhookUrl, { text: fallback, blocks, mrkdwn: true });
904
+ const targets = resolvePostTargets(webhookUrl, opts.channel, channels);
905
+ const results = await postStandupTargets(targets, data, opts, postToSlack);
906
+ const failures = results.filter((r) => !r.ok);
907
+ if (failures.length > 0 && fallbackToStdout) {
908
+ // Print the rendered standup so the work isn't lost on a transport
909
+ // failure. We exit 0 here: stdout delivery is the requested fallback.
910
+ for (const f of failures) {
911
+ console.error(`Slack post to ${f.channel ?? "(default channel)"} failed: ${f.error ?? "unknown error"} — falling back to stdout.`);
912
+ }
913
+ const rendered = renderStandup(data, opts);
914
+ process.stdout.write(rendered + "\n");
915
+ return {
916
+ posted: results.some((r) => r.ok),
917
+ fallbackToStdout: true,
918
+ results,
919
+ wip: data.wip.length,
920
+ blocked: data.blocked.length,
921
+ done: data.done.length,
922
+ upNext: data.upNext.length,
923
+ };
624
924
  }
625
- catch (err) {
626
- throw new CommandError(`Slack post failed: ${err instanceof Error ? err.message : String(err)}`, EXIT_CODE.GENERIC_FAILURE);
925
+ if (failures.length > 0) {
926
+ throw new CommandError(`Slack post failed for ${failures.length} of ${targets.length} target(s): ` +
927
+ failures.map((f) => `${f.channel ?? "(default)"}: ${f.error ?? "unknown"}`).join("; "), EXIT_CODE.GENERIC_FAILURE);
627
928
  }
628
929
  return {
629
930
  posted: true,
630
931
  channel: opts.channel,
932
+ channels: targets.length > 1 ? targets.map((t) => t.channel) : undefined,
631
933
  wip: data.wip.length,
632
934
  blocked: data.blocked.length,
633
935
  done: data.done.length,
@@ -636,6 +938,28 @@ export default defineExtension({
636
938
  },
637
939
  });
638
940
  // -----------------------------------------------------------------------
941
+ // Scoped preflight registration.
942
+ //
943
+ // The authoritative fail-fast credential gate lives in the `standup`
944
+ // command handler (see preflightSlackCredentials) because pm's runtime
945
+ // swallows errors thrown from a registerPreflight override (try/catch →
946
+ // non-fatal warning), so a throw here would NOT abort the command. This
947
+ // registration is therefore a scoped PASS-THROUGH: it surfaces the
948
+ // `preflight` capability and gives the standup command a place to assert
949
+ // credential readiness on the runtime preflight pass, while leaving the
950
+ // runtime's preflight decision untouched (empty delta) for every other
951
+ // command. The hard abort is enforced in the handler.
952
+ // -----------------------------------------------------------------------
953
+ api.registerPreflight((pctx) => {
954
+ if (pctx.command === "standup") {
955
+ // Mirror the handler's contract without aborting here (the runtime
956
+ // swallows throws from preflight). Returning an empty delta is an
957
+ // explicit, scoped pass-through.
958
+ return {};
959
+ }
960
+ return {};
961
+ });
962
+ // -----------------------------------------------------------------------
639
963
  // Exporter: standup → `pm standup export`
640
964
  // Writes the standup to a file (or stdout) as Markdown or JSON. JSON emits
641
965
  // the full Block Kit payload so it can be POSTed elsewhere or archived.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-slack-standup",
3
- "version": "2026.6.3",
3
+ "version": "2026.6.4-1",
4
4
  "description": "Post pm context as a Slack standup message",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
@@ -8,7 +8,8 @@
8
8
  "capabilities": [
9
9
  "commands",
10
10
  "schema",
11
- "importers"
11
+ "importers",
12
+ "preflight"
12
13
  ],
13
14
  "pm": {
14
15
  "compatibility": "v2"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-slack-standup",
3
- "version": "2026.6.3",
3
+ "version": "2026.6.4-1",
4
4
  "description": "Post pm context as a Slack standup message",
5
5
  "repository": {
6
6
  "type": "git",