edsger 0.2.12 → 0.2.14

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.
@@ -179,6 +179,21 @@ async function prepareDesignContext(mcpServerUrl, mcpToken, featureId, checklist
179
179
  feedbacksContext.feedbacks.forEach((fb, idx) => {
180
180
  logInfo(` ${idx + 1}. [${fb.feedback_type}] ${fb.title} (priority: ${fb.priority}, resolved: ${fb.is_resolved || false})`);
181
181
  logInfo(` Content: ${fb.content.substring(0, 150)}...`);
182
+ if (fb.target_type) {
183
+ logInfo(` 🎯 Target Type: ${fb.target_type}`);
184
+ }
185
+ if (fb.document_type) {
186
+ logInfo(` 📄 Document: ${fb.document_type}`);
187
+ }
188
+ if (fb.line_number) {
189
+ logInfo(` 📏 Line: ${fb.line_number}`);
190
+ }
191
+ else if (fb.line_range_start && fb.line_range_end) {
192
+ logInfo(` 📏 Lines: ${fb.line_range_start}-${fb.line_range_end}`);
193
+ }
194
+ if (fb.context_snippet) {
195
+ logInfo(` Referenced: ${fb.context_snippet.substring(0, 100)}...`);
196
+ }
182
197
  });
183
198
  }
184
199
  }
@@ -4,7 +4,9 @@
4
4
  */
5
5
  import { PipelinePhaseOptions } from '../types/pipeline.js';
6
6
  export type { PipelinePhaseOptions };
7
- export type FeedbackType = 'requirement' | 'constraint' | 'preference' | 'context' | 'quality_criteria';
7
+ export type FeedbackType = 'requirement' | 'constraint' | 'preference' | 'context' | 'quality_criteria' | 'issue' | 'suggestion';
8
+ export type FeedbackTargetType = 'phase' | 'line' | 'range';
9
+ export type DocumentType = 'technical_design' | 'code' | 'test_case' | 'user_story';
8
10
  export interface Feedback {
9
11
  id: string;
10
12
  feature_id: string | null;
@@ -21,6 +23,12 @@ export interface Feedback {
21
23
  created_by: string;
22
24
  created_at: string;
23
25
  updated_at: string;
26
+ target_type?: FeedbackTargetType | null;
27
+ document_type?: DocumentType | null;
28
+ line_number?: number | null;
29
+ line_range_start?: number | null;
30
+ line_range_end?: number | null;
31
+ context_snippet?: string | null;
24
32
  }
25
33
  export interface FeedbacksContext {
26
34
  phase: string;
@@ -99,6 +99,14 @@ export function formatFeedbacksForContext(context) {
99
99
  if (grouped.quality_criteria && grouped.quality_criteria.length > 0) {
100
100
  sections.push(`## ✅ Quality Criteria\n\n${formatFeedbacksList(grouped.quality_criteria)}`);
101
101
  }
102
+ // Issues
103
+ if (grouped.issue && grouped.issue.length > 0) {
104
+ sections.push(`## 🐛 Issues to Address\n\n${formatFeedbacksList(grouped.issue)}`);
105
+ }
106
+ // Suggestions
107
+ if (grouped.suggestion && grouped.suggestion.length > 0) {
108
+ sections.push(`## 💭 Suggestions\n\n${formatFeedbacksList(grouped.suggestion)}`);
109
+ }
102
110
  const phaseDisplay = context.phase.replace(/_/g, '-');
103
111
  return `
104
112
  ---
@@ -130,7 +138,32 @@ function formatFeedbacksList(feedbacks) {
130
138
  return sorted
131
139
  .map((feedback, idx) => {
132
140
  const priorityBadge = getPriorityBadge(feedback.priority);
133
- return `### ${idx + 1}. ${feedback.title} ${priorityBadge}\n\n${feedback.content}\n`;
141
+ // Build context metadata section
142
+ let contextInfo = '';
143
+ // Document type
144
+ if (feedback.document_type) {
145
+ const docTypeDisplay = feedback.document_type
146
+ .split('_')
147
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
148
+ .join(' ');
149
+ contextInfo += `\n**Document**: ${docTypeDisplay}`;
150
+ }
151
+ // Target type
152
+ if (feedback.target_type && feedback.target_type !== 'phase') {
153
+ contextInfo += `\n**Target Type**: ${feedback.target_type}`;
154
+ }
155
+ // Build line reference info if available
156
+ if (feedback.line_number) {
157
+ contextInfo += `\n**Line**: ${feedback.line_number}`;
158
+ }
159
+ else if (feedback.line_range_start && feedback.line_range_end) {
160
+ contextInfo += `\n**Lines**: ${feedback.line_range_start}-${feedback.line_range_end}`;
161
+ }
162
+ // Context snippet
163
+ if (feedback.context_snippet) {
164
+ contextInfo += `\n**Referenced Content**:\n\`\`\`\n${feedback.context_snippet}\n\`\`\``;
165
+ }
166
+ return `### ${idx + 1}. ${feedback.title} ${priorityBadge}\n\n${feedback.content}${contextInfo}\n`;
134
167
  })
135
168
  .join('\n');
136
169
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edsger",
3
- "version": "0.2.12",
3
+ "version": "0.2.14",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {