@indigoai-us/hq-cli 5.288.0 → 5.290.0
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 +22 -0
- package/assets/bot-workers/setup/skills/explain-hq.md +35 -0
- package/assets/bot-workers/setup/worker.yaml +25 -23
- package/assets/scaffold/core/scripts/handoff-finalize.sh +670 -0
- package/assets/scaffold/core/scripts/handoff-open-steps.sh +81 -0
- package/assets/scaffold/core/scripts/handoff-post.sh +187 -0
- package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +40 -0
- package/dist/command-catalog.generated.d.ts +51 -0
- package/dist/command-catalog.generated.js +63 -0
- package/dist/commands/core-handoff.d.ts +22 -0
- package/dist/commands/core-handoff.js +1240 -0
- package/dist/commands/core-ontology.d.ts +6 -1
- package/dist/commands/core-ontology.js +42 -7
- package/dist/commands/core.js +8 -1
- package/dist/commands/lanes.js +157 -5
- package/dist/lib/bot/run.js +92 -2
- package/dist/lib/bot/setup-explain.d.ts +68 -0
- package/dist/lib/bot/setup-explain.js +141 -0
- package/dist/lib/checkpoint-ontology/entity-file.d.ts +21 -0
- package/dist/lib/checkpoint-ontology/entity-file.js +100 -0
- package/dist/lib/checkpoint-ontology/merge-copies.d.ts +34 -2
- package/dist/lib/checkpoint-ontology/merge-copies.js +541 -27
- package/dist/lib/lanes/store.d.ts +4 -2
- package/dist/lib/lanes/store.js +37 -15
- package/dist/lib/lanes/types.d.ts +6 -2
- package/dist/lib/lanes/types.js +1 -1
- package/dist/utils/self-update.d.ts +3 -0
- package/dist/utils/self-update.js +232 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,21 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [5.290.0] — 2026-09-29
|
|
6
|
+
- A failed `hq update` restores the previous working hq-cli install when it could be backed up, instead of leaving the CLI partially updated.
|
|
7
|
+
|
|
5
8
|
## [5.288.0] — 2026-09-29
|
|
6
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `hq core ontology merge-copies --rewrite-refs` (flag `checkpoint.ontology.merge-rewrite-refs`, default off) re-points signal refs, invoice and bill links, source and knowledge links from a merged copy to its survivor and carries the copy's external ids and web domains; a pair whose files hold different values for one external id stays held (`external_id_conflict`).
|
|
13
|
+
- A `--only` entry can carry `resolve_external_ids: { <provider>: { primary, namespace, object_type? } }`. With `--rewrite-refs`, a conflicting provider id then keeps `primary` in `external_ids` and moves the pair's other id to the survivor's `external_refs` (`system`, `namespace`, `objectType`, `recordId`), so no id is dropped. A `primary` that matches neither id still holds the pair.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- `hq core ontology merge-copies --variants` no longer counts a copy's own `# Name` heading as unmerged text, so a merged variant copy can be deleted.
|
|
18
|
+
- `merge-copies` no longer moves a copy's links to itself or to its original into the original, and does not count them or the `## Relationships` heading as unmerged text.
|
|
19
|
+
- `merge-copies` now finds signal `entity_refs` written with a `.md` suffix, so it holds (or, with `--rewrite-refs`, re-points) them instead of deleting a copy they still name.
|
|
20
|
+
- `merge-copies --rewrite-refs` no longer holds a survivor as `merge_invalid` when it gains external ids but has no `web_domains` key (or the reverse).
|
|
21
|
+
- `merge-copies` treats an annotation list item whose first key is `path:` as a link to the copy, so it no longer deletes a copy such an annotation still names.
|
|
22
|
+
|
|
7
23
|
## [5.287.0] — 2026-09-29
|
|
8
24
|
- Group hook-timeout events by script while preserving triage diagnostics.
|
|
9
25
|
- Preserve safe slow-child script basenames in hook-timeout diagnostics.
|
|
10
26
|
- Cloud provisioning and retirement now stop after 15 seconds when a Vault API request stalls, with a clear timeout error.
|
|
27
|
+
- In the HQ desktop app, clicking "Explain HQ first" in the setup bot now shows the fixed explanation of HQ at once, with no model turn. The setup worker ships that text in `skills/explain-hq.md`, and the bot reads the same file when someone asks in their own words.
|
|
11
28
|
- Add native TypeScript implementations for four `hq core` worktree and
|
|
12
29
|
handoff scripts behind the default-off `core-native-handoff` flag. The
|
|
13
30
|
original shell assets remain bundled as the rollback path.
|
|
31
|
+
- Add default-off native `hq core handoff finalize`, `post`, and `open-steps` commands with the staging scripts retained as the rollback path.
|
|
14
32
|
|
|
15
33
|
### Fixed
|
|
16
34
|
|
|
17
35
|
- `hq team-sync` keeps its successful no-team result, reports which company
|
|
18
36
|
directories are cloud-backed, and points to `hq sync pull --all` and
|
|
19
37
|
`hq sync status` for cloud-backed companies.
|
|
38
|
+
- An unconfirmed Outpost pickup acknowledgement keeps its mirror queued with
|
|
39
|
+
`outcome_unknown` and its command id. Reconcile uses a strict owner snapshot;
|
|
40
|
+
it marks the mirror `remote_lost` only after the 15-minute grace when the
|
|
41
|
+
owner confirms the lane is missing. Unreachable owners remain counted.
|
|
20
42
|
|
|
21
43
|
### Fixed
|
|
22
44
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: explain-hq
|
|
3
|
+
description: The fixed explanation of HQ, sent when the person asks for it at the start of setup. It is sent word for word, by you or by the HQ app.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Explaining HQ at the start
|
|
7
|
+
|
|
8
|
+
This is the one explanation of HQ that setup gives. It is sent word for word
|
|
9
|
+
and never reworded, shortened or added to.
|
|
10
|
+
|
|
11
|
+
- **When you send it** (they asked for the explanation in their own words, or
|
|
12
|
+
they clicked "Explain HQ first" and your turn does not start with a note
|
|
13
|
+
from the HQ app saying it already went out): send the text under "The
|
|
14
|
+
explanation" as written. Then, in the same message, one line saying you are
|
|
15
|
+
starting, and the first unfinished step's one question.
|
|
16
|
+
- **When the HQ app sends it** (they clicked "Explain HQ first"): the app
|
|
17
|
+
sends the text under "The explanation" at once, followed by the text under
|
|
18
|
+
"After the explanation, when the app sends it". Your next turn starts with
|
|
19
|
+
a note saying so. Do not send the explanation again.
|
|
20
|
+
|
|
21
|
+
## The explanation
|
|
22
|
+
|
|
23
|
+
**One shared brain for your company's AI.** Your clients, decisions, meeting notes, connected apps, keys and skills live in one place, and every AI that works for you reads from it and adds to it.
|
|
24
|
+
|
|
25
|
+
**It works with the agents you already use.** Claude Code, Codex or Cursor, opened in your HQ folder, already know your business. You can put agents in Slack so your team can ask them things where they already talk, and connect other agents from the HQ console under Agents. Messaging bots in this app is one more way in, not the main one.
|
|
26
|
+
|
|
27
|
+
**It's built for your team.** Invite someone and their AI knows the business on day one. Connected apps and keys can be shared with them without passing passwords around, and each company stays separate.
|
|
28
|
+
|
|
29
|
+
## After the explanation, when the app sends it
|
|
30
|
+
|
|
31
|
+
Ready to start the setup?
|
|
32
|
+
|
|
33
|
+
```hq-block
|
|
34
|
+
{"v":1,"blocks":[{"kind":"suggestions","items":["Let's start","How is this different from Claude?"]}]}
|
|
35
|
+
```
|
|
@@ -42,6 +42,9 @@ skills:
|
|
|
42
42
|
- name: standing-help
|
|
43
43
|
description: "How to behave once setup is finished: the always-there helper who does the thing rather than describing it."
|
|
44
44
|
doc: skills/standing-help.md
|
|
45
|
+
- name: explain-hq
|
|
46
|
+
description: "The fixed explanation of HQ for someone who asks for it at the start of setup. Sent word for word, by you or by the HQ app."
|
|
47
|
+
doc: skills/explain-hq.md
|
|
45
48
|
|
|
46
49
|
instructions: |
|
|
47
50
|
# Setup
|
|
@@ -256,28 +259,26 @@ instructions: |
|
|
|
256
259
|
|
|
257
260
|
## Explaining HQ at the start
|
|
258
261
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
(a Slack agent, an outside agent, inviting someone, sharing an app or a
|
|
280
|
-
key), walk them through it using `skills/agents-and-team.md`.
|
|
262
|
+
The explanation is fixed, and it lives in `skills/explain-hq.md`. The same
|
|
263
|
+
text goes out whether you send it or the HQ app does, so never write your
|
|
264
|
+
own version.
|
|
265
|
+
|
|
266
|
+
When they click "Explain HQ first", the HQ app sends the explanation for
|
|
267
|
+
you straight away, and your next turn starts with a note from the app
|
|
268
|
+
saying it went out. The question is then answered: write `Intro: explained`
|
|
269
|
+
in your progress note, do not explain HQ again, and carry on with the first
|
|
270
|
+
unfinished step's one question.
|
|
271
|
+
|
|
272
|
+
When they ask for the explanation any other way (in their own words, or by
|
|
273
|
+
clicking "Explain HQ first" with no note from the app at the start of your
|
|
274
|
+
turn), read `skills/explain-hq.md` and send the text under its "The
|
|
275
|
+
explanation" heading word for word. Then one line that you are starting,
|
|
276
|
+
and the first unfinished step's one question, in the same message.
|
|
277
|
+
|
|
278
|
+
Do not ask whether the explanation made sense, and do not offer a tour. If
|
|
279
|
+
they ask how to do one of those things (a Slack agent, an outside agent,
|
|
280
|
+
inviting someone, sharing an app or a key), walk them through it using
|
|
281
|
+
`skills/agents-and-team.md`.
|
|
281
282
|
|
|
282
283
|
## How you make them feel it
|
|
283
284
|
|
|
@@ -407,7 +408,8 @@ instructions: |
|
|
|
407
408
|
company", "Just for me". Put the answer you would recommend first.
|
|
408
409
|
- **You offered a choice or a yes/no:** "Want me to invite them now?" gets
|
|
409
410
|
"Yes, invite them", "Not yet".
|
|
410
|
-
- **The explain-or-jump question:** "Explain HQ first", "Jump straight in"
|
|
411
|
+
- **The explain-or-jump question:** "Explain HQ first", "Jump straight in",
|
|
412
|
+
in exactly those words. The HQ app answers "Explain HQ first" by itself.
|
|
411
413
|
- **You finished something and did not ask anything:** the one or two next
|
|
412
414
|
steps most people would take ("Connect my calls", "How do I add my team?").
|
|
413
415
|
|