@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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indigoai-us/hq-cli",
3
- "version": "5.229.2",
3
+ "version": "5.230.1",
4
4
  "description": "HQ by Indigo management CLI — modules and cloud sync",
5
5
  "main": "dist/index.js",
6
6
  "bin": {