@indigoai-us/hq-cli 5.197.0 → 5.198.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 CHANGED
@@ -2,10 +2,35 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [5.198.0] — 2026-09-25
6
+
7
+ ### Added
8
+
9
+ - `hq lanes blocker`, `kpi`, `okr`, and `directive` commands record project
10
+ tracker data locally when the company-scoped `lanes.tracker` gate is enabled.
11
+ KPI and OKR sets remain proposals until explicitly approved, and resolved
12
+ blockers are hidden unless listed with `--all`.
13
+
14
+ ### Fixed
15
+
16
+ - A local bot no longer posts "I didn't finish that — I was restarted while I
17
+ was working on it" into a room on messages nobody addressed to it. An
18
+ unmentioned room turn interrupted by a restart or owner stop is now acked
19
+ and cleared silently on the next start; a saved final answer for that turn
20
+ is still posted, and DMs and @-mentioned room turns still get the notice
21
+ (2026-09-25 hq-launch-ga-testing incident). Markers written by older
22
+ versions without the new `silenceable` field keep today's behaviour.
23
+ - A grok turn that exits non-zero with a whole-stdout pretty-printed JSON
24
+ envelope (rather than NDJSON events) now logs the real error text —
25
+ `result` / `error.message` / `subtype` — instead of the last characters of
26
+ the JSON tail (`"costUsdTicks" | } | "numTurns" | }`). Log only; never
27
+ posted to a person.
28
+
5
29
  ## [5.197.0] — 2026-09-25
6
30
 
7
31
  ### Fixed
8
32
 
33
+ - Concurrent QMD reindex runs after sync and `hq index sync` are serialized behind the shared lock when the default-off `qmd.reindex-single-flight` hq-flags canary is enabled. A skipped sync reports no successful update.
9
34
  - Process-wide hq-flags gates now resolve with the active company's identifier when a company is bound.
10
35
  - Concurrent `hq lanes` updates now wait for an in-progress project story-ledger
11
36
  lock receipt, avoiding transient `story_ledger_lock_invalid` errors.
