commandmate 0.11.2 → 0.11.3

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 (132) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +103 -103
  3. package/.next/app-path-routes-manifest.json +19 -19
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update-check/route.js +1 -1
  10. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  114. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  117. package/.next/server/app/worktrees/[id]/page.js +2 -2
  118. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app-paths-manifest.json +19 -19
  121. package/.next/server/chunks/3753.js +5 -5
  122. package/.next/server/chunks/5959.js +1 -1
  123. package/.next/server/middleware-manifest.json +5 -5
  124. package/.next/server/pages/500.html +1 -1
  125. package/.next/server/server-reference-manifest.json +1 -1
  126. package/.next/static/chunks/{6488-d6b669a092a9aeb5.js → 6488-8819e6905355caea.js} +1 -1
  127. package/.next/static/chunks/app/worktrees/[id]/{page-c6d64057df3a13d8.js → page-6105a3470b279527.js} +1 -1
  128. package/.next/trace +10 -10
  129. package/dist/server/src/lib/db/chat-db.js +50 -23
  130. package/package.json +1 -1
  131. /package/.next/static/{Xv8eF6ls3LFny16ZGj4Ij → i8mdUwheg9j9sU_lI_ZSf}/_buildManifest.js +0 -0
  132. /package/.next/static/{Xv8eF6ls3LFny16ZGj4Ij → i8mdUwheg9j9sU_lI_ZSf}/_ssgManifest.js +0 -0
@@ -123,30 +123,57 @@ function updateMessageContent(db, messageId, content, options) {
123
123
  * Get messages for a worktree, optionally filtered by CLI tool
124
124
  */
125
125
  function getMessages(db, worktreeId, options = {}) {
126
- const { before, limit = 50, cliToolId, instanceId, includeArchived = false } = options;
127
- let query = `
128
- SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
129
- FROM chat_messages
130
- WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)
131
- `;
132
- const params = [worktreeId, before?.getTime() || null, before?.getTime() || null];
133
- // archived filter (default: non-archived only)
134
- if (!includeArchived) {
135
- query += ` ${exports.ACTIVE_FILTER}`;
136
- }
137
- // Issue #868: instance filter takes precedence; otherwise fall back to CLI tool filter.
138
- if (instanceId) {
139
- query += ` AND instance_id = ?`;
140
- params.push(instanceId);
141
- }
142
- else if (cliToolId) {
143
- query += ` AND cli_tool_id = ?`;
144
- params.push(cliToolId);
126
+ const { before, limit = 50, cliToolId, instanceId, includeArchived = false, limitUnit = 'messages' } = options;
127
+ // Build the shared scope clause (worktree + before cursor + archived + instance/cli
128
+ // filter) and its bound params. Used for both the message-unit and pair-unit paths
129
+ // so their filtering stays identical.
130
+ const buildScope = () => {
131
+ let clause = `FROM chat_messages
132
+ WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)`;
133
+ const params = [worktreeId, before?.getTime() || null, before?.getTime() || null];
134
+ // archived filter (default: non-archived only)
135
+ if (!includeArchived) {
136
+ clause += ` ${exports.ACTIVE_FILTER}`;
137
+ }
138
+ // Issue #868: instance filter takes precedence; otherwise fall back to CLI tool filter.
139
+ if (instanceId) {
140
+ clause += ` AND instance_id = ?`;
141
+ params.push(instanceId);
142
+ }
143
+ else if (cliToolId) {
144
+ clause += ` AND cli_tool_id = ?`;
145
+ params.push(cliToolId);
146
+ }
147
+ return { clause, params };
148
+ };
149
+ const SELECT_COLS = `SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived`;
150
+ // Issue #1407: pair-unit paging. Resolve a timestamp cutoff so the newest `limit`
151
+ // user turns are fully included (with all their assistant rows). This keeps the
152
+ // rendered conversation-pair count equal to `limit` even when a single turn emits
153
+ // many assistant rows (codex prompts/intermediate outputs). Falls back to
154
+ // message-unit paging when no user messages exist in scope.
155
+ if (limitUnit === 'pairs') {
156
+ const scope = buildScope();
157
+ const cutoffRow = db
158
+ .prepare(`SELECT MIN(timestamp) AS cutoff FROM (
159
+ SELECT timestamp ${scope.clause} AND role = 'user'
160
+ ORDER BY timestamp DESC LIMIT ?
161
+ )`)
162
+ .get(...scope.params, limit);
163
+ const cutoff = cutoffRow?.cutoff ?? null;
164
+ if (cutoff !== null) {
165
+ const full = buildScope();
166
+ const rows = db
167
+ .prepare(`${SELECT_COLS} ${full.clause} AND timestamp >= ? ORDER BY timestamp DESC`)
168
+ .all(...full.params, cutoff);
169
+ return rows.map(mapChatMessage);
170
+ }
171
+ // No user messages in scope → fall through to message-unit behavior below.
145
172
  }
146
- query += ` ORDER BY timestamp DESC LIMIT ?`;
147
- params.push(limit);
148
- const stmt = db.prepare(query);
149
- const rows = stmt.all(...params);
173
+ const scope = buildScope();
174
+ const rows = db
175
+ .prepare(`${SELECT_COLS} ${scope.clause} ORDER BY timestamp DESC LIMIT ?`)
176
+ .all(...scope.params, limit);
150
177
  return rows.map(mapChatMessage);
151
178
  }
152
179
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandmate",
3
- "version": "0.11.2",
3
+ "version": "0.11.3",
4
4
  "description": "A local control plane for agent CLIs — orchestration and visibility for Claude Code, Codex, Gemini CLI, and more across Git worktrees",
5
5
  "keywords": [
6
6
  "claude-code",