@ai-setting/roy-plugin-task-show 0.8.9 → 0.8.10

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/dist/server.js CHANGED
@@ -181,8 +181,6 @@ export class TaskShowServer {
181
181
  operationsCache;
182
182
  /** Optional tasks tree cache (v0.8.0+). Used by /api/tasks/tree. */
183
183
  tasksTreeCache;
184
- /** v0.8.7+: optional ancestor-chain service. */
185
- ancestorChain;
186
184
  constructor(opts) {
187
185
  this.cfg = opts.cfg;
188
186
  this.collector = opts.collector;
@@ -191,7 +189,6 @@ export class TaskShowServer {
191
189
  this.logger = opts.logger ?? console;
192
190
  this.operationsCache = opts.operationsCache ?? null;
193
191
  this.tasksTreeCache = opts.tasksTreeCache ?? null;
194
- this.ancestorChain = opts.ancestorChain ?? null;
195
192
  }
196
193
  /**
197
194
  * Get the SSE event bus (for tests / health checks).
@@ -368,11 +365,6 @@ export class TaskShowServer {
368
365
  await this.handleTasksTree(url, res);
369
366
  return;
370
367
  }
371
- // /api/tasks/ancestor-chain — linear leaf→root chain (v0.8.7+).
372
- if (pathname === "/api/tasks/ancestor-chain") {
373
- await this.handleAncestorChain(url, res);
374
- return;
375
- }
376
368
  // /task/:taskId
377
369
  const taskMatch = pathname.match(/^\/task\/([^/]+)$/);
378
370
  if (taskMatch) {
@@ -493,44 +485,10 @@ export class TaskShowServer {
493
485
  }
494
486
  /**
495
487
  * Render the index page (lists known tasks).
496
- *
497
- * v0.8.7+: when a leaf task is available via the ancestor-chain
498
- * service, render the new layout: ancestor chain → lifecycle+tools →
499
- * lifecycle pipeline (the pipeline is **not** the very last section
500
- * on the page). When no leaf is recorded yet, fall back to the
501
- * cross-host tasks tree view so the page is never empty.
502
488
  */
503
489
  sendIndex(res) {
504
490
  const sessions = this.collector.listSessions();
505
- void this.renderHomeAsync(res, sessions);
506
- }
507
- async renderHomeAsync(res, sessions) {
508
- try {
509
- const html = await this.composeHomePage(sessions);
510
- this.sendHtml(res, 200, html);
511
- }
512
- catch (err) {
513
- this.logger.error(`home page render failed: ${err}`);
514
- // Fall back to the v0.8.x tree view so the page is never blank.
515
- this.sendHtml(res, 200, renderTreeViewIndex(sessions));
516
- }
517
- }
518
- async composeHomePage(sessions) {
519
- if (!this.ancestorChain) {
520
- return renderTreeViewIndex(sessions);
521
- }
522
- const leafId = this.ancestorChain.store.getLatestLeafId();
523
- if (leafId === null) {
524
- return renderTreeViewIndex(sessions);
525
- }
526
- const chain = await this.ancestorChain.store.buildAncestorChain(leafId, this.ancestorChain.fetcher);
527
- const leafSession = this.collector.getSession(leafId);
528
- return renderV089HomePage({
529
- chain,
530
- leafId,
531
- leafSession: leafSession ?? null,
532
- sessions,
533
- });
491
+ this.sendHtml(res, 200, renderIndexPage(sessions));
534
492
  }
535
493
  /**
536
494
  * Handle /api/tasks/:id/operations — fetch the parsed operations envelope
@@ -669,51 +627,6 @@ export class TaskShowServer {
669
627
  `<p>The plugin has not recorded any tool calls for this task yet (or it was evicted).</p>` +
670
628
  `<p><a href="/">Back to index</a></p></body></html>`);
671
629
  }
672
- /**
673
- * Handle /api/tasks/ancestor-chain — v0.8.7+.
674
- *
675
- * GET /api/tasks/ancestor-chain?leafId=<id>
676
- *
677
- * Returns:
678
- * { leafId: number, chain: TaskMetaLike[] } // root-first [root, …, leaf]
679
- *
680
- * Errors:
681
- * - 503 when the service is not configured
682
- * - 400 on a bad / missing `leafId` (only when one is supplied)
683
- */
684
- async handleAncestorChain(url, res) {
685
- if (!this.ancestorChain) {
686
- this.json(res, 503, { error: "ancestor_chain_not_configured" });
687
- return;
688
- }
689
- const sp = url.searchParams;
690
- const raw = sp.get("leafId") ?? sp.get("leaf_id");
691
- let leafId;
692
- if (raw !== null && raw !== "") {
693
- const parsed = Number(raw);
694
- if (!Number.isInteger(parsed) || parsed <= 0 || parsed > Number.MAX_SAFE_INTEGER) {
695
- this.json(res, 400, { error: "bad_leaf_id", value: raw });
696
- return;
697
- }
698
- leafId = parsed;
699
- }
700
- else {
701
- const latest = this.ancestorChain.store.getLatestLeafId();
702
- if (latest === null) {
703
- this.json(res, 200, { leafId: null, chain: [] });
704
- return;
705
- }
706
- leafId = latest;
707
- }
708
- try {
709
- const chain = await this.ancestorChain.store.buildAncestorChain(leafId, this.ancestorChain.fetcher);
710
- this.json(res, 200, { leafId, chain });
711
- }
712
- catch (err) {
713
- this.logger.error(`ancestor_chain: unexpected error: ${err}`);
714
- this.json(res, 500, { error: "internal_error" });
715
- }
716
- }
717
630
  serveStatic(res, relPath) {
718
631
  // Normalize against directory traversal
719
632
  const safe = path
@@ -839,11 +752,6 @@ function renderTaskPage(session) {
839
752
  // (graceful degradation). We pass `taskId` so the rendered section
840
753
  // carries `data-task-id` and the client `boot()` can wire it up;
841
754
  // without it the controller silently bails (the bug fixed in v0.6.12).
842
- //
843
- // v0.8.9: the pipeline section is rendered IMMEDIATELY after the
844
- // Mermaid lifecycle diagram (not after the tool call stats / tool
845
- // calls table as in v0.8.8) so the two halves of the lifecycle
846
- // story sit next to each other and the user reads them in order.
847
755
  const pipelineHtml = renderOperationsPipeline({ operations: [], taskTitle: session.title, taskId: session.taskId });
848
756
  return /* html */ `<!DOCTYPE html>
849
757
  <html lang="en">
@@ -873,8 +781,6 @@ function renderTaskPage(session) {
873
781
  <div class="mermaid" data-mermaid-lifecycle>${initialMermaid}</div>
874
782
  </section>
875
783
 
876
- ${pipelineHtml}
877
-
878
784
  <section class="panel">
879
785
  <h2>Tool call stats</h2>
880
786
  <table class="stats">
@@ -888,6 +794,8 @@ function renderTaskPage(session) {
888
794
  ${toolcallsTable}
889
795
  </section>
890
796
 
797
+ ${pipelineHtml}
798
+
891
799
  <section class="panel">
892
800
  <h2>Raw JSON</h2>
893
801
  <details>
@@ -901,7 +809,14 @@ function renderTaskPage(session) {
901
809
  <script src="/static/task-operations.js"></script>
902
810
  <script>
903
811
  if (window.mermaid) {
904
- window.mermaid.initialize({ startOnLoad: true, theme: 'default', securityLevel: 'loose' });
812
+ window.mermaid.initialize({
813
+ startOnLoad: true,
814
+ theme: 'default',
815
+ securityLevel: 'loose',
816
+ themeVariables: {
817
+ fontFamily: '"PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans CN", "WenQuanYi Micro Hei", sans-serif',
818
+ },
819
+ });
905
820
  }
906
821
  </script>
907
822
  </body>
@@ -1004,7 +919,7 @@ function renderDiffPanel(path, oldStr, newStr) {
1004
919
  </div>
1005
920
  </details>`;
1006
921
  }
1007
- function renderTreeViewIndex(sessions) {
922
+ function renderIndexPage(sessions) {
1008
923
  // SSR hint — the tree container is always rendered; if /api/tasks/tree
1009
924
  // returns 503 the JS shows a graceful empty state with a hint to
1010
925
  // check the CLI is on PATH.
@@ -1119,114 +1034,6 @@ function renderTreeViewIndex(sessions) {
1119
1034
  </body>
1120
1035
  </html>`;
1121
1036
  }
1122
- /**
1123
- * Render the v0.8.9 home page. The home page is a *task-tree view*:
1124
- * it shows ONLY the ancestor chain as a real nested HTML tree so the
1125
- * hierarchy is communicated by structure (ul > li > ul > li …) and
1126
- * CSS indentation (24px per level) rather than by text markers.
1127
- *
1128
- * v0.8.8 used a flat `<ol>` with literal "root:" / "parent: #N"
1129
- * prefixes and "→" arrows. That made the hierarchy hard to scan and
1130
- * the "root/parent" text leaked the implementation detail. v0.8.9
1131
- * removes the text markers and replaces the flat list with a
1132
- * genuinely nested tree.
1133
- *
1134
- * Layout (top → bottom):
1135
- * 1. <header> — plugin title + connection indicator.
1136
- * 2. <section data-ancestor-chain> — root → leaf chain, every
1137
- * item is `<a href="/task/<id>">…</a>`. The chain is rendered
1138
- * as a nested `<ul data-ancestor-chain-tree data-depth="N">`
1139
- * where each parent `<li>` contains a child `<ul>`. The leaf
1140
- * `<li>` has no nested `<ul>`.
1141
- *
1142
- * The home page does NOT load mermaid.js or `task-operations.js`;
1143
- * those belong to the detail page only.
1144
- */
1145
- function renderV089HomePage(opts) {
1146
- const { chain, leafId } = opts;
1147
- // Pre-compute each item's depth by walking parent_task_id pointers
1148
- // in `chain`. The chain is already root-first (per the fetcher),
1149
- // so depth[i] === i in the common case — but we still derive it
1150
- // structurally so the rendering is robust if a future caller
1151
- // passes a non-canonical order.
1152
- const childIds = new Set();
1153
- for (const t of chain) {
1154
- if (t.parent_task_id !== null && t.parent_task_id !== undefined) {
1155
- childIds.add(t.parent_task_id);
1156
- }
1157
- }
1158
- // Roots = items whose parent is not in the chain (or is null).
1159
- const roots = chain.filter((t) => t.parent_task_id === null || t.parent_task_id === undefined || !chain.some((c) => c.id === t.parent_task_id));
1160
- // Map id -> meta for O(1) child lookup.
1161
- const byId = new Map();
1162
- for (const t of chain)
1163
- byId.set(t.id, t);
1164
- // Build a single nested <ul> rooted at the first root. We expect
1165
- // exactly one root in the typical ancestor-chain case; if the
1166
- // chain contains multiple disconnected roots (e.g. cross-host
1167
- // tasks that don't share a parent), we still wrap them in a
1168
- // single <ul data-ancestor-chain-tree> so the page is well-formed.
1169
- const renderSubtree = (t, depth) => {
1170
- const status = t.status
1171
- ? ` <span class="badge badge-${htmlEscape(t.status)}">${htmlEscape(t.status)}</span>`
1172
- : "";
1173
- const linkText = `#${t.id} ${htmlEscape(t.title || "(no title)")}`;
1174
- const link = `<a class="chain-link" href="/task/${t.id}">${linkText}</a>${status}`;
1175
- // Direct children: items whose parent_task_id === t.id, AND
1176
- // who are present in the chain (so we don't render links to
1177
- // tasks we couldn't resolve).
1178
- const children = chain.filter((c) => c.parent_task_id === t.id);
1179
- let inner = "";
1180
- if (children.length > 0) {
1181
- const childItems = children
1182
- .map((c) => renderSubtree(c, depth + 1))
1183
- .join("");
1184
- inner = `<ul class="chain-list" data-depth="${depth + 1}">${childItems}</ul>`;
1185
- }
1186
- return (`<li class="chain-node" data-chain-task-id="${t.id}" data-depth="${depth}">` +
1187
- link +
1188
- inner +
1189
- `</li>`);
1190
- };
1191
- // Mark `childIds` as unused (we keep it for future "show only
1192
- // descendants of leaf" features) — suppress the unused-set warning.
1193
- void childIds;
1194
- const treeNodes = roots
1195
- .map((r) => renderSubtree(r, 0))
1196
- .join("");
1197
- const treeHtml = roots.length > 0
1198
- ? `<ul class="chain-list" data-ancestor-chain-tree data-depth="0">${treeNodes}</ul>`
1199
- : `<p class="empty">No tasks recorded yet.</p>`;
1200
- return /* html */ `<!DOCTYPE html>
1201
- <html lang="en">
1202
- <head>
1203
- <meta charset="utf-8">
1204
- <title>roy-plugin-task-show · v0.8.9 home</title>
1205
- <link rel="stylesheet" href="/static/style.css">
1206
- </head>
1207
- <body data-live-refresh data-view="v089-home" data-leaf-task-id="${leafId}">
1208
- <header class="topbar">
1209
- <h1>🌿 roy-plugin-task-show · v0.8.9</h1>
1210
- <p class="meta">
1211
- Click any task in the chain below to open its detail page
1212
- (Mermaid lifecycle + operations pipeline). ${opts.sessions.length}
1213
- live tool-call session(s) tracked.
1214
- </p>
1215
- <p class="meta connection-status" data-connection>
1216
- <span class="conn-dot conn-disconnected"></span>
1217
- <span class="conn-label">Connecting…</span>
1218
- </p>
1219
- </header>
1220
-
1221
- <section class="panel panel-ancestor-chain" data-ancestor-chain aria-label="Ancestor chain">
1222
- <h2>Ancestor chain <span class="lifecycle-hint">nested tree · click any task for details</span></h2>
1223
- ${treeHtml}
1224
- </section>
1225
-
1226
- <script src="/static/app.js"></script>
1227
- </body>
1228
- </html>`;
1229
- }
1230
1037
  function aggregateStats(toolCalls) {
1231
1038
  const out = {};
1232
1039
  for (const c of toolCalls) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,11 @@
10
10
  * Cache keys are derived from the `TasksTreeFilter` object via a stable
11
11
  * JSON.stringify so functionally-equal filters (e.g. `{ status: undefined,
12
12
  * priority: "high" }` vs `{ priority: "high" }`) hit the same entry.
13
+ *
14
+ * v0.8.10+: the cache enforces a hard `maxEntries` cap. Without this,
15
+ * long-lived hosts that page through every filter combination (the
16
+ * frontend polls with shifting depth/status/priority/tags) leak
17
+ * entries forever — see Task #2537 (roy-agent 4 GiB OOM).
13
18
  */
14
19
  import type { TasksTreeEnvelope, TasksTreeFilter, TasksTreeSource } from "./cli-tasks-tree-adapter.js";
15
20
  type SourceFn = (filter: TasksTreeFilter) => Promise<TasksTreeEnvelope>;
@@ -17,6 +22,12 @@ export interface TasksTreeCacheOptions {
17
22
  source: SourceFn | TasksTreeSource;
18
23
  /** Time-to-live in milliseconds. Default 5000. */
19
24
  ttlMs?: number;
25
+ /**
26
+ * v0.8.10+: hard cap on the number of cached entries (one per unique
27
+ * filter combination). Past this limit, the cache sweeps the oldest
28
+ * stale entries before inserting a new one. Default 64.
29
+ */
30
+ maxEntries?: number;
20
31
  /** Optional: clock for tests. */
21
32
  now?: () => number;
22
33
  }
@@ -25,6 +36,7 @@ export declare class TasksTreeCache {
25
36
  private readonly ttlMs;
26
37
  private readonly source;
27
38
  private readonly now;
39
+ private readonly maxEntries;
28
40
  constructor(opts: TasksTreeCacheOptions);
29
41
  /**
30
42
  * Fetch (or read from cache). Concurrent calls for the same filter
@@ -38,6 +50,11 @@ export declare class TasksTreeCache {
38
50
  clear(): void;
39
51
  /** Number of cached entries (test introspection). */
40
52
  size(): number;
53
+ /**
54
+ * Sweep entries that are past their TTL once we exceed `maxEntries`.
55
+ * See OperationsCache.evictStale for the same rationale.
56
+ */
57
+ private evictStale;
41
58
  private refresh;
42
59
  }
43
60
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tasks-tree-cache.d.ts","sourceRoot":"","sources":["../src/tasks-tree-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAQxE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,QAAQ,GAAG,eAAe,CAAC;IACnC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,qBAAqB;IAavC;;;;OAIG;IACG,GAAG,CACP,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,OAAO,CAAC,iBAAiB,CAAC;IAyC7B,wBAAwB;IACxB,KAAK,IAAI,IAAI;IAIb,qDAAqD;IACrD,IAAI,IAAI,MAAM;YAIA,OAAO;CActB"}
1
+ {"version":3,"file":"tasks-tree-cache.d.ts","sourceRoot":"","sources":["../src/tasks-tree-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAErC,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAQxE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,QAAQ,GAAG,eAAe,CAAC;IACnC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,IAAI,EAAE,qBAAqB;IAmBvC;;;;OAIG;IACG,GAAG,CACP,MAAM,EAAE,eAAe,EACvB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,OAAO,CAAC,iBAAiB,CAAC;IA4C7B,wBAAwB;IACxB,KAAK,IAAI,IAAI;IAIb,qDAAqD;IACrD,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,OAAO,CAAC,UAAU;YAoBJ,OAAO;CActB"}
@@ -10,15 +10,25 @@
10
10
  * Cache keys are derived from the `TasksTreeFilter` object via a stable
11
11
  * JSON.stringify so functionally-equal filters (e.g. `{ status: undefined,
12
12
  * priority: "high" }` vs `{ priority: "high" }`) hit the same entry.
13
+ *
14
+ * v0.8.10+: the cache enforces a hard `maxEntries` cap. Without this,
15
+ * long-lived hosts that page through every filter combination (the
16
+ * frontend polls with shifting depth/status/priority/tags) leak
17
+ * entries forever — see Task #2537 (roy-agent 4 GiB OOM).
13
18
  */
14
19
  export class TasksTreeCache {
15
20
  entries = new Map();
16
21
  ttlMs;
17
22
  source;
18
23
  now;
24
+ maxEntries;
19
25
  constructor(opts) {
20
26
  this.ttlMs = opts.ttlMs ?? 5000;
21
27
  this.now = opts.now ?? (() => Date.now());
28
+ this.maxEntries = opts.maxEntries ?? 64;
29
+ if (!Number.isFinite(this.maxEntries) || this.maxEntries < 1) {
30
+ throw new RangeError(`TasksTreeCache: maxEntries must be a positive finite number, got ${this.maxEntries}`);
31
+ }
22
32
  const src = opts.source;
23
33
  if (typeof src === "function") {
24
34
  this.source = src;
@@ -41,6 +51,7 @@ export class TasksTreeCache {
41
51
  const now = this.now();
42
52
  if (existing && existing.fetchedAtMs > 0 && now - existing.fetchedAtMs < this.ttlMs) {
43
53
  existing.envelope.stale = false;
54
+ this.evictStale(now);
44
55
  return existing.envelope;
45
56
  }
46
57
  if (existing && existing.fetchedAtMs > 0 && opts.allowStale) {
@@ -51,11 +62,13 @@ export class TasksTreeCache {
51
62
  });
52
63
  existing.inflight.catch(() => { });
53
64
  }
65
+ this.evictStale(now);
54
66
  return existing.envelope;
55
67
  }
56
68
  if (existing?.inflight) {
57
69
  return existing.inflight;
58
70
  }
71
+ this.evictStale(now);
59
72
  const entry = existing ?? {
60
73
  envelope: {
61
74
  total: 0,
@@ -80,6 +93,32 @@ export class TasksTreeCache {
80
93
  size() {
81
94
  return this.entries.size;
82
95
  }
96
+ /**
97
+ * Sweep entries that are past their TTL once we exceed `maxEntries`.
98
+ * See OperationsCache.evictStale for the same rationale.
99
+ */
100
+ evictStale(now) {
101
+ if (this.entries.size <= this.maxEntries)
102
+ return;
103
+ let overflow = this.entries.size - this.maxEntries;
104
+ for (const [key, entry] of this.entries) {
105
+ if (overflow <= 0)
106
+ break;
107
+ if (entry.fetchedAtMs > 0 && now - entry.fetchedAtMs >= this.ttlMs) {
108
+ this.entries.delete(key);
109
+ overflow -= 1;
110
+ }
111
+ }
112
+ if (this.entries.size > this.maxEntries) {
113
+ overflow = this.entries.size - this.maxEntries;
114
+ for (const key of this.entries.keys()) {
115
+ if (overflow <= 0)
116
+ break;
117
+ this.entries.delete(key);
118
+ overflow -= 1;
119
+ }
120
+ }
121
+ }
83
122
  async refresh(filter) {
84
123
  const envelope = await this.source(filter);
85
124
  const now = this.now();
@@ -1 +1 @@
1
- {"version":3,"file":"tasks-tree-cache.js","sourceRoot":"","sources":["../src/tasks-tree-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks-tree-cache.js","sourceRoot":"","sources":["../src/tasks-tree-cache.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -109,6 +109,29 @@ export interface TaskShowConfig {
109
109
  cliTimeoutMs?: number;
110
110
  /** v0.7.0+: Maximum stdout bytes accepted from the CLI. Default 1 MiB. */
111
111
  cliMaxBytes?: number;
112
+ /**
113
+ * v0.8.10+: Hard cap on the operations cache (one entry per task id).
114
+ * Older stale entries are dropped first when the cap is exceeded.
115
+ * Default 256.
116
+ */
117
+ operationsCacheMaxEntries?: number;
118
+ /**
119
+ * v0.8.10+: Hard cap on the tasks-tree cache (one entry per unique
120
+ * filter combination). Default 64.
121
+ */
122
+ tasksTreeCacheMaxEntries?: number;
123
+ /**
124
+ * v0.8.10+: Grace period for `tool:before.execute` entries that never
125
+ * receive a matching `tool:after.execute` (e.g. crashed tool, host
126
+ * bug). Entries older than this are swept on the next `before` hook
127
+ * call. Default 60_000 ms (1 minute). Set to 0 to disable.
128
+ */
129
+ pendingStartTtlMs?: number;
130
+ /**
131
+ * v0.8.10+: FIFO cap on the `finalizedTaskIds` dedup set so it cannot
132
+ * grow unbounded in long-lived hosts. Default 4096.
133
+ */
134
+ maxFinalizedTaskIds?: number;
112
135
  }
113
136
  /**
114
137
  * Default configuration. Keeping these as a single source of truth simplifies
@@ -117,6 +140,11 @@ export interface TaskShowConfig {
117
140
  * v0.5.0+: SSE replaces the previous `env.notify` mechanism. URL injection
118
141
  * is no longer supported — visualization reach-out is via the SSE event
119
142
  * stream broadcast by the local HTTP service.
143
+ *
144
+ * v0.8.10+: Heap-bounded defaults (Task #2537). `pendingStartTtlMs`,
145
+ * `operationsCacheMaxEntries`, `tasksTreeCacheMaxEntries`, and
146
+ * `maxFinalizedTaskIds` keep the plugin's in-memory Maps and Sets
147
+ * bounded so a long-lived CLI session cannot OOM at 4 GiB V8 heap.
120
148
  */
121
149
  export declare const DEFAULT_CONFIG: TaskShowConfig;
122
150
  /**