bueller-wheel 0.3.1 → 0.3.2

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.
@@ -33,24 +33,10 @@ export function parseIssueContent(content) {
33
33
  if (!trimmedSection) {
34
34
  continue;
35
35
  }
36
- // Check if this section starts with @user: or @claude:
37
- const userMatch = trimmedSection.match(/^@user:\s*([\s\S]*)$/);
38
- const claudeMatch = trimmedSection.match(/^@claude:\s*([\s\S]*)$/);
39
- if (userMatch) {
40
- messages.push({
41
- index: messageIndex++,
42
- author: 'user',
43
- content: userMatch[1].trim(),
44
- });
45
- }
46
- else if (claudeMatch) {
47
- messages.push({
48
- index: messageIndex++,
49
- author: 'claude',
50
- content: claudeMatch[1].trim(),
51
- });
52
- }
53
- // If no match, skip this section (handles malformed sections)
36
+ messages.push({
37
+ index: messageIndex++,
38
+ content: trimmedSection,
39
+ });
54
40
  }
55
41
  return {
56
42
  messages,
@@ -69,24 +55,4 @@ export function getLatestMessage(issue) {
69
55
  }
70
56
  return issue.messages[issue.messages.length - 1];
71
57
  }
72
- /**
73
- * Gets all messages from a specific author
74
- *
75
- * @param issue - Parsed issue object
76
- * @param author - Author to filter by ('user' or 'claude')
77
- * @returns Array of messages from the specified author
78
- */
79
- export function getMessagesByAuthor(issue, author) {
80
- return issue.messages.filter((msg) => msg.author === author);
81
- }
82
- /**
83
- * Formats a message for appending to an issue file
84
- *
85
- * @param author - Author of the message ('user' or 'claude')
86
- * @param content - Content of the message
87
- * @returns Formatted message string ready to append to an issue file
88
- */
89
- export function formatMessage(author, content) {
90
- return `---\n\n@${author}: ${content}`;
91
- }
92
58
  //# sourceMappingURL=issue-reader.js.map
@@ -65,6 +65,19 @@ export async function resolveIssueReference(reference, issuesDir) {
65
65
  // Otherwise, treat it as a filename and search for it
66
66
  return locateIssueFile(reference, issuesDir);
67
67
  }
68
+ /**
69
+ * Condenses text by trimming lines and replacing newlines with single spaces
70
+ *
71
+ * @param text - Text to condense
72
+ * @returns Condensed text
73
+ */
74
+ function condenseText(text) {
75
+ return text
76
+ .split('\n')
77
+ .map((line) => line.trim())
78
+ .filter((line) => line.length > 0)
79
+ .join(' ');
80
+ }
68
81
  /**
69
82
  * Abbreviates a message based on its position in the conversation
70
83
  *
@@ -75,15 +88,16 @@ export async function resolveIssueReference(reference, issuesDir) {
75
88
  */
76
89
  function abbreviateMessage(message, _position, maxLength) {
77
90
  const fullContent = message.content;
78
- let abbreviated = fullContent;
91
+ // Condense the content for abbreviation (replace newlines with spaces)
92
+ const condensed = condenseText(fullContent);
93
+ let abbreviated = condensed;
79
94
  let isAbbreviated = false;
80
- if (fullContent.length > maxLength) {
81
- abbreviated = fullContent.substring(0, maxLength).trimEnd() + '…';
95
+ if (condensed.length > maxLength) {
96
+ abbreviated = condensed.substring(0, maxLength).trimEnd() + '…';
82
97
  isAbbreviated = true;
83
98
  }
84
99
  return {
85
100
  index: message.index,
86
- author: message.author,
87
101
  content: abbreviated,
88
102
  isAbbreviated,
89
103
  fullContent,
@@ -191,19 +205,6 @@ export function expandMessages(summary, indexSpec) {
191
205
  isSingleIndex,
192
206
  };
193
207
  }
194
- /**
195
- * Condenses text by trimming lines and replacing newlines with single spaces
196
- *
197
- * @param text - Text to condense
198
- * @returns Condensed text
199
- */
200
- function condenseText(text) {
201
- return text
202
- .split('\n')
203
- .map((line) => line.trim())
204
- .filter((line) => line.length > 0)
205
- .join(' ');
206
- }
207
208
  /**
208
209
  * Formats an issue summary for console output
209
210
  *
@@ -223,8 +224,7 @@ export function formatIssueSummary(summary, indexSpec) {
223
224
  : summary.abbreviatedMessages;
224
225
  // Messages
225
226
  for (const msg of messagesToShow) {
226
- const content = msg.isAbbreviated ? condenseText(msg.content) : msg.content;
227
- lines.push(`[${msg.index}] @${msg.author}: ${content}`);
227
+ lines.push(`[${msg.index}] ${msg.content}`);
228
228
  }
229
229
  // Add follow-up action hint if not showing specific indices
230
230
  if (!indexSpec || !summary.isSingleIndex) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bueller-wheel",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "Headless Claude Code issue processor - A wrapper that runs Claude Code in a loop to process issues from a directory queue",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",