@indigoai-us/hq-cli 5.229.2 → 5.230.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
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [5.230.1] — 2026-09-27
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- A queued account move keeps its pending resume without reserving a running slot.
|
|
10
|
+
|
|
11
|
+
## [5.230.0] — 2026-09-27
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Behind the off-by-default `checkpoint.ontology.no-link-aliases` flag, a
|
|
16
|
+
checkpoint ontology candidate that links to an existing entity no longer adds
|
|
17
|
+
aliases to that entity's file. The plan records `link_aliases: false` and
|
|
18
|
+
apply reports the link without writing. New entities keep their aliases.
|
|
19
|
+
Most aliases written through links were other names the text mentioned next
|
|
20
|
+
to the entity, such as `Publisher` on `indigo`.
|
|
21
|
+
|
|
5
22
|
## [5.229.2] — 2026-09-27
|
|
6
23
|
|
|
7
24
|
### Fixed
|
|
@@ -286,6 +286,9 @@ export function applyOntologyRun(options) {
|
|
|
286
286
|
report.suspect_duplicates.push({ name: canonical, type: candidate.type, paths: [resolved.target, ...resolved.duplicates] });
|
|
287
287
|
continue;
|
|
288
288
|
}
|
|
289
|
+
// checkpoint.ontology.no-link-aliases: the link is reported and the entity file is left as it is.
|
|
290
|
+
if (plan.link_aliases === false)
|
|
291
|
+
continue;
|
|
289
292
|
const pending = updates.get(resolved.target);
|
|
290
293
|
if (!pending && updates.size >= CAPS.updates) {
|
|
291
294
|
note(report.deferred, "cap_updates");
|
|
@@ -39,6 +39,15 @@ export declare const MULTI_WRITER_FLAG = "checkpoint.ontology.multi-writer";
|
|
|
39
39
|
* runs were model errors, 5 of them duplicates of an existing entity.
|
|
40
40
|
*/
|
|
41
41
|
export declare const ENTITY_HINTS_FLAG = "checkpoint.ontology.entity-hints";
|
|
42
|
+
/**
|
|
43
|
+
* A candidate that links to an existing entity adds no aliases to it; the plan
|
|
44
|
+
* carries `link_aliases: false` and apply honours it. CO-42: most aliases
|
|
45
|
+
* written through links on the CO-41 runs were other things the text named
|
|
46
|
+
* next to the entity (`Publisher` on indigo, `Stripe Connect` on Stripe), and
|
|
47
|
+
* entity-hints multiplied them (22 aliases on a flag-off run, 45 and 125 on two
|
|
48
|
+
* hinted runs).
|
|
49
|
+
*/
|
|
50
|
+
export declare const NO_LINK_ALIASES_FLAG = "checkpoint.ontology.no-link-aliases";
|
|
42
51
|
export declare const PLAN_FILE = "ontology-plan.json";
|
|
43
52
|
export declare const CANDIDATES_FILE = "ontology-candidates.json";
|
|
44
53
|
export declare const REPORT_FILE = "ontology-report.json";
|
|
@@ -105,6 +114,8 @@ export interface OntologyPlan {
|
|
|
105
114
|
};
|
|
106
115
|
/** Present only when `checkpoint.ontology.multi-writer` was on for this plan. */
|
|
107
116
|
multi_writer?: MultiWriterStart;
|
|
117
|
+
/** Present, as false, only when `checkpoint.ontology.no-link-aliases` was on for this plan. */
|
|
118
|
+
link_aliases?: false;
|
|
108
119
|
inputs: PlanInput[];
|
|
109
120
|
/** The session's summary, decisions and learnings, for the `session` input. */
|
|
110
121
|
session_text: string | null;
|
|
@@ -43,6 +43,15 @@ export const MULTI_WRITER_FLAG = "checkpoint.ontology.multi-writer";
|
|
|
43
43
|
* runs were model errors, 5 of them duplicates of an existing entity.
|
|
44
44
|
*/
|
|
45
45
|
export const ENTITY_HINTS_FLAG = "checkpoint.ontology.entity-hints";
|
|
46
|
+
/**
|
|
47
|
+
* A candidate that links to an existing entity adds no aliases to it; the plan
|
|
48
|
+
* carries `link_aliases: false` and apply honours it. CO-42: most aliases
|
|
49
|
+
* written through links on the CO-41 runs were other things the text named
|
|
50
|
+
* next to the entity (`Publisher` on indigo, `Stripe Connect` on Stripe), and
|
|
51
|
+
* entity-hints multiplied them (22 aliases on a flag-off run, 45 and 125 on two
|
|
52
|
+
* hinted runs).
|
|
53
|
+
*/
|
|
54
|
+
export const NO_LINK_ALIASES_FLAG = "checkpoint.ontology.no-link-aliases";
|
|
46
55
|
export const PLAN_FILE = "ontology-plan.json";
|
|
47
56
|
export const CANDIDATES_FILE = "ontology-candidates.json";
|
|
48
57
|
export const REPORT_FILE = "ontology-report.json";
|
|
@@ -219,6 +228,7 @@ export async function planOntologyRun(options) {
|
|
|
219
228
|
recordBackendPreference(hqRoot, company, await options.readFlag(GROK_BACKEND_FLAG, company));
|
|
220
229
|
const multiWriterOn = await options.readFlag(MULTI_WRITER_FLAG, company);
|
|
221
230
|
const hintsOn = await options.readFlag(ENTITY_HINTS_FLAG, company);
|
|
231
|
+
const noLinkAliases = await options.readFlag(NO_LINK_ALIASES_FLAG, company);
|
|
222
232
|
const touched = sessionTouched(hqRoot, company, payload.files);
|
|
223
233
|
// A first run takes its boundary from the entity tree, so the ledger is
|
|
224
234
|
// refreshed before merge-back moves any `last_updated` forward.
|
|
@@ -331,6 +341,7 @@ export async function planOntologyRun(options) {
|
|
|
331
341
|
}
|
|
332
342
|
: {}),
|
|
333
343
|
...(multiWriter ? { multi_writer: multiWriter } : {}),
|
|
344
|
+
...(noLinkAliases ? { link_aliases: false } : {}),
|
|
334
345
|
inputs,
|
|
335
346
|
session_text: sessionText,
|
|
336
347
|
pending_after_run: remaining,
|
|
@@ -149,6 +149,11 @@ export function hasActivePendingResume(lane, nowMs) {
|
|
|
149
149
|
}
|
|
150
150
|
/** Whether a lane currently owns a running slot for its host/provider caps. */
|
|
151
151
|
export function laneOccupiesRunningSlot(lane, nowMs = Date.now()) {
|
|
152
|
+
// An account-cap queue is waiting behind an occupied account slot. Its
|
|
153
|
+
// pending resume must remain active for admission ordering, but it must not
|
|
154
|
+
// count as a second owner of the slot that blocked it.
|
|
155
|
+
if (lane.state === "queued" && lane.queued_reason === "account_cap")
|
|
156
|
+
return false;
|
|
152
157
|
return lane.state === "running" ||
|
|
153
158
|
hasActiveAdmissionReservation(lane, nowMs) ||
|
|
154
159
|
hasActivePendingResume(lane, nowMs);
|