@mattstack/rt-client 0.11.1 → 0.12.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/README.md CHANGED
@@ -111,6 +111,10 @@ socket. The verbs and their payloads are specified in repo-tools
111
111
  `docs/superpowers/specs/2026-08-28-rt-chat-delivery-v2-design.md`; the
112
112
  agent-facing rules are `skills/rt-chat/SKILL.md`.
113
113
 
114
+ ## Runs
115
+
116
+ `RunStageRow.status` is one of `running | done | failed | redirected`; `rt runs stage-redirect` writes the fourth when the work engine leaves a stage for another one, so a reader that maps statuses to icons or filters must handle all four.
117
+
114
118
  ## License
115
119
 
116
120
  MIT
package/dist/index.js CHANGED
@@ -816,6 +816,13 @@ var REGISTRY = [
816
816
  migrated: true,
817
817
  description: "User-confirmed integration hosts (forgeHost, switchboardUrl), written only by an explicit `rt setup <id> connect --host` after that host validates a real credential. The one trusted source a credential is ever sent to — mattstack.integrations' team-declared host is shown to the user but never auto-used for a fetch."
818
818
  },
819
+ {
820
+ key: "mattstack.roster",
821
+ type: "array",
822
+ scopes: ["team"],
823
+ merge: "replace",
824
+ description: "The suite-wide team roster: [{username, name?}] GitLab usernames with optional display names. Any suite app that lists people reads this; hiding someone is the app's own overlay (e.g. boxscore.hiddenMembers)."
825
+ },
819
826
  {
820
827
  key: "claude.marketplaces",
821
828
  type: "array",
@@ -870,7 +877,7 @@ var REGISTRY = [
870
877
  type: "array",
871
878
  scopes: ["team"],
872
879
  merge: "replace",
873
- description: "The authors tab's roster: whose MRs the classic board lists, including hidden-by-default entries. Codeowners tabs list MRs from anyone."
880
+ description: "The authors tab's roster: whose MRs the classic board lists, including hidden-by-default entries. Codeowners tabs list MRs from anyone. The cross-app roster successor is mattstack.roster; this key remains the board's own list until the board adopts it."
874
881
  },
875
882
  {
876
883
  key: "board.title",
@@ -970,13 +977,6 @@ var REGISTRY = [
970
977
  merge: "deep",
971
978
  description: "Local working directories the board's review/respond/doctor panes launch from."
972
979
  },
973
- {
974
- key: "board.rtRepos",
975
- type: "array",
976
- scopes: ["machine"],
977
- merge: "replace",
978
- description: "rt-registered repo names the board resolves MRs against on this machine."
979
- },
980
980
  {
981
981
  key: "board.triageMaxConcurrent",
982
982
  type: "number",
@@ -991,6 +991,62 @@ var REGISTRY = [
991
991
  merge: "replace",
992
992
  description: "Local switchboard URL the board's POST /peer/join writer targets."
993
993
  },
994
+ {
995
+ key: "boxscore.projects",
996
+ type: "array",
997
+ scopes: ["team"],
998
+ merge: "replace",
999
+ description: 'GitLab projects boxscore scores, as full paths ("group/project").'
1000
+ },
1001
+ {
1002
+ key: "boxscore.linearDoneStates",
1003
+ type: "array",
1004
+ scopes: ["team"],
1005
+ merge: "replace",
1006
+ description: "Linear workflow state names that count as done. Empty means the completed and canceled state types."
1007
+ },
1008
+ {
1009
+ key: "boxscore.sizeBand",
1010
+ type: "object",
1011
+ scopes: ["team"],
1012
+ merge: "deep",
1013
+ description: "MR size health band in changed lines: {tooSmall, tooLarge}. At or below tooSmall, or above tooLarge, is outside the healthy band."
1014
+ },
1015
+ {
1016
+ key: "boxscore.excludeFilePatterns",
1017
+ type: "array",
1018
+ scopes: ["team"],
1019
+ merge: "replace",
1020
+ description: 'Glob patterns for files excluded from addition/deletion counts (e.g. "**/*.json").'
1021
+ },
1022
+ {
1023
+ key: "boxscore.ignoredMrs",
1024
+ type: "array",
1025
+ scopes: ["team"],
1026
+ merge: "replace",
1027
+ description: 'MRs excluded from all metrics: "!123" or "group/project!123".'
1028
+ },
1029
+ {
1030
+ key: "boxscore.botPatterns",
1031
+ type: "array",
1032
+ scopes: ["team"],
1033
+ merge: "replace",
1034
+ description: "Extra regex sources treated as bot accounts, beyond boxscore's built-in detection."
1035
+ },
1036
+ {
1037
+ key: "boxscore.hiddenMembers",
1038
+ type: "array",
1039
+ scopes: ["user"],
1040
+ merge: "replace",
1041
+ description: "Usernames from mattstack.roster hidden from this developer's leaderboard."
1042
+ },
1043
+ {
1044
+ key: "boxscore.defaultRange",
1045
+ type: "string",
1046
+ scopes: ["user"],
1047
+ merge: "replace",
1048
+ description: 'Default comparison window for the API and CLI when none is given: "7d", "30d", or "90d".'
1049
+ },
994
1050
  {
995
1051
  key: "gitq.workSlots",
996
1052
  type: "object",
@@ -1032,7 +1088,8 @@ var REGISTRY = [
1032
1088
  type: "string",
1033
1089
  scopes: ["user"],
1034
1090
  merge: "replace",
1035
- description: "Base URL of the chat viewer, no trailing slash. When set, rt chat post and the tail's wake lines end with a link to the room or message."
1091
+ default: "https://chat.mattstack",
1092
+ description: "Base URL of the chat viewer, no trailing slash; rt chat post and the tail's wake lines end with a link to the room or message. Defaults to the viewer deck serves on the mattstack TLD."
1036
1093
  },
1037
1094
  {
1038
1095
  key: "chat.herdrWorkspace",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mattstack/rt-client",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -288,6 +288,16 @@ export const REGISTRY: readonly SettingDef[] = [
288
288
  "User-confirmed integration hosts (forgeHost, switchboardUrl), written only by an explicit `rt setup <id> connect --host` after that host validates a real credential. The one trusted source a credential is ever sent to — mattstack.integrations' team-declared host is shown to the user but never auto-used for a fetch.",
289
289
  },
290
290
 
291
+ // --- mattstack (shared team truth) ---------------------------------------
292
+ {
293
+ key: "mattstack.roster",
294
+ type: "array",
295
+ scopes: ["team"],
296
+ merge: "replace",
297
+ description:
298
+ "The suite-wide team roster: [{username, name?}] GitLab usernames with optional display names. Any suite app that lists people reads this; hiding someone is the app's own overlay (e.g. boxscore.hiddenMembers).",
299
+ },
300
+
291
301
  // --- claude (installer-lane) --------------------------------------------
292
302
  {
293
303
  key: "claude.marketplaces",
@@ -351,7 +361,7 @@ export const REGISTRY: readonly SettingDef[] = [
351
361
  type: "array",
352
362
  scopes: ["team"],
353
363
  merge: "replace",
354
- description: "The authors tab's roster: whose MRs the classic board lists, including hidden-by-default entries. Codeowners tabs list MRs from anyone.",
364
+ description: "The authors tab's roster: whose MRs the classic board lists, including hidden-by-default entries. Codeowners tabs list MRs from anyone. The cross-app roster successor is mattstack.roster; this key remains the board's own list until the board adopts it.",
355
365
  },
356
366
  {
357
367
  key: "board.title",
@@ -455,13 +465,6 @@ export const REGISTRY: readonly SettingDef[] = [
455
465
  merge: "deep",
456
466
  description: "Local working directories the board's review/respond/doctor panes launch from.",
457
467
  },
458
- {
459
- key: "board.rtRepos",
460
- type: "array",
461
- scopes: ["machine"],
462
- merge: "replace",
463
- description: "rt-registered repo names the board resolves MRs against on this machine.",
464
- },
465
468
  {
466
469
  key: "board.triageMaxConcurrent",
467
470
  type: "number",
@@ -477,6 +480,66 @@ export const REGISTRY: readonly SettingDef[] = [
477
480
  description: "Local switchboard URL the board's POST /peer/join writer targets.",
478
481
  },
479
482
 
483
+ // --- boxscore -------------------------------------------------------------
484
+ // No `default` on any boxscore row: fallbacks live in boxscore's app-side
485
+ // read (server/config), so an unset key resolves as absent here.
486
+ {
487
+ key: "boxscore.projects",
488
+ type: "array",
489
+ scopes: ["team"],
490
+ merge: "replace",
491
+ description: "GitLab projects boxscore scores, as full paths (\"group/project\").",
492
+ },
493
+ {
494
+ key: "boxscore.linearDoneStates",
495
+ type: "array",
496
+ scopes: ["team"],
497
+ merge: "replace",
498
+ description: "Linear workflow state names that count as done. Empty means the completed and canceled state types.",
499
+ },
500
+ {
501
+ key: "boxscore.sizeBand",
502
+ type: "object",
503
+ scopes: ["team"],
504
+ merge: "deep",
505
+ description: "MR size health band in changed lines: {tooSmall, tooLarge}. At or below tooSmall, or above tooLarge, is outside the healthy band.",
506
+ },
507
+ {
508
+ key: "boxscore.excludeFilePatterns",
509
+ type: "array",
510
+ scopes: ["team"],
511
+ merge: "replace",
512
+ description: "Glob patterns for files excluded from addition/deletion counts (e.g. \"**/*.json\").",
513
+ },
514
+ {
515
+ key: "boxscore.ignoredMrs",
516
+ type: "array",
517
+ scopes: ["team"],
518
+ merge: "replace",
519
+ description: "MRs excluded from all metrics: \"!123\" or \"group/project!123\".",
520
+ },
521
+ {
522
+ key: "boxscore.botPatterns",
523
+ type: "array",
524
+ scopes: ["team"],
525
+ merge: "replace",
526
+ description: "Extra regex sources treated as bot accounts, beyond boxscore's built-in detection.",
527
+ },
528
+ {
529
+ key: "boxscore.hiddenMembers",
530
+ type: "array",
531
+ scopes: ["user"],
532
+ merge: "replace",
533
+ description: "Usernames from mattstack.roster hidden from this developer's leaderboard.",
534
+ },
535
+ {
536
+ key: "boxscore.defaultRange",
537
+ type: "string",
538
+ scopes: ["user"],
539
+ merge: "replace",
540
+ description: "Default comparison window for the API and CLI when none is given: \"7d\", \"30d\", or \"90d\".",
541
+ },
542
+
480
543
  // --- gitq ------------------------------------------------------------------
481
544
  {
482
545
  key: "gitq.workSlots",
@@ -521,7 +584,8 @@ export const REGISTRY: readonly SettingDef[] = [
521
584
  type: "string",
522
585
  scopes: ["user"],
523
586
  merge: "replace",
524
- description: "Base URL of the chat viewer, no trailing slash. When set, rt chat post and the tail's wake lines end with a link to the room or message.",
587
+ default: "https://chat.mattstack",
588
+ description: "Base URL of the chat viewer, no trailing slash; rt chat post and the tail's wake lines end with a link to the room or message. Defaults to the viewer deck serves on the mattstack TLD.",
525
589
  },
526
590
  {
527
591
  key: "chat.herdrWorkspace",