octwin-cli 0.8.15 → 0.8.16
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 +11 -0
- package/dist/cli.js +14 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ repo root [`CHANGELOG.md`](../../CHANGELOG.md); this file is the CLI-only cut th
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.8.16] - 2026-10-07
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- **`octwin performance --channel` marks a figure that is not narrowed.** Capacity has no channel, so a
|
|
14
|
+
band narrowed to one prints the capacity tile with `(all channels)` rather than letting it pass as the
|
|
15
|
+
channel's own.
|
|
16
|
+
- **`octwin performance` prints a rate's change in points.** The platform
|
|
17
|
+
replaced each indicator's `delta_pct` with `change` (one rule for the console, the server and the CLI): a conversion rate going
|
|
18
|
+
42.9% → 57.1% now reads `+14.2 pts vs prev`, not `+33.1%`, and an NPS from −25 to +40 reads `+65`,
|
|
19
|
+
not `-260%`. A count still reads as a percent; growth from zero reads `new`.
|
|
20
|
+
|
|
10
21
|
## [0.8.15] - 2026-10-06
|
|
11
22
|
|
|
12
23
|
### Fixed
|
package/dist/cli.js
CHANGED
|
@@ -5373,14 +5373,24 @@ async function cmdPerformance(flags) {
|
|
|
5373
5373
|
out.print(' (none)');
|
|
5374
5374
|
for (const i of inds) {
|
|
5375
5375
|
const unit = i.unit === 'pct' ? '%' : '';
|
|
5376
|
-
// `
|
|
5377
|
-
// a
|
|
5378
|
-
|
|
5376
|
+
// `change` is the band's ONE change rule, already derived by the platform: a relative % for
|
|
5377
|
+
// a count, money or duration, POINTS for a rate, score or NPS (a % of a % misleads), and
|
|
5378
|
+
// signed the way the number moved — sign it explicitly so a fall is never read as a rise.
|
|
5379
|
+
const c = i.change ?? { kind: 'none' };
|
|
5380
|
+
const sign = (n) => `${n > 0 ? '+' : ''}${n}`;
|
|
5381
|
+
const delta = c.kind === 'relative' ? ` ${sign(c.pct)}% vs prev`
|
|
5382
|
+
: c.kind === 'points' ? ` ${sign(c.delta)}${i.unit === 'pct' ? ' pts' : ''} vs prev`
|
|
5383
|
+
: c.kind === 'from_zero' ? ' new vs prev'
|
|
5384
|
+
: c.kind === 'flat' ? ' no change vs prev'
|
|
5385
|
+
: '';
|
|
5379
5386
|
const frac = i.numerator != null && i.denominator != null
|
|
5380
5387
|
? ` (${i.numerator}/${i.denominator}${i.denominator_of ? ` ${i.denominator_of}` : ''})`
|
|
5381
5388
|
: '';
|
|
5389
|
+
// A band narrowed to one channel says so per figure: one that cannot be narrowed (capacity) is
|
|
5390
|
+
// the all-channel figure, and the line says it rather than letting it pass as the channel's.
|
|
5391
|
+
const scope = i.channel?.kind === 'not_narrowable' ? ' (all channels)' : '';
|
|
5382
5392
|
out.print(` ${String(pickLabel(i.heading) ?? i.kind).padEnd(16)} ${String(pickLabel(i.label) ?? '').padEnd(20)}`
|
|
5383
|
-
+ ` ${String(i.value ?? '—').padStart(9)}${unit}${delta}${frac}`);
|
|
5393
|
+
+ ` ${String(i.value ?? '—').padStart(9)}${unit}${delta}${frac}${scope}`);
|
|
5384
5394
|
if (i.why)
|
|
5385
5395
|
out.print(` why: ${i.why}`);
|
|
5386
5396
|
if (i.biggest_dropoff)
|
package/package.json
CHANGED