pm-brief 2026.7.23 → 2026.7.26
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 +25 -1
- package/README.md +156 -1
- package/dist/index.d.ts +328 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1114 -1
- package/dist/index.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.7.26 - 2026-07-26
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Add pm brief duplicates post-merge near-duplicate sweep ([pm-brief-58en](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/features/pm-brief-58en.toon))
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Documented install command fails: pm install github.com/unbraind/pm-brief cannot resolve an entry file ([pm-brief-xd8z](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-xd8z.toon))
|
|
12
|
+
|
|
13
|
+
## 2026.7.25 - 2026-07-25
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- pm brief diverge: pre-merge multi-agent item collision preview ([pm-brief-vj2y](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/features/pm-brief-vj2y.toon))
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- CHANGELOG mislabels shipped 2026.7.23 work as Unreleased, leaving changelog:check red ([pm-brief-edam](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-edam.toon))
|
|
22
|
+
|
|
23
|
+
### Other
|
|
24
|
+
|
|
25
|
+
- Adopt --respect-item-release so release attribution matches the rest of the fleet ([pm-brief-ce55](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/chores/pm-brief-ce55.toon))
|
|
26
|
+
|
|
3
27
|
## 2026.7.23 - 2026-07-23
|
|
4
28
|
|
|
5
29
|
### Added
|
|
@@ -26,7 +50,7 @@
|
|
|
26
50
|
|
|
27
51
|
- brief: blocked_by edges doubled in blockers/risks (dependencies + blocked_by both parsed) ([pm-brief-o4s9](https://github.com/unbraind/pm-brief/blob/main/.agents/pm/issues/pm-brief-o4s9.toon))
|
|
28
52
|
|
|
29
|
-
## 2026.7.
|
|
53
|
+
## 2026.7.11-2 - 2026-07-11
|
|
30
54
|
|
|
31
55
|
### Other
|
|
32
56
|
|
package/README.md
CHANGED
|
@@ -10,9 +10,14 @@ an agent needs a low-token handoff instead of a full project dump.
|
|
|
10
10
|
## Install
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
pm install
|
|
13
|
+
pm install npm:pm-brief --project
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
> The `npm:` prefix is required. A bare `pm install pm-brief` resolves only a local
|
|
17
|
+
> directory or a bundled alias, never the registry, and a
|
|
18
|
+
> `github.com/unbraind/pm-brief` source cannot work either — pm copies a GitHub
|
|
19
|
+
> source as-is without building it, and this repository does not commit `dist/`.
|
|
20
|
+
|
|
16
21
|
## Usage
|
|
17
22
|
|
|
18
23
|
```bash
|
|
@@ -40,6 +45,8 @@ pm brief since 2026-07-20T00:00:00Z --until 2026-07-22 --author alice
|
|
|
40
45
|
- `pm brief next` returns the ranked next items only.
|
|
41
46
|
- `pm brief stale` returns stale open or in-progress items.
|
|
42
47
|
- `pm brief since <checkpoint>` renders a delta brief of what changed since a checkpoint.
|
|
48
|
+
- `pm brief diverge [base]` previews pm item collisions between two branches **before** merging.
|
|
49
|
+
- `pm brief duplicates` sweeps the merged tracker for near-duplicate items the create-time advisory cannot see across branches.
|
|
43
50
|
|
|
44
51
|
### Ranking and Budget Flags
|
|
45
52
|
|
|
@@ -117,6 +124,154 @@ notes, so the resuming agent can update its plan without re-reading the whole
|
|
|
117
124
|
workspace. The brief ends with a `## Refresh` block showing the exact command
|
|
118
125
|
that reproduces it.
|
|
119
126
|
|
|
127
|
+
### Pre-merge collision preview (`pm brief diverge`)
|
|
128
|
+
|
|
129
|
+
`pm brief since` is the *post*-merge half of the multi-agent workflow. `pm brief
|
|
130
|
+
diverge [base]` is the *pre*-merge half: it answers "which pm items did both
|
|
131
|
+
branches touch, and will the field-aware merge driver resolve them cleanly?"
|
|
132
|
+
before you run `git merge` — rather than after, when `pm merge reconcile` is
|
|
133
|
+
repairing the damage.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
pm brief diverge # HEAD vs origin/HEAD (else main, else master)
|
|
137
|
+
pm brief diverge main # explicit base
|
|
138
|
+
pm brief diverge --base main --head feat/other # neither side has to be checked out
|
|
139
|
+
pm brief diverge --base main --format json # machine-readable for agents
|
|
140
|
+
pm brief diverge --base main --include-clean # also list one-sided items individually
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
It reads each item's append-only history ledger at the merge base, the base tip
|
|
144
|
+
and the head tip, diffs the JSON-Patch paths each side added, and classifies
|
|
145
|
+
every item:
|
|
146
|
+
|
|
147
|
+
| Classification | Severity | Meaning |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| `duplicate-id` | high | Both branches minted the **same item id** after the merge base. The driver cannot fix this — one side must be re-keyed. |
|
|
150
|
+
| `delete-vs-edit` | high | One side deleted the item while the other edited it. |
|
|
151
|
+
| `field-collision` | medium | Both sides wrote the **same field**. The driver resolves it via `--prefer`, so review the losing value. |
|
|
152
|
+
| `union-safe` | low | Both sides touched the item but **disjoint fields** — the driver merges both and unions the history. |
|
|
153
|
+
| `head-only` / `base-only` | — | Only one side touched it; nothing to resolve. |
|
|
154
|
+
|
|
155
|
+
`/metadata/updated_at` is treated as benign: it changes on every write and never
|
|
156
|
+
produces a collision verdict on its own.
|
|
157
|
+
|
|
158
|
+
The verdict is `clean` (no item touched by both sides), `union-safe` (all
|
|
159
|
+
both-sided items have disjoint fields), or `review-required` (any high/medium
|
|
160
|
+
finding).
|
|
161
|
+
|
|
162
|
+
**Merge fence check.** The report also verifies the field-aware driver is
|
|
163
|
+
actually installed — the `.gitattributes` entries *and* the `merge.*.driver` git
|
|
164
|
+
config. Without both, even `union-safe` items hard-conflict, so a missing fence
|
|
165
|
+
is reported as a warning with `pm merge install` as the first recommended step.
|
|
166
|
+
|
|
167
|
+
**Unrelated histories.** When the refs share no merge base, `unrelatedHistories`
|
|
168
|
+
is `true` in the JSON (an explicit boolean, because `JSON.stringify` drops the
|
|
169
|
+
`undefined` `ancestorSha`), every changed item is reported one-sided, and the
|
|
170
|
+
recommended merge command becomes `git merge --allow-unrelated-histories <base>`
|
|
171
|
+
— the bare form git refuses outright.
|
|
172
|
+
|
|
173
|
+
Each report ends with an ordered `Recommended next steps` block containing only
|
|
174
|
+
the commands that apply, including `pm history <id> --verify` per high-severity
|
|
175
|
+
item and a `pm brief since <merge-base-date>` for post-merge re-orientation.
|
|
176
|
+
|
|
177
|
+
### Post-merge duplicate sweep (`pm brief duplicates`)
|
|
178
|
+
|
|
179
|
+
`pm brief diverge` closes the *pre*-merge gap. There is still one hole it cannot
|
|
180
|
+
reach: two agents who each create a **new** item on their own branch both land
|
|
181
|
+
cleanly on `main` — the field-aware merge driver is deliberately conflict-free
|
|
182
|
+
for that — and neither create-time duplicate advisory can see the other, because
|
|
183
|
+
the other item does not exist in that branch's tracker yet. `main` now holds two
|
|
184
|
+
items for one problem and nothing ever flags it.
|
|
185
|
+
|
|
186
|
+
`pm brief duplicates` is the post-merge sweep that closes that loop. It enumerates
|
|
187
|
+
the merged tracker, asks the shared SDK `findSimilarItems` primitive (the same
|
|
188
|
+
one `pm create` advisory mode uses, so the two agree exactly) for near-duplicate
|
|
189
|
+
matches per candidate, and collapses bidirectional matches into unordered pairs
|
|
190
|
+
ranked by score.
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
pm brief duplicates # default threshold 0.6, all statuses
|
|
194
|
+
pm brief duplicates --threshold 0.5 # looser match cutoff (0..1 inclusive)
|
|
195
|
+
pm brief duplicates --since 2026-07-25 # post-merge mode: only items created at/after this merge
|
|
196
|
+
pm brief duplicates --status open,closed --limit 5 # filter candidates, cap pairs reported
|
|
197
|
+
pm brief duplicates --format json # bare object, no envelope
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
For each pair it emits both ids, titles, statuses, types, the score rounded to
|
|
201
|
+
three decimals, the SDK match reason, and an **advisory** remediation command
|
|
202
|
+
(never executed by this command):
|
|
203
|
+
- when exactly one of the pair is closed, it suggests linking the open item to
|
|
204
|
+
the closed one: `pm update <open-id> --dep id=<closed-id>,kind=related`;
|
|
205
|
+
- when both are open (or both closed), it keeps the older item by `created_at` as
|
|
206
|
+
canonical and relates the newer to it.
|
|
207
|
+
|
|
208
|
+
A clean tracker is a success, not an error — the command exits 0 with an explicit
|
|
209
|
+
`No likely duplicate items found` line.
|
|
210
|
+
|
|
211
|
+
**Choosing a threshold.** This matters more than it looks: the default `0.6` is
|
|
212
|
+
deliberately conservative, and real cross-agent paraphrases often score *below*
|
|
213
|
+
it. The worked example below scores `0.5` — two agents describing the same flaky
|
|
214
|
+
test — so a default-threshold sweep would not report it. `title_token_jaccard`
|
|
215
|
+
compares token sets, so paraphrases that agree on the problem but not the wording
|
|
216
|
+
score lower than an intuition calibrated on "these are obviously the same bug"
|
|
217
|
+
would suggest.
|
|
218
|
+
|
|
219
|
+
Practical guidance:
|
|
220
|
+
|
|
221
|
+
- `--threshold 0.4` for a genuine post-merge sweep, where a handful of false
|
|
222
|
+
pairs to eyeball costs far less than a duplicate that survives on `main`.
|
|
223
|
+
- `0.6` (default) when you want only high-confidence pairs, e.g. in automation
|
|
224
|
+
that acts without a human reading the output.
|
|
225
|
+
- Exact-title collisions surface as `reason: exact_title` and score `1.0`, so any
|
|
226
|
+
threshold catches them; the tuning only affects paraphrases.
|
|
227
|
+
|
|
228
|
+
For comparison, create-time advisory mode uses `governance.duplicate_detection_threshold`,
|
|
229
|
+
which defaults to `0.8` — this sweep is already the more sensitive of the two.
|
|
230
|
+
|
|
231
|
+
**Cost, and why `--since` is the mode you usually want.** Scoring runs through the
|
|
232
|
+
shared SDK primitive per candidate, so an unscoped sweep is inherently
|
|
233
|
+
`candidates x tracker-scan`. Measured on a real 1,934-item tracker (pm-cli's own):
|
|
234
|
+
|
|
235
|
+
| invocation | candidates | elapsed | peak RSS |
|
|
236
|
+
| --- | --- | --- | --- |
|
|
237
|
+
| `pm brief duplicates` (full sweep) | 1,934 | 36.3s | 268 MB |
|
|
238
|
+
| `pm brief duplicates --since <merge-date>` | 42 | 2.7s | 271 MB |
|
|
239
|
+
|
|
240
|
+
Scans run with bounded concurrency (8 in flight). That was measured rather than
|
|
241
|
+
assumed, and the honest result is a **modest** wall-clock gain — 39.1s to 36.3s,
|
|
242
|
+
about 7% — because `findSimilarItems` is CPU-bound, and concurrency cannot
|
|
243
|
+
parallelize CPU work on a single-threaded event loop. What it does buy is peak
|
|
244
|
+
memory: **526 MB down to 268 MB**, because results are collapsed as they arrive
|
|
245
|
+
instead of N full result sets accumulating.
|
|
246
|
+
|
|
247
|
+
The full sweep is a whole-tracker audit — fine to run occasionally, but it is not
|
|
248
|
+
what this command is for. **`--since <merge-timestamp>` is the post-merge mode**
|
|
249
|
+
and the one that keeps the cost proportional to what the merge actually
|
|
250
|
+
introduced. Trackers of a few hundred items complete quickly either way.
|
|
251
|
+
|
|
252
|
+
The cost is not avoidable from outside the SDK today: `findSimilarItems` is a
|
|
253
|
+
per-candidate query with no batch entry point, and the exported
|
|
254
|
+
`scoreItemSimilarity` re-tokenizes both titles on every call, so precomputing
|
|
255
|
+
tokens and pre-filtering on `jaccardSimilarity` would silently drop `issue_code`
|
|
256
|
+
matches (two titles sharing an issue code score ~0.99 while their token overlap
|
|
257
|
+
can sit well below any useful threshold). Reimplementing that signal locally would
|
|
258
|
+
break the exact agreement with create-time advisory that this command depends on,
|
|
259
|
+
so it is deliberately not done. Filed upstream as
|
|
260
|
+
[pm-cli#709](https://github.com/unbraind/pm-cli/issues/709).
|
|
261
|
+
|
|
262
|
+
Example output on a tracker where two agents each filed the same flaky test from
|
|
263
|
+
different branches:
|
|
264
|
+
|
|
265
|
+
```console
|
|
266
|
+
$ pm brief duplicates --threshold 0.3
|
|
267
|
+
pm brief duplicates — 1 likely duplicate pair(s) (threshold 0.3, scanned 3)
|
|
268
|
+
|
|
269
|
+
pm-p800|pm-plbh score 0.5 title_token_jaccard
|
|
270
|
+
pm-p800: flaky auth test fails intermittently (Task, open)
|
|
271
|
+
pm-plbh: Fix flaky auth test (Task, open)
|
|
272
|
+
→ pm update pm-p800 --dep id=pm-plbh,kind=related
|
|
273
|
+
```
|
|
274
|
+
|
|
120
275
|
## TypeScript API
|
|
121
276
|
|
|
122
277
|
```ts
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SimilarItemMatch } from "@unbrained/pm-cli/sdk";
|
|
2
|
+
export type { SimilarItemMatch } from "@unbrained/pm-cli/sdk";
|
|
1
3
|
export declare const EXIT_CODE: {
|
|
2
4
|
readonly GENERIC_FAILURE: 1;
|
|
3
5
|
readonly USAGE: 2;
|
|
@@ -319,6 +321,332 @@ export declare function normalizeCheckpoint(value: string): string;
|
|
|
319
321
|
export declare function renderMarkdownDelta(summary: DeltaSummary): string;
|
|
320
322
|
export declare function renderTextDelta(summary: DeltaSummary): string;
|
|
321
323
|
export declare function renderSlackDelta(summary: DeltaSummary): string;
|
|
324
|
+
/** Fields that change on every write and must never, on their own, cause a collision. */
|
|
325
|
+
export declare const BENIGN_FIELDS: Set<string>;
|
|
326
|
+
export interface DivergeEvent {
|
|
327
|
+
ts: string;
|
|
328
|
+
author?: string;
|
|
329
|
+
op: string;
|
|
330
|
+
patch?: Array<{
|
|
331
|
+
op: "add" | "replace" | "remove" | string;
|
|
332
|
+
path: string;
|
|
333
|
+
value?: unknown;
|
|
334
|
+
}>;
|
|
335
|
+
before_hash?: string;
|
|
336
|
+
after_hash?: string;
|
|
337
|
+
}
|
|
338
|
+
export interface DivergeItemSide {
|
|
339
|
+
events: DivergeEvent[];
|
|
340
|
+
itemPresent: boolean;
|
|
341
|
+
malformedLines?: number;
|
|
342
|
+
}
|
|
343
|
+
export type DivergeKind = "head-only" | "base-only" | "unchanged" | "duplicate-id" | "delete-vs-edit" | "field-collision" | "union-safe";
|
|
344
|
+
export interface DivergeItem {
|
|
345
|
+
id: string;
|
|
346
|
+
kind: DivergeKind;
|
|
347
|
+
severity: "low" | "medium" | "high";
|
|
348
|
+
collidingFields: string[];
|
|
349
|
+
base: {
|
|
350
|
+
eventCount: number;
|
|
351
|
+
authors: string[];
|
|
352
|
+
firstTs: string | undefined;
|
|
353
|
+
lastTs: string | undefined;
|
|
354
|
+
fields: string[];
|
|
355
|
+
itemPresent: boolean;
|
|
356
|
+
malformedLines: number;
|
|
357
|
+
};
|
|
358
|
+
head: {
|
|
359
|
+
eventCount: number;
|
|
360
|
+
authors: string[];
|
|
361
|
+
firstTs: string | undefined;
|
|
362
|
+
lastTs: string | undefined;
|
|
363
|
+
fields: string[];
|
|
364
|
+
itemPresent: boolean;
|
|
365
|
+
malformedLines: number;
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
export interface FenceStatus {
|
|
369
|
+
attributesInstalled: boolean;
|
|
370
|
+
driversConfigured: boolean;
|
|
371
|
+
ok: boolean;
|
|
372
|
+
missing: string[];
|
|
373
|
+
}
|
|
374
|
+
export interface DivergenceSummary {
|
|
375
|
+
base: string;
|
|
376
|
+
head: string;
|
|
377
|
+
baseSha: string;
|
|
378
|
+
headSha: string;
|
|
379
|
+
ancestorSha: string | undefined;
|
|
380
|
+
/**
|
|
381
|
+
* True when base and head share no common ancestor. Always present so a JSON
|
|
382
|
+
* consumer never has to infer it from an omitted `ancestorSha` (JSON.stringify
|
|
383
|
+
* drops `undefined`). A `clean` verdict here means only "no item was touched by
|
|
384
|
+
* both sides" — an unrelated-histories merge still rewrites the whole tree and
|
|
385
|
+
* needs `--allow-unrelated-histories`, so the flag must be machine-readable.
|
|
386
|
+
*/
|
|
387
|
+
unrelatedHistories: boolean;
|
|
388
|
+
workspace: string;
|
|
389
|
+
pmVersion: string;
|
|
390
|
+
generatedAt: string;
|
|
391
|
+
verdict: "clean" | "union-safe" | "review-required";
|
|
392
|
+
totals: {
|
|
393
|
+
itemsChanged: number;
|
|
394
|
+
headOnly: number;
|
|
395
|
+
baseOnly: number;
|
|
396
|
+
unionSafe: number;
|
|
397
|
+
fieldCollision: number;
|
|
398
|
+
duplicateId: number;
|
|
399
|
+
deleteVsEdit: number;
|
|
400
|
+
};
|
|
401
|
+
items: DivergeItem[];
|
|
402
|
+
truncated?: boolean;
|
|
403
|
+
omittedItems?: number;
|
|
404
|
+
budget?: {
|
|
405
|
+
requestedTokens: number;
|
|
406
|
+
estimatedTokens: number;
|
|
407
|
+
};
|
|
408
|
+
fence: FenceStatus;
|
|
409
|
+
recommendedCommands: string[];
|
|
410
|
+
}
|
|
411
|
+
/** `git rev-parse --show-toplevel`; throws CommandError if not a git repo. */
|
|
412
|
+
export declare function resolveRepoRoot(cwd: string): string;
|
|
413
|
+
/** `git rev-parse --verify <ref>^{commit}`; throws CommandError naming the unknown ref. */
|
|
414
|
+
export declare function resolveRef(repoRoot: string, ref: string): string;
|
|
415
|
+
/** Try origin/HEAD, main, master — return the first ref that resolves. Throw if none. */
|
|
416
|
+
export declare function detectDefaultBase(repoRoot: string): string;
|
|
417
|
+
/**
|
|
418
|
+
* `git merge-base a b`; undefined when the refs share no ancestor (unrelated
|
|
419
|
+
* histories). Exit status 1 is that legitimate "no merge base" answer; any other
|
|
420
|
+
* non-zero status is a real failure and must not be reported as unrelated
|
|
421
|
+
* histories.
|
|
422
|
+
*/
|
|
423
|
+
export declare function mergeBase(repoRoot: string, a: string, b: string): string | undefined;
|
|
424
|
+
/** `git diff --name-only --diff-filter=ACMRD <from> <to> -- <pathspec>`, or `git ls-tree` when fromSha is undefined. */
|
|
425
|
+
export declare function listChangedPaths(repoRoot: string, fromSha: string | undefined, toSha: string, pathspec: string): string[];
|
|
426
|
+
/**
|
|
427
|
+
* `git show <sha>:<path>`; undefined when the path does not exist at that
|
|
428
|
+
* revision — the normal signal for "this item did not exist yet on that side".
|
|
429
|
+
*
|
|
430
|
+
* git reports a missing path with status 128 and a recognizable stderr, which is
|
|
431
|
+
* also the status it uses for genuine errors (bad object, unreadable repo). The
|
|
432
|
+
* stderr shape is therefore matched explicitly so a corrupt object cannot be
|
|
433
|
+
* silently read as an absent item.
|
|
434
|
+
*/
|
|
435
|
+
export declare function readBlob(repoRoot: string, sha: string, path: string): string | undefined;
|
|
436
|
+
/** Derive the pm workspace path relative to the repo root, normalized to POSIX separators. */
|
|
437
|
+
export declare function pmRootRelFromCtx(pmRoot: string, repoRoot: string): string;
|
|
438
|
+
/**
|
|
439
|
+
* Single-pass scan of a JSON-Lines history ledger.
|
|
440
|
+
*
|
|
441
|
+
* Returns the usable events *and* the count of unusable non-blank lines from one
|
|
442
|
+
* `JSON.parse` per line. Doing this in one pass is both a correctness and a cost
|
|
443
|
+
* fix: two independent scans previously disagreed about what "malformed" means —
|
|
444
|
+
* a line that parsed as an object but carried no `ts` was dropped from the events
|
|
445
|
+
* yet not counted as malformed, so the report under-stated exactly the data loss a
|
|
446
|
+
* pre-merge check exists to surface. Ledgers can approach the 64 MiB read buffer,
|
|
447
|
+
* so parsing each line twice was also the dominant cost of the command.
|
|
448
|
+
*
|
|
449
|
+
* "Unusable" therefore means any non-blank line that is not parseable JSON, is not
|
|
450
|
+
* an object, or lacks a usable `ts` — the same predicate that decides whether the
|
|
451
|
+
* line contributes an event.
|
|
452
|
+
*/
|
|
453
|
+
export declare function scanHistoryJsonl(text: string | undefined): {
|
|
454
|
+
events: DivergeEvent[];
|
|
455
|
+
malformedLines: number;
|
|
456
|
+
};
|
|
457
|
+
/** Parse a JSON-Lines history ledger text into DivergeEvent[]; thin wrapper over {@link scanHistoryJsonl}. */
|
|
458
|
+
export declare function parseHistoryJsonl(text: string | undefined): DivergeEvent[];
|
|
459
|
+
/** Count unusable (non-blank, non-event) lines in a history ledger text; thin wrapper over {@link scanHistoryJsonl}. */
|
|
460
|
+
export declare function countMalformedLines(text: string | undefined): number;
|
|
461
|
+
/** Identity key for an event: after_hash when available, else ts|author|op. */
|
|
462
|
+
export declare function eventKey(e: DivergeEvent): string;
|
|
463
|
+
/** Events on a side whose key is not in the ancestor set. */
|
|
464
|
+
export declare function newEvents(sideEvents: DivergeEvent[], ancestorKeys: Set<string>): DivergeEvent[];
|
|
465
|
+
/** Extract every patch[].path, normalizing trailing numeric segments so array appends merge. */
|
|
466
|
+
export declare function changedFieldPaths(events: DivergeEvent[]): Set<string>;
|
|
467
|
+
/** Normalize trailing numeric array segments: /metadata/tags/3 → /metadata/tags. */
|
|
468
|
+
export declare function normalizeFieldPath(path: string): string;
|
|
469
|
+
export declare function classifyItemDivergence(input: {
|
|
470
|
+
id: string;
|
|
471
|
+
ancestor: DivergeItemSide;
|
|
472
|
+
base: DivergeItemSide;
|
|
473
|
+
head: DivergeItemSide;
|
|
474
|
+
}): DivergeItem;
|
|
475
|
+
/**
|
|
476
|
+
* Ask git which merge driver it would actually apply to representative pm paths.
|
|
477
|
+
*
|
|
478
|
+
* `git check-attr` is the authoritative resolver: it honours `.gitattributes` in
|
|
479
|
+
* every parent directory of the target, the untracked `.git/info/attributes`, and
|
|
480
|
+
* the global/system attributes files. Parsing only the repo-root `.gitattributes`
|
|
481
|
+
* misses all of those, so a correctly fenced workspace could be reported as
|
|
482
|
+
* unfenced — a false warning that tells the agent to run `pm merge install` it does
|
|
483
|
+
* not need, and, worse, leaves the reverse case (reporting a fence that git will not
|
|
484
|
+
* apply) equally possible.
|
|
485
|
+
*
|
|
486
|
+
* Returns a map of probe path to resolved `merge` attribute value. Values git
|
|
487
|
+
* reports as `unspecified`, `unset` or `set` carry no driver name and are dropped.
|
|
488
|
+
*/
|
|
489
|
+
export declare function checkAttrMerge(repoRoot: string, paths: string[]): Map<string, string>;
|
|
490
|
+
/**
|
|
491
|
+
* Build the probe paths whose resolved `merge` attribute decides fence status: one
|
|
492
|
+
* history ledger and one item file. Real paths from the divergence scan are
|
|
493
|
+
* preferred so the probe reflects the directories actually in play; the
|
|
494
|
+
* conventional fallbacks keep the check meaningful when nothing changed.
|
|
495
|
+
*/
|
|
496
|
+
export declare function fenceProbePaths(pmRootRel: string, observedItemPath?: string): {
|
|
497
|
+
historyPath: string;
|
|
498
|
+
itemPath: string;
|
|
499
|
+
};
|
|
500
|
+
export declare function evaluateFence(input: {
|
|
501
|
+
/** Resolved `merge` attribute for an item `.toon` path, from `git check-attr`. */
|
|
502
|
+
itemToonAttr?: string;
|
|
503
|
+
/** Resolved `merge` attribute for a history `.jsonl` path, from `git check-attr`. */
|
|
504
|
+
historyAttr?: string;
|
|
505
|
+
itemToonDriver?: string;
|
|
506
|
+
historyDriver?: string;
|
|
507
|
+
}): FenceStatus;
|
|
508
|
+
export declare function buildDivergence(items: DivergeItem[], options: {
|
|
509
|
+
base: string;
|
|
510
|
+
head: string;
|
|
511
|
+
baseSha: string;
|
|
512
|
+
headSha: string;
|
|
513
|
+
ancestorSha: string | undefined;
|
|
514
|
+
workspace: string;
|
|
515
|
+
pmVersion: string;
|
|
516
|
+
generatedAt?: string;
|
|
517
|
+
fence: FenceStatus;
|
|
518
|
+
includeClean?: boolean;
|
|
519
|
+
maxItems?: number;
|
|
520
|
+
tokenBudget?: number;
|
|
521
|
+
format?: string;
|
|
522
|
+
ancestorDate?: string;
|
|
523
|
+
}): DivergenceSummary;
|
|
524
|
+
export declare function renderMarkdownDivergence(summary: DivergenceSummary): string;
|
|
525
|
+
export declare function renderTextDivergence(summary: DivergenceSummary): string;
|
|
526
|
+
export declare function renderSlackDivergence(summary: DivergenceSummary): string;
|
|
527
|
+
/** One side of a collapsed duplicate pair, carrying the fields the report needs. */
|
|
528
|
+
export interface DuplicatePairItem {
|
|
529
|
+
/** Stable item id from the pm tracker. */
|
|
530
|
+
id: string;
|
|
531
|
+
/** Item title as stored in the tracker. */
|
|
532
|
+
title: string;
|
|
533
|
+
/** Lifecycle status (open, in_progress, closed, ...). */
|
|
534
|
+
status: string;
|
|
535
|
+
/** Item type (Task, Feature, Issue, ...). */
|
|
536
|
+
type: string;
|
|
537
|
+
/** Creation timestamp (ISO) used to pick the canonical item; undefined when missing. */
|
|
538
|
+
createdAt?: string;
|
|
539
|
+
}
|
|
540
|
+
/** A collapsed, unordered near-duplicate pair keyed by a stable sorted-id pair. */
|
|
541
|
+
export interface DuplicatePair {
|
|
542
|
+
/** Stable sorted-id pair key, e.g. "pm-a|pm-b". */
|
|
543
|
+
id: string;
|
|
544
|
+
/** Both members of the pair, sorted by id for stable output. */
|
|
545
|
+
items: [DuplicatePairItem, DuplicatePairItem];
|
|
546
|
+
/** Highest similarity score observed for the pair, rounded to 3 decimals. */
|
|
547
|
+
score: number;
|
|
548
|
+
/** Strongest deterministic match signal from the SDK (`exact_title`, `issue_code`, or `title_token_jaccard`). */
|
|
549
|
+
reason: SimilarItemMatch["reason"];
|
|
550
|
+
/** Advisory remediation command string; never executed by this command. */
|
|
551
|
+
remediation: string;
|
|
552
|
+
}
|
|
553
|
+
/** Options controlling which items are scanned and how pairs are ranked/truncated. */
|
|
554
|
+
export interface DuplicateSweepOptions {
|
|
555
|
+
/** Inclusive similarity threshold on the 0..1 scale (default 0.6). */
|
|
556
|
+
threshold?: number;
|
|
557
|
+
/** Maximum pairs to report, after ranking (default 20). */
|
|
558
|
+
limit?: number;
|
|
559
|
+
/** Statuses to consider as scan candidates; empty means all statuses. */
|
|
560
|
+
statuses?: string[];
|
|
561
|
+
/** When set, only items whose `created_at` is at or after this ISO timestamp are scanned. */
|
|
562
|
+
since?: string;
|
|
563
|
+
/** Timestamp used for the report header; defaults to now. */
|
|
564
|
+
generatedAt?: string;
|
|
565
|
+
/**
|
|
566
|
+
* Candidates already selected by the caller. Supplying this skips re-running
|
|
567
|
+
* the status/since filter and keeps one source of truth for the candidate set.
|
|
568
|
+
*/
|
|
569
|
+
candidates?: readonly PmItem[];
|
|
570
|
+
}
|
|
571
|
+
/** Result of a post-merge near-duplicate sweep, returned as a bare object for JSON output. */
|
|
572
|
+
export interface DuplicateSweepSummary {
|
|
573
|
+
/** Pairs ranked by score descending then pair id, truncated to `limit`. */
|
|
574
|
+
pairs: DuplicatePair[];
|
|
575
|
+
/** Number of pairs in `pairs` (equals `pairs.length`). */
|
|
576
|
+
count: number;
|
|
577
|
+
/** Total ranked pairs found before truncation to `limit`. */
|
|
578
|
+
total: number;
|
|
579
|
+
/** True when `limit` hid pairs, so `count` is not the whole finding. */
|
|
580
|
+
truncated: boolean;
|
|
581
|
+
/** Effective threshold applied to every `findSimilarItems` call. */
|
|
582
|
+
threshold: number;
|
|
583
|
+
/** Number of candidate items actually scanned with `findSimilarItems`. */
|
|
584
|
+
scanned: number;
|
|
585
|
+
/** ISO timestamp the summary was generated. */
|
|
586
|
+
generatedAt: string;
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Select the candidate items that `brief duplicates` will scan with the SDK
|
|
590
|
+
* similarity primitive. Mirrors the `--status` / `--since` filtering of the
|
|
591
|
+
* command line: an empty `statuses` list means all statuses, and `since` keeps
|
|
592
|
+
* only items created at or after the given ISO timestamp (post-merge mode).
|
|
593
|
+
*/
|
|
594
|
+
export declare function selectDuplicateCandidates(items: PmItem[], options?: DuplicateSweepOptions): PmItem[];
|
|
595
|
+
/**
|
|
596
|
+
* Parse a `--since` value as a strict ISO 8601 timestamp (a bare date such as
|
|
597
|
+
* `2026-07-20` or a full `2026-07-20T00:00:00Z`). Throws a `CommandError` with a
|
|
598
|
+
* usage exit code when the value is not a parseable ISO timestamp, instead of
|
|
599
|
+
* silently returning an empty result (the silent-empty bug filed as pm-cli#651).
|
|
600
|
+
*/
|
|
601
|
+
export declare function parseSinceTimestamp(raw: string): string;
|
|
602
|
+
/**
|
|
603
|
+
* Parse and validate `--threshold` on the inclusive 0..1 scale. Rejects
|
|
604
|
+
* non-numeric, below-zero, and above-one values with a `CommandError` usage exit.
|
|
605
|
+
*/
|
|
606
|
+
export declare function parseDuplicateThreshold(raw: string | undefined, fallback: number): number;
|
|
607
|
+
/**
|
|
608
|
+
* Build the advisory remediation command for a collapsed pair. The command is
|
|
609
|
+
* output only and is never executed by `brief duplicates`:
|
|
610
|
+
* - exactly one member closed → relate the open item to the closed one;
|
|
611
|
+
* - otherwise (both open, both closed, or unknown) → keep the older (by
|
|
612
|
+
* `created_at`) as canonical and relate the newer to it, falling back to id
|
|
613
|
+
* ordering when creation timestamps are missing.
|
|
614
|
+
*/
|
|
615
|
+
export declare function duplicateRemediationCommand(a: DuplicatePairItem, b: DuplicatePairItem): string;
|
|
616
|
+
/**
|
|
617
|
+
* Collapse raw per-candidate similarity matches into unordered pairs. When A
|
|
618
|
+
* matches B and B matches A, a single pair keyed on the stable sorted-id pair is
|
|
619
|
+
* emitted and keeps the highest score (and that score's reason) seen in either
|
|
620
|
+
* direction. Pairs are ranked by score descending then pair id for stable output.
|
|
621
|
+
*/
|
|
622
|
+
export declare function collapseDuplicatePairs(candidates: readonly PmItem[], matchesByCandidate: ReadonlyMap<string, readonly SimilarItemMatch[]>, itemsById: ReadonlyMap<string, PmItem>): DuplicatePair[];
|
|
623
|
+
/**
|
|
624
|
+
* Score every candidate against the tracker with the shared SDK similarity
|
|
625
|
+
* primitive, running at most {@link DUPLICATE_SCAN_CONCURRENCY} scans at a time.
|
|
626
|
+
*
|
|
627
|
+
* Concurrency is safe and order-independent here: each scan is an independent
|
|
628
|
+
* read, and `collapseDuplicatePairs` folds the results into unordered pairs and
|
|
629
|
+
* re-sorts them, so the completion order cannot change the report. The cap exists
|
|
630
|
+
* so a large workspace does not open an unbounded number of concurrent reads.
|
|
631
|
+
*
|
|
632
|
+
* Do not expect a large speed-up from raising the cap: the underlying scan is
|
|
633
|
+
* CPU-bound, so on a 1,934-item tracker this bought ~7% wall clock but halved peak
|
|
634
|
+
* memory (526MB to 268MB). See pm-cli#709 for the batch primitive that would
|
|
635
|
+
* actually remove the cost.
|
|
636
|
+
*/
|
|
637
|
+
export declare function scanCandidatesForDuplicates(candidates: readonly PmItem[], pmRoot: string, threshold: number): Promise<Map<string, SimilarItemMatch[]>>;
|
|
638
|
+
/**
|
|
639
|
+
* Build the full duplicate-sweep summary from precomputed per-candidate matches.
|
|
640
|
+
* This is the pure, testable core of `brief duplicates`: it selects candidates
|
|
641
|
+
* (status/since filtering), collapses matches into ranked pairs, truncates to
|
|
642
|
+
* `limit`, and attaches the report metadata. The command handler supplies the
|
|
643
|
+
* `findSimilarItems` results so tests never need a live tracker.
|
|
644
|
+
*/
|
|
645
|
+
export declare function buildDuplicateSweep(items: PmItem[], matchesByCandidate: ReadonlyMap<string, readonly SimilarItemMatch[]>, options?: DuplicateSweepOptions): DuplicateSweepSummary;
|
|
646
|
+
/** Render a duplicate-sweep summary as plain text (the default format). */
|
|
647
|
+
export declare function renderTextDuplicates(summary: DuplicateSweepSummary): string;
|
|
648
|
+
/** Render a duplicate-sweep summary as markdown. */
|
|
649
|
+
export declare function renderMarkdownDuplicates(summary: DuplicateSweepSummary): string;
|
|
322
650
|
declare const _default: {
|
|
323
651
|
name: string;
|
|
324
652
|
version: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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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"}
|