crewly 1.20.354 → 1.20.356

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.
Files changed (185) hide show
  1. package/config/roles/team-leader/prompt.md +1 -1
  2. package/config/roles/team-leader/tl-addon.md +1 -1
  3. package/config/skills/team-leader/delegate-task/SKILL.md +23 -1
  4. package/config/skills/team-leader/delegate-task/execute.sh +44 -1
  5. package/config/skills/team-leader/delegate-task/execute.test.sh +95 -1
  6. package/dist/backend/backend/src/constants.d.ts +71 -0
  7. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  8. package/dist/backend/backend/src/constants.js +71 -0
  9. package/dist/backend/backend/src/constants.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +10 -0
  12. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +7 -0
  15. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/team/team.controller.js +5 -0
  18. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  19. package/dist/backend/backend/src/index.d.ts +15 -0
  20. package/dist/backend/backend/src/index.d.ts.map +1 -1
  21. package/dist/backend/backend/src/index.js +68 -11
  22. package/dist/backend/backend/src/index.js.map +1 -1
  23. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +11 -0
  24. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/agent/agent-registration.service.js +73 -1
  26. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  27. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  28. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  30. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  31. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +22 -0
  32. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/agent/resource-mode-protection.js +33 -0
  34. package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
  35. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +50 -3
  36. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/agent/resource-mode.service.js +92 -10
  38. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
  39. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  40. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +47 -6
  42. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  43. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts +14 -2
  44. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js +21 -4
  46. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js.map +1 -1
  47. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +10 -1
  49. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +8 -0
  51. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/open-items/open-items.service.js +33 -0
  53. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  54. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +2 -2
  55. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  56. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  57. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  58. package/dist/backend/backend/src/services/open-items/question-card-gate.js +77 -0
  59. package/dist/backend/backend/src/services/open-items/question-card-gate.js.map +1 -0
  60. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +10 -0
  62. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  64. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  66. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  67. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  68. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  70. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  71. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  72. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  74. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  75. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  76. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +3 -2
  78. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  79. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +101 -5
  80. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +247 -19
  82. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +10 -2
  85. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  86. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  87. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  89. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  90. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  91. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  92. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  93. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  94. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  95. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  96. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  97. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  98. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +3 -1
  99. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/session/tui-input-guard.js +11 -2
  101. package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
  102. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  103. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +13 -0
  104. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  105. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +22 -0
  106. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/workflow/scheduler.service.js +35 -1
  108. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  109. package/dist/backend/backend/src/types/index.d.ts +12 -0
  110. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  111. package/dist/backend/backend/src/types/index.js.map +1 -1
  112. package/dist/backend/backend/src/types/team-template.types.d.ts +1 -0
  113. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  114. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  115. package/dist/backend/build-info.json +2 -2
  116. package/dist/cli/backend/src/constants.d.ts +71 -0
  117. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  118. package/dist/cli/backend/src/constants.js +71 -0
  119. package/dist/cli/backend/src/constants.js.map +1 -1
  120. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +11 -0
  121. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  122. package/dist/cli/backend/src/services/agent/agent-registration.service.js +73 -1
  123. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  124. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  125. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  126. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  127. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  128. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +50 -3
  129. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/agent/resource-mode.service.js +92 -10
  131. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
  132. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  133. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +47 -6
  135. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  136. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +10 -1
  138. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  139. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +8 -0
  140. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  141. package/dist/cli/backend/src/services/open-items/open-items.service.js +33 -0
  142. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  143. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  144. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  145. package/dist/cli/backend/src/services/open-items/question-card-gate.js +77 -0
  146. package/dist/cli/backend/src/services/open-items/question-card-gate.js.map +1 -0
  147. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  148. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  149. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  150. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  151. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  152. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  153. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  154. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  155. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  156. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  157. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  158. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  159. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  160. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  161. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js +3 -2
  162. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  163. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  164. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  165. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  166. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  167. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  168. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  170. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  171. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  172. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  173. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  174. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  175. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +3 -1
  176. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  177. package/dist/cli/backend/src/services/session/tui-input-guard.js +11 -2
  178. package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
  179. package/dist/cli/backend/src/types/index.d.ts +12 -0
  180. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  181. package/dist/cli/backend/src/types/index.js.map +1 -1
  182. package/dist/cli/backend/src/types/team-template.types.d.ts +1 -0
  183. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  184. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  185. package/package.json +1 -1