@@ -6841,6 +6841,396 @@ export declare const COMMAND_CATALOG: readonly [{
6841
6841
  readonly arguments: readonly [];
6842
6842
  readonly options: readonly [];
6843
6843
  readonly subcommands: readonly [{
6844
+ readonly name: "blocker";
6845
+ readonly description: "Record and manage project blockers";
6846
+ readonly aliases: readonly [];
6847
+ readonly hidden: false;
6848
+ readonly usage: "[options] [command]";
6849
+ readonly arguments: readonly [];
6850
+ readonly options: readonly [];
6851
+ readonly subcommands: readonly [{
6852
+ readonly name: "open";
6853
+ readonly description: "Open a blocker";
6854
+ readonly aliases: readonly [];
6855
+ readonly hidden: false;
6856
+ readonly usage: "[options]";
6857
+ readonly arguments: readonly [];
6858
+ readonly options: readonly [{
6859
+ readonly flags: "--project <slug>";
6860
+ readonly description: "HQ team project slug";
6861
+ }, {
6862
+ readonly flags: "--company <slug>";
6863
+ readonly description: "Select the company by slug";
6864
+ }, {
6865
+ readonly flags: "--story <id>";
6866
+ readonly description: "Blocked story id";
6867
+ }, {
6868
+ readonly flags: "--what <text>";
6869
+ readonly description: "What is blocked";
6870
+ }, {
6871
+ readonly flags: "--waiting-on <text>";
6872
+ readonly description: "Who or what is needed";
6873
+ }, {
6874
+ readonly flags: "--next-step <text>";
6875
+ readonly description: "Next action";
6876
+ }, {
6877
+ readonly flags: "--json";
6878
+ readonly description: "JSON on stdout (always)";
6879
+ }];
6880
+ readonly subcommands: readonly [];
6881
+ }, {
6882
+ readonly name: "update";
6883
+ readonly description: "Update a blocker";
6884
+ readonly aliases: readonly [];
6885
+ readonly hidden: false;
6886
+ readonly usage: "[options] <blocker-id>";
6887
+ readonly arguments: readonly [{
6888
+ readonly name: "blocker-id";
6889
+ readonly required: true;
6890
+ readonly variadic: false;
6891
+ }];
6892
+ readonly options: readonly [{
6893
+ readonly flags: "--project <slug>";
6894
+ readonly description: "HQ team project slug";
6895
+ }, {
6896
+ readonly flags: "--company <slug>";
6897
+ readonly description: "Select the company by slug";
6898
+ }, {
6899
+ readonly flags: "--waiting-on <text>";
6900
+ readonly description: "Who or what is needed";
6901
+ }, {
6902
+ readonly flags: "--next-step <text>";
6903
+ readonly description: "Next action";
6904
+ }, {
6905
+ readonly flags: "--json";
6906
+ readonly description: "JSON on stdout (always)";
6907
+ }];
6908
+ readonly subcommands: readonly [];
6909
+ }, {
6910
+ readonly name: "resolve";
6911
+ readonly description: "Resolve a blocker";
6912
+ readonly aliases: readonly [];
6913
+ readonly hidden: false;
6914
+ readonly usage: "[options] <blocker-id>";
6915
+ readonly arguments: readonly [{
6916
+ readonly name: "blocker-id";
6917
+ readonly required: true;
6918
+ readonly variadic: false;
6919
+ }];
6920
+ readonly options: readonly [{
6921
+ readonly flags: "--project <slug>";
6922
+ readonly description: "HQ team project slug";
6923
+ }, {
6924
+ readonly flags: "--company <slug>";
6925
+ readonly description: "Select the company by slug";
6926
+ }, {
6927
+ readonly flags: "--resolution <text>";
6928
+ readonly description: "Resolution details";
6929
+ }, {
6930
+ readonly flags: "--json";
6931
+ readonly description: "JSON on stdout (always)";
6932
+ }];
6933
+ readonly subcommands: readonly [];
6934
+ }, {
6935
+ readonly name: "list";
6936
+ readonly description: "List blockers";
6937
+ readonly aliases: readonly [];
6938
+ readonly hidden: false;
6939
+ readonly usage: "[options]";
6940
+ readonly arguments: readonly [];
6941
+ readonly options: readonly [{
6942
+ readonly flags: "--project <slug>";
6943
+ readonly description: "HQ team project slug";
6944
+ }, {
6945
+ readonly flags: "--company <slug>";
6946
+ readonly description: "Select the company by slug";
6947
+ }, {
6948
+ readonly flags: "--all";
6949
+ readonly description: "Include resolved blockers";
6950
+ }, {
6951
+ readonly flags: "--json";
6952
+ readonly description: "JSON on stdout (always)";
6953
+ }];
6954
+ readonly subcommands: readonly [];
6955
+ }];
6956
+ }, {
6957
+ readonly name: "kpi";
6958
+ readonly description: "Define KPIs and record values";
6959
+ readonly aliases: readonly [];
6960
+ readonly hidden: false;
6961
+ readonly usage: "[options] [command]";
6962
+ readonly arguments: readonly [];
6963
+ readonly options: readonly [];
6964
+ readonly subcommands: readonly [{
6965
+ readonly name: "define";
6966
+ readonly description: "Define a proposed KPI";
6967
+ readonly aliases: readonly [];
6968
+ readonly hidden: false;
6969
+ readonly usage: "[options]";
6970
+ readonly arguments: readonly [];
6971
+ readonly options: readonly [{
6972
+ readonly flags: "--project <slug>";
6973
+ readonly description: "HQ team project slug";
6974
+ }, {
6975
+ readonly flags: "--company <slug>";
6976
+ readonly description: "Select the company by slug";
6977
+ }, {
6978
+ readonly flags: "--name <text>";
6979
+ readonly description: "KPI name";
6980
+ }, {
6981
+ readonly flags: "--definition <text>";
6982
+ readonly description: "Definition or query";
6983
+ }, {
6984
+ readonly flags: "--unit <unit>";
6985
+ readonly description: "Measurement unit";
6986
+ }, {
6987
+ readonly flags: "--target <number>";
6988
+ readonly description: "Target value";
6989
+ }, {
6990
+ readonly flags: "--direction <direction>";
6991
+ readonly description: "up | down";
6992
+ }, {
6993
+ readonly flags: "--json";
6994
+ readonly description: "JSON on stdout (always)";
6995
+ }];
6996
+ readonly subcommands: readonly [];
6997
+ }, {
6998
+ readonly name: "record";
6999
+ readonly description: "Record a KPI value";
7000
+ readonly aliases: readonly [];
7001
+ readonly hidden: false;
7002
+ readonly usage: "[options] <kpi-id>";
7003
+ readonly arguments: readonly [{
7004
+ readonly name: "kpi-id";
7005
+ readonly required: true;
7006
+ readonly variadic: false;
7007
+ }];
7008
+ readonly options: readonly [{
7009
+ readonly flags: "--project <slug>";
7010
+ readonly description: "HQ team project slug";
7011
+ }, {
7012
+ readonly flags: "--company <slug>";
7013
+ readonly description: "Select the company by slug";
7014
+ }, {
7015
+ readonly flags: "--value <number>";
7016
+ readonly description: "Observed value";
7017
+ }, {
7018
+ readonly flags: "--source <text>";
7019
+ readonly description: "Value source";
7020
+ }, {
7021
+ readonly flags: "--at <iso>";
7022
+ readonly description: "Observation time";
7023
+ }, {
7024
+ readonly flags: "--json";
7025
+ readonly description: "JSON on stdout (always)";
7026
+ }];
7027
+ readonly subcommands: readonly [];
7028
+ }, {
7029
+ readonly name: "approve";
7030
+ readonly description: "Approve a KPI proposal";
7031
+ readonly aliases: readonly [];
7032
+ readonly hidden: false;
7033
+ readonly usage: "[options] <kpi-id>";
7034
+ readonly arguments: readonly [{
7035
+ readonly name: "kpi-id";
7036
+ readonly required: true;
7037
+ readonly variadic: false;
7038
+ }];
7039
+ readonly options: readonly [{
7040
+ readonly flags: "--project <slug>";
7041
+ readonly description: "HQ team project slug";
7042
+ }, {
7043
+ readonly flags: "--company <slug>";
7044
+ readonly description: "Select the company by slug";
7045
+ }, {
7046
+ readonly flags: "--json";
7047
+ readonly description: "JSON on stdout (always)";
7048
+ }];
7049
+ readonly subcommands: readonly [];
7050
+ }, {
7051
+ readonly name: "list";
7052
+ readonly description: "List KPIs";
7053
+ readonly aliases: readonly [];
7054
+ readonly hidden: false;
7055
+ readonly usage: "[options]";
7056
+ readonly arguments: readonly [];
7057
+ readonly options: readonly [{
7058
+ readonly flags: "--project <slug>";
7059
+ readonly description: "HQ team project slug";
7060
+ }, {
7061
+ readonly flags: "--company <slug>";
7062
+ readonly description: "Select the company by slug";
7063
+ }, {
7064
+ readonly flags: "--json";
7065
+ readonly description: "JSON on stdout (always)";
7066
+ }];
7067
+ readonly subcommands: readonly [];
7068
+ }];
7069
+ }, {
7070
+ readonly name: "okr";
7071
+ readonly description: "Set and approve OKRs";
7072
+ readonly aliases: readonly [];
7073
+ readonly hidden: false;
7074
+ readonly usage: "[options] [command]";
7075
+ readonly arguments: readonly [];
7076
+ readonly options: readonly [];
7077
+ readonly subcommands: readonly [{
7078
+ readonly name: "set";
7079
+ readonly description: "Create a proposed OKR";
7080
+ readonly aliases: readonly [];
7081
+ readonly hidden: false;
7082
+ readonly usage: "[options]";
7083
+ readonly arguments: readonly [];
7084
+ readonly options: readonly [{
7085
+ readonly flags: "--project <slug>";
7086
+ readonly description: "HQ team project slug";
7087
+ }, {
7088
+ readonly flags: "--company <slug>";
7089
+ readonly description: "Select the company by slug";
7090
+ }, {
7091
+ readonly flags: "--objective <text>";
7092
+ readonly description: "Objective";
7093
+ }, {
7094
+ readonly flags: "--period <period>";
7095
+ readonly description: "Planning period";
7096
+ }, {
7097
+ readonly flags: "--key-result <text=kpi-id:target>";
7098
+ readonly description: "Key result";
7099
+ }, {
7100
+ readonly flags: "--json";
7101
+ readonly description: "JSON on stdout (always)";
7102
+ }];
7103
+ readonly subcommands: readonly [];
7104
+ }, {
7105
+ readonly name: "approve";
7106
+ readonly description: "Approve an OKR proposal";
7107
+ readonly aliases: readonly [];
7108
+ readonly hidden: false;
7109
+ readonly usage: "[options] <okr-id>";
7110
+ readonly arguments: readonly [{
7111
+ readonly name: "okr-id";
7112
+ readonly required: true;
7113
+ readonly variadic: false;
7114
+ }];
7115
+ readonly options: readonly [{
7116
+ readonly flags: "--project <slug>";
7117
+ readonly description: "HQ team project slug";
7118
+ }, {
7119
+ readonly flags: "--company <slug>";
7120
+ readonly description: "Select the company by slug";
7121
+ }, {
7122
+ readonly flags: "--json";
7123
+ readonly description: "JSON on stdout (always)";
7124
+ }];
7125
+ readonly subcommands: readonly [];
7126
+ }, {
7127
+ readonly name: "list";
7128
+ readonly description: "List OKRs";
7129
+ readonly aliases: readonly [];
7130
+ readonly hidden: false;
7131
+ readonly usage: "[options]";
7132
+ readonly arguments: readonly [];
7133
+ readonly options: readonly [{
7134
+ readonly flags: "--project <slug>";
7135
+ readonly description: "HQ team project slug";
7136
+ }, {
7137
+ readonly flags: "--company <slug>";
7138
+ readonly description: "Select the company by slug";
7139
+ }, {
7140
+ readonly flags: "--json";
7141
+ readonly description: "JSON on stdout (always)";
7142
+ }];
7143
+ readonly subcommands: readonly [];
7144
+ }];
7145
+ }, {
7146
+ readonly name: "directive";
7147
+ readonly description: "Record directives and acknowledgements";
7148
+ readonly aliases: readonly [];
7149
+ readonly hidden: false;
7150
+ readonly usage: "[options] [command]";
7151
+ readonly arguments: readonly [];
7152
+ readonly options: readonly [];
7153
+ readonly subcommands: readonly [{
7154
+ readonly name: "record";
7155
+ readonly description: "Record a directive";
7156
+ readonly aliases: readonly [];
7157
+ readonly hidden: false;
7158
+ readonly usage: "[options]";
7159
+ readonly arguments: readonly [];
7160
+ readonly options: readonly [{
7161
+ readonly flags: "--project <slug>";
7162
+ readonly description: "HQ team project slug";
7163
+ }, {
7164
+ readonly flags: "--company <slug>";
7165
+ readonly description: "Select the company by slug";
7166
+ }, {
7167
+ readonly flags: "--text <text>";
7168
+ readonly description: "Verbatim directive";
7169
+ }, {
7170
+ readonly flags: "--date <yyyy-mm-dd>";
7171
+ readonly description: "Directive date";
7172
+ }, {
7173
+ readonly flags: "--source-url <url>";
7174
+ readonly description: "Source URL";
7175
+ }, {
7176
+ readonly flags: "--team <slug>";
7177
+ readonly description: "Affected team (repeatable)";
7178
+ }, {
7179
+ readonly flags: "--policy-path <path>";
7180
+ readonly description: "Related policy path";
7181
+ }, {
7182
+ readonly flags: "--json";
7183
+ readonly description: "JSON on stdout (always)";
7184
+ }];
7185
+ readonly subcommands: readonly [];
7186
+ }, {
7187
+ readonly name: "ack";
7188
+ readonly description: "Acknowledge a directive";
7189
+ readonly aliases: readonly [];
7190
+ readonly hidden: false;
7191
+ readonly usage: "[options] <directive-id>";
7192
+ readonly arguments: readonly [{
7193
+ readonly name: "directive-id";
7194
+ readonly required: true;
7195
+ readonly variadic: false;
7196
+ }];
7197
+ readonly options: readonly [{
7198
+ readonly flags: "--project <slug>";
7199
+ readonly description: "HQ team project slug";
7200
+ }, {
7201
+ readonly flags: "--company <slug>";
7202
+ readonly description: "Select the company by slug";
7203
+ }, {
7204
+ readonly flags: "--team <slug>";
7205
+ readonly description: "Acknowledging team";
7206
+ }, {
7207
+ readonly flags: "--lane <lane-id>";
7208
+ readonly description: "Acknowledging lane id";
7209
+ }, {
7210
+ readonly flags: "--json";
7211
+ readonly description: "JSON on stdout (always)";
7212
+ }];
7213
+ readonly subcommands: readonly [];
7214
+ }, {
7215
+ readonly name: "list";
7216
+ readonly description: "List directives";
7217
+ readonly aliases: readonly [];
7218
+ readonly hidden: false;
7219
+ readonly usage: "[options]";
7220
+ readonly arguments: readonly [];
7221
+ readonly options: readonly [{
7222
+ readonly flags: "--project <slug>";
7223
+ readonly description: "HQ team project slug";
7224
+ }, {
7225
+ readonly flags: "--company <slug>";
7226
+ readonly description: "Select the company by slug";
7227
+ }, {
7228
+ readonly flags: "--json";
7229
+ readonly description: "JSON on stdout (always)";
7230
+ }];
7231
+ readonly subcommands: readonly [];
7232
+ }];
7233
+ }, {
6844
7234
  readonly name: "outpost-pruner";
6845
7235
  readonly description: "Inspect, install, and run safe outpost worktree pruning";
6846
7236
  readonly aliases: readonly [];