clementine-agent 1.18.157 → 1.18.158

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.
@@ -12,4 +12,5 @@ export declare function killExistingDashboards(): number;
12
12
  export declare function cmdDashboard(opts: {
13
13
  port?: string;
14
14
  }): Promise<void>;
15
+ export declare function getDashboardHTML(token: string): string;
15
16
  //# sourceMappingURL=dashboard.d.ts.map
@@ -13550,7 +13550,10 @@ self.addEventListener('activate', e => {
13550
13550
  await new Promise(() => { });
13551
13551
  }
13552
13552
  // ── Inline HTML Dashboard ────────────────────────────────────────────
13553
- function getDashboardHTML(token) {
13553
+ // Exported for testability — see tests/dashboard-spa-parses.test.ts.
13554
+ // 1.18.158 added that test as a guard against the recurring "served
13555
+ // HTML inline JS doesn't parse" bug (1.18.142 + 1.18.155).
13556
+ export function getDashboardHTML(token) {
13554
13557
  const name = getAssistantName();
13555
13558
  return `<!DOCTYPE html>
13556
13559
  <html lang="en">
@@ -25616,7 +25619,13 @@ function renderScheduledTaskCard(task) {
25616
25619
  // less safe path, worth flagging) or when lean mode is in effect for a
25617
25620
  // meta-job (worth showing because it explains why the prompt is small).
25618
25621
  if (task.lean === true) {
25619
- badges += '<span class="badge badge-purple" title="Lean envelope drops every auto-injected context block (memory, progress, goal, criteria, skills) and prunes the MCP catalog. Used for meta-jobs that must stay under Haiku\'s prompt cap.">Lean</span>';
25622
+ // 1.18.158 hotfix apostrophe in title= breaks JS parser. Outer
25623
+ // template literal converts \' → ', the resulting served HTML has
25624
+ // 'Haiku's' inside a single-quoted JS string, which terminates the
25625
+ // string early and crashes the entire SPA. Use HTML entity to be
25626
+ // safe across both layers (also valid inside JS strings since &#39;
25627
+ // is just text characters, no special meaning).
25628
+ badges += '<span class="badge badge-purple" title="Lean envelope — drops every auto-injected context block (memory, progress, goal, criteria, skills) and prunes the MCP catalog. Used for meta-jobs that must stay under Haiku&#39;s prompt cap.">Lean</span>';
25620
25629
  } else if (task.predictable === false) {
25621
25630
  badges += '<span class="badge badge-yellow" title="Dynamic mode — fire-time injects MEMORY.md, recent team activity, and auto-matched skills. Can drift from chat-time intent.">Reads memory</span>';
25622
25631
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clementine-agent",
3
- "version": "1.18.157",
3
+ "version": "1.18.158",
4
4
  "description": "Clementine — Personal AI Assistant (TypeScript)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",