@@ -1147,6 +1147,12 @@ export const TUI_INPUT_GUARD = {
1147
1147
  * Codex "[Pasted Content 1234 chars]".
1148
1148
  */
1149
1149
  PASTE_MARKER_PATTERN: /^\[Pasted (text|content)[^\]]*\]$/i,
1150
+ /**
1151
+ * An image file path in a pasted message. Claude Code pulls each one out of
1152
+ * the paste and shows it as "[Image #N]"; the own-paste check needs one per
1153
+ * such marker.
1154
+ */
1155
+ IMAGE_PATH_PATTERN: /\/[^\s\]]+\.(?:png|jpe?g|gif|webp|heic|bmp)\b/gi,
1150
1156
  /** Layouts verified against live captures (fixtures under services/session/__fixtures__/tui) */
1151
1157
  VERIFIED_LAYOUTS: ['claude-code', 'codex', 'gemini'],
1152
1158
  /**
@@ -1517,6 +1523,19 @@ export const EVENT_BUS_CONSTANTS = {
1517
1523
  * replayed publish of the same event is not delivered twice (#926) */
1518
1524
  DELIVERED_EVENT_TTL_MS: 30 * 60 * 1000,
1519
1525
  };
1526
+ /**
1527
+ * Recurring "TL progress check" scheduled by the team-leader delegate-task
1528
+ * skill. Off by default (the lead is woken by the worker's agent:idle event
1529
+ * and by report-status); an opted-in check never fires more often than
1530
+ * MIN_INTERVAL_MINUTES. The 5-minute default woke Claude sessions 219 times
1531
+ * in 3.5 days (2026-10-16).
1532
+ */
1533
+ export const DELEGATION_PROGRESS_CHECK_CONSTANTS = {
1534
+ /** Message prefix the skill uses; identifies these checks in the scheduler */
1535
+ MESSAGE_PREFIX: 'TL progress check:',
1536
+ /** Shortest allowed interval (minutes) for a recurring delegation progress check */
1537
+ MIN_INTERVAL_MINUTES: 30,
1538
+ };
1520
1539
  /**
1521
1540
  * Constants for Slack thread file storage.
1522
1541
  * Used by SlackThreadStoreService to persist thread conversations
@@ -4026,6 +4045,8 @@ export const AGENT_MESSAGE_DELIVERY_CONSTANTS = {
4026
4045
  export const SUB_AGENT_QUEUE_CONSTANTS = {
4027
4046
  /** Wait this long after an agent goes down before waking it for its queued messages (ms) */
4028
4047
  QUEUED_WAKE_DELAY_MS: 5_000,
4048
+ /** After boot, pause before starting agents that were down with messages queued (lets the restore queue claim its own first; a start in between drains the queue and ends the retry) */
4049
+ BOOT_QUEUED_WAKE_DELAY_MS: 60_000,
4029
4050
  /** At most one such wake per agent in this window, so a crashing agent is not relaunched in a loop (ms) */
4030
4051
  QUEUED_WAKE_COOLDOWN_MS: 10 * 60 * 1000,
4031
4052
  /** Maximum messages per agent before dropping oldest */
