@indigoai-us/hq-cli 5.345.100 → 5.345.101
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
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [5.345.101] — 2026-10-12
|
|
6
|
+
- Doctor JSON no longer counts an ordinary HQ Core upgrade warning in its
|
|
7
|
+
summary after omitting it from results. Session-start health that only saw
|
|
8
|
+
that leftover warning after `hq doctor --fix` stops treating it as an
|
|
9
|
+
unrepaired failure. `hq doctor` still prints the upgrade.
|
|
10
|
+
|
|
5
11
|
## [5.345.100] — 2026-10-12
|
|
6
12
|
- `hq storage status` no longer runs the big-file scan, so it returns the
|
|
7
13
|
local backup and cloud history figures without waiting minutes on a big HQ.
|
|
@@ -107,12 +107,12 @@ export interface BuildDoctorJsonInput {
|
|
|
107
107
|
/**
|
|
108
108
|
* JSON consumed by the SessionStart health hook (`--client-health-report`).
|
|
109
109
|
* Ordinary hq-core upgrade WARNs are omitted from every JSON document
|
|
110
|
-
* (`--json` and `--client-health-report`)
|
|
111
|
-
* and both current hooks and older ones
|
|
112
|
-
* treated the leftover WARN as an
|
|
113
|
-
* still prints the upgrade. Company
|
|
114
|
-
* to refresh are omitted only from
|
|
115
|
-
* leaves them for a later session.
|
|
110
|
+
* (`--json` and `--client-health-report`), including `summary` tallies:
|
|
111
|
+
* `--fix` cannot apply a release, and both current hooks and older ones
|
|
112
|
+
* that only call `hq doctor --json` treated the leftover WARN as an
|
|
113
|
+
* unrepaired failure. Human `hq doctor` still prints the upgrade. Company
|
|
114
|
+
* journals this `--fix` pass did not try to refresh are omitted only from
|
|
115
|
+
* `--client-health-report`: the repair cap leaves them for a later session.
|
|
116
116
|
*/
|
|
117
117
|
clientHealthReport?: boolean;
|
|
118
118
|
/** Clock for the leftover-journal freshness window. Default: `Date.now`. */
|
|
@@ -121,8 +121,9 @@ export interface BuildDoctorJsonInput {
|
|
|
121
121
|
/**
|
|
122
122
|
* True when a sync finding is an ordinary, non-repairable hq-core upgrade.
|
|
123
123
|
* FAIL stays visible: that is a broken local core, not "a newer release exists".
|
|
124
|
-
* JSON omits the WARN
|
|
125
|
-
* only call `hq doctor --json`) does not file
|
|
124
|
+
* JSON omits the WARN (from `results` and `summary`) so SessionStart health
|
|
125
|
+
* (including core 15.x hooks that only call `hq doctor --json`) does not file
|
|
126
|
+
* it as a failed repair.
|
|
126
127
|
*/
|
|
127
128
|
export declare function isOrdinaryCoreUpdateWarn(result: {
|
|
128
129
|
checkId: string;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* `target` and `remediation` are emitted only when present, matching the
|
|
18
18
|
* per-item result shape where both are optional.
|
|
19
19
|
*/
|
|
20
|
-
import { computeExitCode,
|
|
20
|
+
import { computeExitCode, emptyStatusCounts, UNKNOWN_PLATFORM, } from "./report.js";
|
|
21
21
|
import { deriveRemediation } from "./fix/remediation.js";
|
|
22
22
|
import { freshAttemptedCompanyJournalCheckIds, isUnreachedCompanyJournalForClientHealth, } from "./fix/refresh-sync-progress.js";
|
|
23
23
|
/**
|
|
@@ -33,12 +33,20 @@ export const DOCTOR_JSON_SCHEMA_VERSION = 2;
|
|
|
33
33
|
/**
|
|
34
34
|
* True when a sync finding is an ordinary, non-repairable hq-core upgrade.
|
|
35
35
|
* FAIL stays visible: that is a broken local core, not "a newer release exists".
|
|
36
|
-
* JSON omits the WARN
|
|
37
|
-
* only call `hq doctor --json`) does not file
|
|
36
|
+
* JSON omits the WARN (from `results` and `summary`) so SessionStart health
|
|
37
|
+
* (including core 15.x hooks that only call `hq doctor --json`) does not file
|
|
38
|
+
* it as a failed repair.
|
|
38
39
|
*/
|
|
39
40
|
export function isOrdinaryCoreUpdateWarn(result) {
|
|
40
41
|
return result.checkId === "sync.update.core" && result.status === "WARN";
|
|
41
42
|
}
|
|
43
|
+
/** Tally the results that actually ship in the JSON document. */
|
|
44
|
+
function summarizeJsonResults(results) {
|
|
45
|
+
const counts = emptyStatusCounts();
|
|
46
|
+
for (const result of results)
|
|
47
|
+
counts[result.status] += 1;
|
|
48
|
+
return counts;
|
|
49
|
+
}
|
|
42
50
|
/** Assemble the machine-readable document from a completed run. */
|
|
43
51
|
export function buildDoctorJson(input) {
|
|
44
52
|
const attemptedRefreshSyncCheckIds = input.clientHealthReport === true
|
|
@@ -61,7 +69,7 @@ export function buildDoctorJson(input) {
|
|
|
61
69
|
schemaVersion: DOCTOR_JSON_SCHEMA_VERSION,
|
|
62
70
|
platform: input.platform ?? UNKNOWN_PLATFORM,
|
|
63
71
|
hqRoot: input.hqRoot,
|
|
64
|
-
summary:
|
|
72
|
+
summary: summarizeJsonResults(results),
|
|
65
73
|
exitCode: computeExitCode(input.families),
|
|
66
74
|
...(input.scope && input.scope.length > 0 ? { scope: [...input.scope] } : {}),
|
|
67
75
|
results,
|