@@ -6901,6 +6922,10 @@ export const OPEN_ITEMS_CONSTANTS = {
6901
6922
  ASK_OWNER_DEDUPE_WINDOW_MS: 2 * 60 * 60 * 1000,
6902
6923
  /** Two questions with at least this character-bigram overlap are the same question */
6903
6924
  SAME_QUESTION_SIMILARITY: 0.5,
6925
+ /** Window (ms) for counting an agent's lifted-question cards (#1334) */
6926
+ REPLY_CARD_WINDOW_MS: 24 * 60 * 60 * 1000,
6927
+ /** At most this many lifted-question cards per agent per window; later questions are tracked without a card (#1334) */
6928
+ REPLY_CARDS_PER_AGENT_PER_DAY: 3,
6904
6929
  /** Option labels of a derived card */
6905
6930
  YES_LABEL: 'Yes',
6906
6931
  NO_LABEL: 'No',
@@ -7367,6 +7392,14 @@ export const RUNTIME_FALLBACK_CONSTANTS = {
7367
7392
  TRANSIENT_ESCALATED_HORIZON_MS: 30 * 60_000,
7368
7393
  /** A revert is not attempted while the PTY wrote within this window */
7369
7394
  IDLE_QUIET_MS: 20_000,
7395
+ /**
7396
+ * A session's model turn (a Claude Code PreToolUse hook) counts as proof that
7397
+ * its runtime target has usage only this long after the target was marked out
7398
+ * of usage (a response already streaming when the limit hit is not proof)
7399
+ */
7400
+ WORKING_EVIDENCE_GRACE_MS: 2 * 60_000,
7401
+ /** Working-evidence reports of one session are looked at no more often than this */
7402
+ WORKING_EVIDENCE_THROTTLE_MS: 60_000,
7370
7403
  /** Smoke tests */
7371
7404
  SMOKE: {
7372
7405
  TEAM_PREFIX: 'zz-runtime-smoke-',
@@ -7400,6 +7433,44 @@ export const RUNTIME_FALLBACK_CONSTANTS = {
7400
7433
  'crewly-agent': 'Crewly Agent',
7401
7434
  },
7402
7435
  };
7436
+ /**
7437
+ * Per-session usage-limit state (2026-10-16 incident: the orchestrator sat on
7438
+ * Claude Code's weekly-limit menu for ~38 hours while Crewly restarted it,
7439
+ * waited for its prompt, and reported it "active and ready"). While a session
7440
+ * is usage-limited it is not restarted, not waited on and not written to.
7441
+ */
7442
+ export const USAGE_LIMIT_STATE_CONSTANTS = {
7443
+ /** How long to back off when the limit message names no reset time (ms) */
7444
+ NO_RESET_BACKOFF_MS: 30 * 60 * 1000,
7445
+ /** Grace after the parsed reset time before the session is tried again (ms) */
7446
+ RESET_GRACE_MS: 2 * 60 * 1000,
7447
+ /**
7448
+ * Furthest a parsed reset time may lie ahead. Weekly limits reset within
7449
+ * 7 days; a dated message further out is an old one (a past "Oct 10" is
7450
+ * read as next year's), so it is not trusted.
7451
+ */
7452
+ MAX_RESET_AHEAD_MS: 8 * 24 * 60 * 60 * 1000,
7453
+ /** Trailing non-empty screen lines inspected for a usage-limit state */
7454
+ SCREEN_TAIL_LINES: 25,
7455
+ /** Longest a held queue waits before looking at the state again (ms) */
7456
+ RECHECK_MAX_MS: 60_000,
7457
+ /** Delay between the keys that answer the usage-limit menu (ms) */
7458
+ MENU_KEY_DELAY_MS: 300,
7459
+ /** Marker on a delivery result held because the agent is usage-limited */
7460
+ QUEUED_MARKER: '[USAGE_LIMITED]',
7461
+ /**
7462
+ * Fewest printable characters (whitespace collapsed) a live output chunk
7463
+ * needs to count as fresh activity that lifts a usage-limit state; cursor
7464
+ * moves and spinner ticks stay below it.
7465
+ */
7466
+ FRESH_OUTPUT_MIN_CHARS: 40,
7467
+ /**
7468
+ * After a limit is last seen (or its menu answered), activity this soon is
7469
+ * not trusted to lift the state: it is the repaint of the limit screen or
7470
+ * of the key Crewly pressed (ms).
7471
+ */
7472
+ LIFT_GRACE_MS: 10_000,
7473
+ };
7403
7474
  /**
7404
7475
  * Per-person access (issue #968, epic #967): the people directory, the person
7405
7476
  * each agent turn acts for, and grant sharing. specs/per-person-access.md